30 lines
594 B
Python
30 lines
594 B
Python
|
|
import numpy as np
|
|
|
|
|
|
def softmax(v: np.ndarray) -> np.ndarray:
|
|
v = v - np.max(v)
|
|
exp_v = np.exp(v)
|
|
return exp_v / np.sum(exp_v)
|
|
|
|
|
|
def normalize(v: np.ndarray) -> np.ndarray:
|
|
return v / (np.linalg.norm(v) + 1e-8)
|
|
|
|
|
|
def regularize(v: np.ndarray) -> np.ndarray:
|
|
v_min = v.min(axis=0)
|
|
v_max = v.max(axis=0)
|
|
if v_min - v_max == 0:
|
|
return v
|
|
return (v - v_min) / (v_max - v_min)
|
|
|
|
|
|
def interruptable(func):
|
|
def inner(*args, **kwargs):
|
|
try:
|
|
return func(*args, **kwargs)
|
|
except KeyboardInterrupt:
|
|
pass
|
|
return inner
|