Я хочу создать Coneolution AutoEncoder с использованием библиотеки Pytorch в python.
Все примеры не имеют MaxUnpool1d.
Архитектура, которую я хочу построить, должна быть такой:
class autoencoder(nn.Module):
def __init__(self):
self.encoder = nn.Sequential(
nn.Conv1d(in_channels=1, out_channels=64 ,kernel_size=16 , stride=3),
nn.ReLU(True),
nn.MaxPool1d(4),
nn.Conv1d(64, 128 ,8, 3),
nn.ReLU(True),
nn.MaxPool1d(4),
)
self.decoder = nn.Sequential(
nn.MaxUnpool1d(4),
nn.ConvTranspose1d(in_channels =128, out_channels =64 , kernel_size =8, stride= 3),
nn.ReLU(True),
nn.MaxUnpool1d(4),
nn.ConvTranspose1d(64, 1 ,16, 3),
nn.Tanh()
)
def forward(self, x):
x = self.encoder(x)
x = self.decoder(x)
return x
Чтобы это работало, я должен предоставить индексы для слоя MaxUnpool1d.
Как я могу использовать его для текущей архитектуры, а также сделать размер ввода равным выходу?
Спасибо.