Update my_model/state_manager.py
Browse files- my_model/state_manager.py +20 -1
my_model/state_manager.py
CHANGED
@@ -29,6 +29,10 @@ class StateManager:
|
|
29 |
st.session_state['model_loaded'] = False
|
30 |
if 'loading_in_progress' not in st.session_state:
|
31 |
st.session_state['loading_in_progress'] = False
|
|
|
|
|
|
|
|
|
32 |
|
33 |
|
34 |
|
@@ -132,6 +136,8 @@ class StateManager:
|
|
132 |
|
133 |
def force_reload_model(self):
|
134 |
try:
|
|
|
|
|
135 |
free_gpu_resources()
|
136 |
st.session_state['kbvqa'] = prepare_kbvqa_model(force_reload=True)
|
137 |
st.session_state['kbvqa'].detection_confidence = st.session_state.confidence_level
|
@@ -140,9 +146,22 @@ class StateManager:
|
|
140 |
st.session_state['model_loaded'] = True
|
141 |
free_gpu_resources()
|
142 |
except Exception as e:
|
143 |
-
st.error(f"Error
|
144 |
free_gpu_resources()
|
145 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
|
147 |
# Function to check if any session state values have changed
|
148 |
def has_state_changed(self):
|
|
|
29 |
st.session_state['model_loaded'] = False
|
30 |
if 'loading_in_progress' not in st.session_state:
|
31 |
st.session_state['loading_in_progress'] = False
|
32 |
+
if 'load_button_clicked' not in st.session_state:
|
33 |
+
st.session_state['load_button_clicked'] = False
|
34 |
+
if 'force_reload_button_clicked' not in st.session_state:
|
35 |
+
st.session_state['force_reload_button_clicked'] = False
|
36 |
|
37 |
|
38 |
|
|
|
136 |
|
137 |
def force_reload_model(self):
|
138 |
try:
|
139 |
+
self.delete_model()
|
140 |
+
self.initialize_state()
|
141 |
free_gpu_resources()
|
142 |
st.session_state['kbvqa'] = prepare_kbvqa_model(force_reload=True)
|
143 |
st.session_state['kbvqa'].detection_confidence = st.session_state.confidence_level
|
|
|
146 |
st.session_state['model_loaded'] = True
|
147 |
free_gpu_resources()
|
148 |
except Exception as e:
|
149 |
+
st.error(f"Error reloading model: {e}")
|
150 |
free_gpu_resources()
|
151 |
|
152 |
+
def delete_model(self):
|
153 |
+
"""
|
154 |
+
Forces a reload of all models, freeing up GPU resources. This method deletes the current models and calls `free_gpu_resources`.
|
155 |
+
"""
|
156 |
+
|
157 |
+
free_gpu_resources()
|
158 |
+
|
159 |
+
if st.session_state['kbvqa'] is not None:
|
160 |
+
del st.session_state['kbvqa']
|
161 |
+
st.write('Model deleted')
|
162 |
+
free_gpu_resources()
|
163 |
+
free_gpu_resources()
|
164 |
+
|
165 |
|
166 |
# Function to check if any session state values have changed
|
167 |
def has_state_changed(self):
|