Open Pauldev2014 opened 3 weeks ago
DeepRNN的forward()中,使用了两个for loop:
for layer in range(self.num_layers): for step in range(seq_len): ...
意思是每层会把整个sequence都处理完,才传到下层。
但 pytorch 的文档显示,它们使用刚好相反的方式。 https://pytorch.org/docs/stable/generated/torch.nn.RNN.html
for step in range(seq_len): for layer in range(self.num_layers): ...
意思是每个sequence item都要先经过所有层,才接着处理下一个item。
也许结果差不多,但是意思差很远。到底这段参考d2l的代码有没问题?
Hi,
对于单向多层RNN来说,两种写法应该是等价的:
此外,需要注意,如果是双向多层RNN,则只能使用我们的实现方式。
DeepRNN的forward()中,使用了两个for loop:
for layer in range(self.num_layers): for step in range(seq_len): ...
意思是每层会把整个sequence都处理完,才传到下层。
但 pytorch 的文档显示,它们使用刚好相反的方式。 https://pytorch.org/docs/stable/generated/torch.nn.RNN.html
for step in range(seq_len): for layer in range(self.num_layers): ...
意思是每个sequence item都要先经过所有层,才接着处理下一个item。
也许结果差不多,但是意思差很远。到底这段参考d2l的代码有没问题?