3

我也在 pytorch 讨论论坛上问过这个问题(链接),但我想我会在这里问,以防它获得更多关注。

我使用 pytorch 的nn.RNN()模块训练了一个模型,方法是给它输入批次的序列(可变的seq_len),并在批次中的序列长度不同时正确填充。

我现在正在尝试使用经过训练的 RNN 模型生成序列。我制作了一个长度为 one 的序列,其中包含我的索引,GO_TOKEN并将其提供给我训练过的 RNN。不幸的是,我得到的都是 0。有没有人这样做过?

一些代码以防万一:

class Model(nn.Module):

    def __init__(self,  
                 inputs_vocab_size,
                 embedding_dim,
                 out_units=128, 
                 hidden_size=128,
                 nlayers=1,
                 num_directions=1,
                 dropout=0.1):

        super(Model, self).__init__()

        ...

        self.encoder = nn.Embedding(inputs_vocab_size, embedding_dim).cuda()
        self.rnn = nn.RNN(embedding_dim, hidden_size, nlayers, dropout=0.5)
        self.decoder = nn.Linear(hidden_size * num_directions, inputs_vocab_size)

        ...

有任何想法吗?

4

0 回答 0