devjas1 commited on
Commit
edc1cf7
·
1 Parent(s): 846d13f

(feat)[Performance Tracking]: Update performance metrics logging and cleanup; add tracking database to .gitignore

Browse files
Files changed (3) hide show
  1. .gitignore +1 -0
  2. core_logic.py +14 -9
  3. outputs/performance_tracking.db +0 -0
.gitignore CHANGED
@@ -26,3 +26,4 @@ datasets/**
26
  # ---------------------------------------
27
 
28
  __pycache__.py
 
 
26
  # ---------------------------------------
27
 
28
  __pycache__.py
29
+ outputs/performance_tracking.db
core_logic.py CHANGED
@@ -10,6 +10,7 @@ import numpy as np
10
  import streamlit as st
11
  from pathlib import Path
12
  from config import SAMPLE_DATA_DIR
 
13
 
14
 
15
  def label_file(filename: str) -> int:
@@ -108,7 +109,7 @@ def run_inference(y_resampled, model_choice, _cache_key=None):
108
  start_time = time.time()
109
  start_memory = _get_memory_usage()
110
 
111
- model.eval()
112
  with torch.no_grad():
113
  if model is None:
114
  raise ValueError(
@@ -131,32 +132,36 @@ def run_inference(y_resampled, model_choice, _cache_key=None):
131
  metrics = PerformanceMetrics(
132
  model_name=model_choice,
133
  prediction_time=inference_time,
134
- preprocessing_time=0.0, # Will be updated by calling function if available
135
  total_time=inference_time,
136
  memory_usage_mb=memory_usage,
137
  accuracy=None, # Will be updated if ground truth is available
138
  confidence=confidence,
139
- timestamp=datetime.not().isofformat(),
140
- input_size=len(y_resampled) if hasattr(y_resampled, '__len__') else 500,
 
 
141
  modality=modality,
142
  )
143
- tracker.log_perfomance(metrics)
144
- except Exception as e:
145
- # Dont fail inference if performance tracking fails
 
146
  print(f"Performance tracking failed: {e}")
147
 
148
  cleanup_memory()
149
  return prediction, logits_list, probs, inference_time, logits
150
 
 
151
  def _get_memory_usage() -> float:
152
  """Get current memory usage in MB"""
153
  try:
154
  import psutil
 
155
  process = psutil.Process()
156
- return process.memory_info().rss / 1024 / 1024 # Convert to MB
157
  except ImportError:
158
  return 0.0 # psutil not available
159
-
160
 
161
 
162
  @st.cache_data
 
10
  import streamlit as st
11
  from pathlib import Path
12
  from config import SAMPLE_DATA_DIR
13
+ from datetime import datetime
14
 
15
 
16
  def label_file(filename: str) -> int:
 
109
  start_time = time.time()
110
  start_memory = _get_memory_usage()
111
 
112
+ model.eval() # type: ignore
113
  with torch.no_grad():
114
  if model is None:
115
  raise ValueError(
 
132
  metrics = PerformanceMetrics(
133
  model_name=model_choice,
134
  prediction_time=inference_time,
135
+ preprocessing_time=0.0, # Will be updated by calling function if available
136
  total_time=inference_time,
137
  memory_usage_mb=memory_usage,
138
  accuracy=None, # Will be updated if ground truth is available
139
  confidence=confidence,
140
+ timestamp=datetime.now().isoformat(),
141
+ input_size=(
142
+ len(y_resampled) if hasattr(y_resampled, "__len__") else TARGET_LEN
143
+ ),
144
  modality=modality,
145
  )
146
+
147
+ tracker.log_performance(metrics)
148
+ except (AttributeError, ValueError, KeyError) as e:
149
+ # Don't fail inference if performance tracking fails
150
  print(f"Performance tracking failed: {e}")
151
 
152
  cleanup_memory()
153
  return prediction, logits_list, probs, inference_time, logits
154
 
155
+
156
  def _get_memory_usage() -> float:
157
  """Get current memory usage in MB"""
158
  try:
159
  import psutil
160
+
161
  process = psutil.Process()
162
+ return process.memory_info().rss / 1024 / 1024 # Convert to MB
163
  except ImportError:
164
  return 0.0 # psutil not available
 
165
 
166
 
167
  @st.cache_data
outputs/performance_tracking.db DELETED
File without changes