AttributeError: 'tuple' object has no attribute 'log_softmax'
Solution 1
This is a well known problem.
Try one the following solutions:
disable aux_logits when the model is created here by also passing
aux_logits=False
to the inception_v3 function.edit your train function to accept and unpack the returned tuple to be something like:
output, aux = model(input_var)
Check the following link for more info.
Solution 2
This problem seams to me like instead you define F
:
import torch.nn.functional as F
You in accident have set F
to some tuple
F=(1,2)
And then when you call F.log_softmax
you get exactly this error.
Israel-abebe
I am Software developer from Ethiopia. Graduated from Addis Ababa in Software engineering (BSc). I am interested in Working on Mobile APP, Game development and recently in Artificial Intelligence. I worked on more than 10 Software projects and I am very eager to learn and more.
Updated on June 24, 2022Comments
-
Israel-abebe almost 2 years
while trying to finetune inception_V3 for my own dataset by changing the last fc layer like
last_layer =nn.Linear(n_inputs, len(classes)) inception_v3.fc = last_layer
after that when I train it got this error on this position
# on training loop output = inception_v3(data) # calculate the batch loss loss = criterion(output, target)
Error is
AttributeError: 'tuple' object has no attribute 'log_softmax'
-
Israel-abebe over 5 yearssolved by doing inception_v3 = models.inception_v3(pretrained=True) inception_v3.aux_logits=False