【发布时间】:2025-12-16 13:20:09
【问题描述】:
我的网络倒数第二层的形状为(U, C),其中C 是通道数。我想分别在每个通道上应用 softmax 函数。
例如,如果U=2 和C=3,并且该层产生[ [1 2 3], [10 20 30] ],我希望输出对通道0 执行softmax(1, 2, 3),对通道1 执行softmax(10, 20, 30)。
有没有办法用 Keras 做到这一点?我使用 TensorFlow 作为后端。
更新
还请解释如何确保损失是两个交叉熵的总和,以及我如何验证这一点? (也就是说,我不希望优化器仅针对其中一个 softmax 的损失进行训练,而是针对每个的交叉熵损失的总和进行训练)。该模型使用 Keras 内置的 categorical_crossentropy 进行损失。
【问题讨论】:
-
"U=2 and C=3" 与
[ [1 10] [2 20] [3 30] ]不一致,因为它是一个形状为(3, 2)而不是(2, 3)的数组。请编辑您的帖子并使其保持一致。 -
@today 我从未掌握过 numpy 将数组显示为字符串的方式。 U=2 和 C=3 是正确的;如果您可以编辑为正确的 numpy 字符串,我将不胜感激;如果没有,请告诉我它是什么,我会自己编辑。
标签: python tensorflow keras softmax