我也在 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)
...
有任何想法吗?