Does anyone know what the issue is please?
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-130-4a1832287d27> in <module>()
1 model, criterion, optimizer = build_model()
----> 2 train_model(config, model, criterion, optimizer)
3
4 if config.config_type == 'Q1_4' or config.config_type == 'Q1_5':
5 dropout_validates = []
<ipython-input-127-85332b119cd8> in train_model(config, model, criterion, optimizer)
24 optimizer.zero_grad()
25 # compute loss
---> 26 loss = criterion(model(inputs), targets)
27 loss.backward()
28 optimizer.step()
/anaconda/envs/py36/lib/python3.6/site-packages/torch/nn/modules/module.py in __call__(self, *input, **kwargs)
355 result = self._slow_forward(*input, **kwargs)
356 else:
--> 357 result = self.forward(*input, **kwargs)
358 for hook in self._forward_hooks.values():
359 hook_result = hook(self, input, result)
<ipython-input-123-94533970db9c> in forward(self, x)
9
10 def forward(self, x):
---> 11 x = nn.ReLU(self.fc1(x))
12 x = nn.ReLU(self.fc2(x))
13 x = nn.ReLU(self.dropout(x))
TypeError: 'tuple' object is not callable
My model is defined like this:
class MLPb(nn.Module):
def __init__(self):
super(MLPb, self).__init__()
self.config = config
self.fc1 = nn.Linear(784, 600),
self.fc2 = nn.Linear(600, 200),
self.dropout = nn.Dropout(p=0.5), #last layer dropout
self.fc3 = nn.Linear(200, 10)
def forward(self, x):
x = nn.ReLU(self.fc1(x))
x = nn.ReLU(self.fc2(x))
x = nn.ReLU(self.dropout(x))
x = nn.Softmax(self.fc3(x))
return x
EDIT: model defined with ,
between layers