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)