kovacsvi commited on
Commit
9e29fa0
·
1 Parent(s): 69cec82

add log to normalization to prevent small values bug

Browse files
Files changed (1) hide show
  1. interfaces/cap_minor_media.py +11 -4
interfaces/cap_minor_media.py CHANGED
@@ -39,13 +39,20 @@ for code in CAP_MIN_CODES:
39
  major_to_minor_map[major_id].append(code)
40
  major_to_minor_map = dict(major_to_minor_map)
41
 
 
42
  def normalize_probs(probs: dict) -> dict:
43
  keys, values = zip(*probs.items())
44
  values = np.array(values)
45
- exp_values = np.exp(values - np.max(values)) # For numerical stability
46
- sum_exp = np.sum(exp_values)
47
- normalized = exp_values / sum_exp
48
- return dict(zip(keys, map(float, normalized)))
 
 
 
 
 
 
49
 
50
 
51
  def check_huggingface_path(checkpoint_path: str):
 
39
  major_to_minor_map[major_id].append(code)
40
  major_to_minor_map = dict(major_to_minor_map)
41
 
42
+
43
  def normalize_probs(probs: dict) -> dict:
44
  keys, values = zip(*probs.items())
45
  values = np.array(values)
46
+
47
+ # log-transform to spread small values (add small constant to avoid log(0))
48
+ log_values = np.log(values + 1e-300)
49
+
50
+ # log-sum-exp trick for stability
51
+ max_log = np.max(log_values)
52
+ exp_values = np.exp(log_values - max_log)
53
+ softmax = exp_values / exp_values.sum()
54
+
55
+ return dict(zip(keys, map(float, softmax)))
56
 
57
 
58
  def check_huggingface_path(checkpoint_path: str):