-1

在生成对抗样本时,通常使用logits作为神经网络的输出,然后用交叉熵训练网络。

但是发现cleverhans的教程使用log softmax然后将pytorch模型转成tensorflow模型,最后训练模型。

https://github.com/tensorflow/cleverhans/blob/master/cleverhans_tutorials/mnist_tutorial_pytorch.py​​#L65

我想知道是否有人知道使用 logits 代替 log_softmax 是否会有所作为?

4

1 回答 1

0

正如你所说,当我们从神经网络获取 logits 时,我们使用CrossEntropyLoss. 另一种方法是计算log_softmax,然后通过最小化负对数似然 ( NLLLoss) 来训练网络。

如果您正在为分类任务训练网络,这两种方法基本相同。但是,如果您有不同的目标函数,您可能会发现这两种技术中的一种,在您的场景中特别有用。

参考

于 2019-12-13T17:59:14.993 回答