我正在使用自定义训练循环。 tf.keras.losses.categorical_crossentropy
返回的损失是我假设的数组 (1,batch_size)
.这是它应该返回的值还是单个值?
在后一种情况下,知道我可能做错了什么吗?
最佳答案
最常见的损失返回原始形状减去最后一个轴。
所以,如果你原来的y_pred
形状是 (samples, ..., ..., classes)
,那么你得到的形状将是 (samples, ..., ...)
.
这可能是因为 Keras 可能会在进一步的计算中使用这个张量,用于样本权重和其他事情。
在自定义循环中,如果这些维度没有用,你可以简单地取一个 K.mean(loss_result)
在计算梯度之前。 (其中 K
是 keras.backend
或 tensorflow.keras.backend
)
关于python - tf.keras.losses.categorical_crossentropy 是返回数组还是单个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59493127/