PyTorch中输出大小可变的多个RNN

2024-04-20 13:39:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试实现多对多RNN网络。我已将模型和前进道具定义如下:

class ManyToManyRNN(nn.Module):
    def __init__(self, hid_size=100, output_dim):
        super(ManyToManyRNN, self).__init__()
        self.hidden_size = hid_size
        self.output_dim = output_dim
        self.rnn = nn.LSTM(input_size=4, hidden_size=self.hidden_size, num_layers=1, batch_first=True)
        self.fc1 = nn.Linear(self.hidden_size, self.output_dim)

    def forward(self, inputs):
        outputs = []
        rnn_out, _ = self.rnn(inputs)
        output = self.fc1(rnn_out[:, -1])
        return output

我可以在初始化类时设置output_dim的值,然后该值得到修复。但是,在我的应用程序中,输出维度的值不断变化。我无法预先确定output_dim的值

我的问题是,如何构造一个输出维度灵活的多对多RNN?我愿意更改模型的体系结构以实现此功能。感谢您的帮助


Tags: 模型selfoutputsizeinitdefnnhidden