Это невозможно .... Я предложу совсем другой подход в ответе, чтобы вы попробовали ....
лизую пользовательскую функцию потерь в Керасе. Выход модели - 10-мерный слой softmax. Чтобы рассчитать убыток: сначала мне нужно найти индекс у стрельбы 1, а затем вычесть это значение из истинного значения. Я делаю следующее:
from keras import backend as K
def diff_loss(y_true,y_pred):
# find the indices of neuron firing 1
true_ind=K.tf.argmax(y_true,axis=0)
pred_ind=K.tf.argmax(y_pred,axis=0)
# cast it to float32
x=K.tf.cast(true_ind,K.tf.float32)
y=K.tf.cast(pred_ind,K.tf.float32)
return K.abs(x-y)
но он выдает ошибку «повысить ValueError (« Нет значений, не поддерживаемых ».) ValueError: Нет значений, не поддерживаемых». В чем здесь проблема?