python - tf.keras.losses.categorical_crossentropy 是返回数组还是单个值?

标签 python tensorflow keras loss-function

我正在使用自定义训练循环。 tf.keras.losses.categorical_crossentropy返回的损失是我假设的数组 (1,batch_size) .这是它应该返回的值还是单个值?

在后一种情况下,知道我可能做错了什么吗?

最佳答案

最常见的损失返回原始形状减去最后一个轴。

所以,如果你原来的y_pred形状是 (samples, ..., ..., classes) ,那么你得到的形状将是 (samples, ..., ...) .

这可能是因为 Keras 可能会在进一步的计算中使用这个张量,用于样本权重和其他事情。

在自定义循环中,如果这些维度没有用,你可以简单地取一个 K.mean(loss_result)在计算梯度之前。 (其中 Kkeras.backendtensorflow.keras.backend )

关于python - tf.keras.losses.categorical_crossentropy 是返回数组还是单个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59493127/

相关文章:

linux - Linux 上的 load_model 上的 Keras 段错误,而不是 Windows 上的

python - 将 revision.comment 拆分为 Django-reversion 中的字段和值

python - Scrapy:在解析其他网址之前等待特定的网址被解析

python - 制作快速端口扫描器

tensorflow - 如何使用 tensorflow.Estimator 进行强化学习

tensorflow - 在使用 seq2seq 时,tf.nn.dynamic_rnn 如何处理不同长度的输入?

nlp - 如何测试 SyntaxNet 训练模型(西类牙语 UD)?

python - 在 python 中创建 fork 图

tensorflow - tf.data 或 tf.keras.utils.Sequence。提高 tf.data 的效率?

tensorflow - Keras 中自定义层的训练和测试标志