Hi,
I’ve just added a Maxpool1d into a CVAE, and the shape is changing from <x1,y1,z1> to <x2,y2> ie its changing from a 3D tensor to a 2D tensor, any ideas why this is?
Cheers,
Chaslie
Hi,
I’ve just added a Maxpool1d into a CVAE, and the shape is changing from <x1,y1,z1> to <x2,y2> ie its changing from a 3D tensor to a 2D tensor, any ideas why this is?
Cheers,
Chaslie
Hi Spanev,
the code line is
self.pool=nn.MaxPool1d(22,stride=1,padding=10,dilation=1)
The input shape is <2,128,66>
the output shape is <128,65>
the output shape is correct when i calculate, except it is now a 2D tensor and not 3D which gives:
RuntimeError: Expected 3-dimensional input for 3-dimensional weight 128 128, but got 2-dimensional input of size [128, 65] instead
Having adjustedf the maxpool line to:
self.pool=nn.MaxPool1d(22,stride=1,padding=10,dilation=1,return_indices=True)
and
def forward(self, data):
data,indices=self.pool(data)
return data, indices
Which is fed into a decoder using:
self.unpool=nn.MaxUnpool1d(22,stride=1,padding=10)
and
def forward(self, z2,indices):
z2=self.unpool(z2,indices, output_size=input.size())
I am now getting the error:
model(*x)
File "d:\Users\CHARLIE\Anaconda3\lib\site-packages\torch\nn\modules\module.py", line 493, in __call__
result = self.forward(*input, **kwargs)
TypeError: forward() missing 1 required positional argument: 'indices'
It might come from somewhere else in your model, since the input data shape and layer you give produces a [2, 128, 65]
shaped output:
>>> pool=nn.MaxPool1d(22,stride=1,padding=10,dilation=1)
>>> t = torch.rand(2,128,66)
>>> pool(t).shape
torch.Size([2, 128, 65])
What is x
here?
File “d:\xxxx\Anaconda3\lib\site-packages\torchsummary\torchsummary.py”, line 72, in summary
model(*x)