m7mdal7aj commited on
Commit
96dd295
1 Parent(s): 055a9f2

Update my_model/state_manager.py

Browse files
Files changed (1) hide show
  1. 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 loading model: {e}")
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):