首页 > 解决方案 > keras中的交叉熵损失计算错误

问题描述

我正在尝试在 keras 中使用 tf 交叉熵损失函数。错误是:

Incompatible shapes: [512,184,55] vs. [512,55]

损失函数为:

def keras_binary_cross_entropy_with_logits(tgt, pred):
return tf.nn.sigmoid_cross_entropy_with_logits(labels=tgt, logits=pred)

这个想法是在目标被多标签二值化的情况下进行多标签分类。y_true 的形状为 [batch_size, label_vocab_length],y_pred 的形状为 [batch_size, sequnece_length, label_vocab_length]。在上面的例子中y_true =[512,55]y_pred=[512,184,55.

完全错误

InvalidArgumentError: Incompatible shapes: [512,184,55] vs. [512,55]
 [[{{node training_2/RMSprop/gradients/loss_5/dense_output_loss/logistic_loss/mul_grad/BroadcastGradientArgs}} = BroadcastGradientArgs[T=DT_INT32, _class=["loc:@train...ad/Reshape"], _device="/job:localhost/replica:0/task:0/device:CPU:0"](training_2/RMSprop/gradients/loss_5/dense_output_loss/logistic_loss/mul_grad/Shape, training_2/RMSprop/gradients/loss_5/dense_output_loss/logistic_loss/mul_grad/Shape_1)]]

我在这里想念什么?

标签: tensorflowkeras

解决方案


推荐阅读