Pytorch, пользовательский слой работает в последовательном, но не в функциональном - PullRequest
1 голос
/ 28 января 2020

Я использую convGRU из здесь , и он работает нормально, когда я использую его в последовательном режиме, но не работает с функционалом. Когда я говорю, что это не работает, я имею в виду, что я получаю черные прогнозы от Функционала, в то время как от Последовательного выходы похожи на входы. Все остальное в коде остается прежним. Ниже приведен пример того, что я последовательно получаю с одним и другим (будучи первой строкой - целью, а второй - прогнозом)

enter image description here

class MyModule(nn.Module):
    def __init__(self):
        super(MyModule, self).__init__()
        self.rnn1 = ConvGRU(
            input_size=(64, 64),
            input_dim=1,
            hidden_dim=1,
            kernel_size=(3, 3),
            num_layers=1,
            dtype=dtype,
            batch_first=True,
            bias=True,
            return_all_layers=False,
        )

    def forward(self, x):
        x = self.rnn1(x)
        return x

против

model = nn.Sequential(
    ConvGRU(
        input_size=(64, 64),
        input_dim=1,
        hidden_dim=1,
        kernel_size=(3, 3),
        num_layers=1,
        dtype=dtype,
        batch_first=True,
        bias=True,
        return_all_layers=False,
    )
)

Есть ли идеи, если при программировании пользовательских слоев должны быть разные соображения относительно того, когда он предназначен для использования в функциональном или последовательном?

Спасибо!

...