I tried to implement soft-max with the following code (out_vec
is a numpy
vector of floats):
numerator = np.exp(out_vec)
denominator =
Your problem is caused by the NaN
or Inf
elements in your out_vec
array. You could use the following code to avoid this problem:
if np.isnan(np.sum(out_vec)):
out_vec = out_vec[~numpy.isnan(out_vec)] # just remove nan elements from vector
out_vec[out_vec > 709] = 709
...
or you could use the following code to leave the NaN
values in your array:
out_vec[ np.array([e > 709 if ~np.isnan(e) else False for e in out_vec], dtype=bool) ] = 709