def categorical_accuracy(probs, y, mask, length_var):
probs_shp = probs.shape
# (n_samples, n_timesteps_f)
predicted = T.argmax(probs, axis=-1)
# (n_samples * n_timesteps_f, n_labels)
probs = probs.reshape([probs_shp[0]*probs_shp[1], probs_shp[2]])
# (n_samples * n_timesteps_f)
y_flat = y.flatten()
acc = lasagne.objectives.categorical_accuracy(probs, y_flat)
# (n_samples, n_timesteps_f)
acc = acc.reshape((probs_shp[0], probs_shp[1]))
acc = acc * mask
acc = T.sum(acc, axis=1) / length_var
return acc, predicted
评论列表
文章目录