Оператор печати избыточен. print_tensor уже напечатает значения.
Из документации print_tensor:
"Обратите внимание, что print_tensor
возвращает новый тензор, идентичный x
, который следует использовать в следующем коде. В противном случае
операция печати не учитывается при оценке . "
В приведенном выше коде, поскольку y_pred был назначен для x, а x больше не использовался, печать не удалась.
Используйте версию ниже.
def Lc(y_true, y_pred):
y_pred=K.print_tensor(y_pred)
return K.mean(y_pred)
def cat_loss(y_true, y_pred):
y_pred = K.print_tensor(y_pred)
return K.categorical_crossentropy(y_true, y_pred)
После того, как я поместил эту функцию cat_loss в свой цикл обучения, я могу видеть вывод следующим образом:
[[0,000191014129 0,230871275 0,43813318] ...]
190/255 [=====================> ........] - ETA: 0 с - потеря: 0,3442 - согласно: 0,9015
[[3.16367514e-05 1.70419597e-07 0.000147014405] ...]