I am trying to build an auto-encoder but I keep stumbling upon an indexing issue when trying to unpool.
This is my code so far for the encoding:
from torch.autograd import Variable

test_in = Variable(torch.rand(1, 73, 480))

layer1 = nn.Conv1d(73, 256, kernel_size=3, stride=1, padding=2, bias=True)
layer2 = nn.ReLU()
layer3 = nn.AdaptiveMaxPool1d(240, return_indices=True)
drop_out = nn.Dropout(0.25)

out = drop_out(test_in)
out = layer1(out)
out = layer2(out)
out, indices = layer3(out)

This is the code for my decoding:
layer1_d = nn.Conv1d(256, 73, kernel_size=2, stride=1, padding=2, bias=True)
drop_out_d = nn.Dropout(0.25)
unpool_d = nn.MaxUnpool1d(3,1)
out_d = unpool_d(out, indices, output_size= (1, 256, 480))
out_d = drop_out_d(out_d)
out_d = layer1_d(out_d)

But I get this error on the  unpool  step

RuntimeError: Found an invalid max index: 480 (output volumes are of size 480x1

The resulting output ( out ) and  indices  from the encoding step have the following shape, respectively  torch.Size([1, 256, 240])  and  torch.Size([1, 256, 240]) .