While training my model, getting the error
RuntimeError: mat1 and mat2 shapes cannot be multiplied (1x2 and 41x2048)
MODEL:
class SimCLR(nn.Module):
def __init__(self, device = "cpu", out_dim=21, input_shape=(256,1,41)):
super(SimCLR,self).__init__()
self.input_shape=input_shape
# self.f = Net()
self.f = LSTMModel(input_dim, hidden_dim, layer_dim, output_dim)
self.f.maxpool = nn.Identity()
self.f.fc =nn.Identity()
self.g = nn.Sequential(nn.Linear( in_features=41, out_features=2048), nn.ReLU(),
nn.Linear(in_features=2048, out_features = 21))
self.f.to(device)
self.g.to(device)
def forward(self,x):
h = self.f(x)
return self.g(h)
RuntimeError Traceback (most recent call last)
<ipython-input-49-327260f3ebce> in <module>
23 optimizer.zero_grad()
24
---> 25 output = model(X_tr)
26 optimizer.zero_grad()
27 loss = loss_func(output)
~\anaconda3\lib\site-packages\torch\nn\modules\module.py in _call_impl(self, *input, **kwargs)
887 result = self._slow_forward(*input, **kwargs)
888 else:
--> 889 result = self.forward(*input, **kwargs)
890 for hook in itertools.chain(
891 _global_forward_hooks.values(),
<ipython-input-46-57f0f20c7fa0> in forward(self, x)
15 h = self.f(x)
16 # return h
---> 17 return self.g(h)
18
~\anaconda3\lib\site-packages\torch\nn\modules\module.py in _call_impl(self, *input, **kwargs)
887 result = self._slow_forward(*input, **kwargs)
888 else:
--> 889 result = self.forward(*input, **kwargs)
890 for hook in itertools.chain(
891 _global_forward_hooks.values(),
~\anaconda3\lib\site-packages\torch\nn\modules\container.py in forward(self, input)
117 def forward(self, input):
118 for module in self:
--> 119 input = module(input)
120 return input
121
~\anaconda3\lib\site-packages\torch\nn\modules\module.py in _call_impl(self, *input, **kwargs)
887 result = self._slow_forward(*input, **kwargs)
888 else:
--> 889 result = self.forward(*input, **kwargs)
890 for hook in itertools.chain(
891 _global_forward_hooks.values(),
~\anaconda3\lib\site-packages\torch\nn\modules\linear.py in forward(self, input)
92
93 def forward(self, input: Tensor) -> Tensor:
---> 94 return F.linear(input, self.weight, self.bias)
95
96 def extra_repr(self) -> str:
~\anaconda3\lib\site-packages\torch\nn\functional.py in linear(input, weight, bias)
1751 if has_torch_function_variadic(input, weight):
1752 return handle_torch_function(linear, (input, weight), input, weight, bias=bias)
-> 1753 return torch._C._nn.linear(input, weight, bias)
1754
1755
RuntimeError: mat1 and mat2 shapes cannot be multiplied (1x2 and 41x2048)