Reputation: 578
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'
Upvotes: 7
Views: 14138
Reputation: 46331
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.
Upvotes: 4
Reputation: 12837
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.
Upvotes: 14