AttributeError: 'tuple' 对象没有属性 'log_softmax'

Isr*_*ebe 6 python deep-learning pytorch

在尝试通过更改最后一个 fc 层来为我自己的数据集微调 inception_V3 时

last_layer =nn.Linear(n_inputs, len(classes))
inception_v3.fc = last_layer
Run Code Online (Sandbox Code Playgroud)

之后,当我训练时,它在这个位置上出现了这个错误

    # on training loop
    output = inception_v3(data)
    # calculate the batch loss
    loss = criterion(output, target)
Run Code Online (Sandbox Code Playgroud)

错误是

 AttributeError: 'tuple' object has no attribute 'log_softmax'
Run Code Online (Sandbox Code Playgroud)

kHa*_*hit 13

这是一个众所周知的问题。

尝试以下解决方案之一:

  1. 通过传递aux_logits=False给 inception_v3 函数,在此处创建模型时禁用 aux_logits 。

  2. 编辑您的 train 函数以接受并解压缩返回的元组,如下所示: output, aux = model(input_var)

查看以下链接了解更多信息。

  • 通过执行 inception_v3 = models.inception_v3(pretrained=True) inception_v3.aux_logits=False 解决 (5认同)