【发布时间】:2018-06-14 12:50:25
【问题描述】:
我正在关注Pytorch seq2seq tutorial,下面是他们如何定义编码器功能。
class EncoderRNN(nn.Module):
def __init__(self, input_size, hidden_size):
super(EncoderRNN, self).__init__()
self.hidden_size = hidden_size
self.embedding = nn.Embedding(input_size, hidden_size)
self.gru = nn.GRU(hidden_size, hidden_size)
def forward(self, input, hidden):
embedded = self.embedding(input).view(1, 1, -1)
output = embedded
output, hidden = self.gru(output, hidden)
return output, hidden
def initHidden(self):
return torch.zeros(1, 1, self.hidden_size, device=device)
但是,在训练期间似乎从未真正调用过 forward 方法。
以下是本教程中如何使用编码器转发方法:
for ei in range(input_length):
encoder_output, encoder_hidden = encoder(input_tensor[ei], encoder_hidden)
encoder_outputs[ei] = encoder_output[0, 0]
不应该是encoder.forward 而不仅仅是encoder 吗?
Pytorch 中是否有一些我不知道的自动“前进”机制?
【问题讨论】:
标签: deep-learning pytorch seq2seq