AttributeError: ‘tuple‘object has no attribute ‘log_softmax‘

AttributeError:'tuple’object has no attribute 'log_softmax’

问题描述:

pytorch 报错 “AttributeError:'tuple’object has no attribute ‘log_softmax’”

原因分析:

在某些情况下,pytorch前向传播outputs可能不是一个tensor,而是一个tuple. 例如LSTM中输出可能为(outputs, hn), inception-v3 的输出为 (outputs, aux).
而前向传播criterion要求接受参数output为一个tensor. 因此产生错误。

解决方案:

在进入criterion之前,重新创建一个变量指向元组中的outputs.

方法一:

@hye
       outputs = outputs[0]

方法二:

       outputs,_ = outputs

推荐使用方法二


你可能感兴趣的:(pytorch,神经网络,深度学习)