【发布时间】:2020-05-20 19:20:15
【问题描述】:
我正在尝试使用 from_logits=True 给我的 keras 神经网络分类交叉熵损失。但是,我不确定如何将其传递到代码中,因为它要求我指定目标和输出。
通常我可以使用:
network.compile(sgd, loss='categorical_crossentropy'),
但现在我不得不试试这个:
network.compile(sgd, loss=categorical_crossentropy(from_logits=True))
这给了我一个错误:
TypeError: categorical_crossentropy() missing 2 required positional arguments: 'target' and 'output'
我能想到的最好的是:
network.compile(sgd, loss=categorical_crossentropy(y_true, network.output, from_logits=True))
我不知道应该为 y_true 放置什么,因为这不是网络的一部分。我在网上浏览了一下,但没有遇到任何指定如何执行此操作的内容,包括奇怪的 keras 文档。
【问题讨论】:
-
你试过了吗,
tf.keras.losses.CategoricalCrossentropy(from_logits=True)