PyTorch - недопустимый максимальный индекс, когда MaxUnpool1d - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь создать авто-кодировщик, но продолжаю сталкиваться с проблемой индексации при попытке отсоединиться.

Это мой код для кодировки:

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)

Это код для моего декодирования:

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)

Но я получаю эту ошибку на unpool step

RuntimeError: Обнаружен недопустимый максимальный индекс: 480 (выходные тома имеют размер 480x1

Результирующий вывод (out) и indices изэтап кодирования имеет следующую форму соответственно torch.Size([1, 256, 240]) и torch.Size([1, 256, 240]).

...