ShusenTang / Dive-into-DL-PyTorch

本项目将《动手学深度学习》(Dive into Deep Learning)原书中的MXNet实现改为PyTorch实现。
http://tangshusen.me/Dive-into-DL-PyTorch
Apache License 2.0
18.2k stars 5.38k forks source link

书中seq2seq + Attention部分有一些代码是基于size间相等的前提写的,which is not always true. #72

Closed SephiHorse closed 4 years ago

SephiHorse commented 4 years ago

image

比如这个attention前向传播的代码,这里是默认encoder_hidden_size == decoder_hidden_size,所以下面红线处input_size 才能用2倍num_hiddens来赋值,并且上面红线处才可以直接dec_state.expand_as(enc_state)。

image 这边又默认了hidden_size == embedding_size,所以decoder中的input_size 才能用2倍embedding_size来赋值。

我感觉这里是不是写的更具有普遍性会比较好,否则容易误导读者,我一开始就纳闷了很久为什么是*2。

ShusenTang commented 4 years ago

嗯,你说得对,之前也有人提出了(#64),所以我在前段时间已经修改了这个bug,参见 a86f344 ,你可以去看看最新的

SephiHorse commented 4 years ago

嗯,你说得对,之前也有人提出了(#64),所以我在前段时间已经修改了这个bug,参见 a86f344 ,你可以去看看最新的

好的,多谢