我读过一篇关于机器翻译的论文,它使用了投影层。它的编码器有6个双向LSTM层。如果输入嵌入维数是512,那么编码器输出的维数是多少? 512*2**5?
发布于 2020-02-11 17:21:49
不完全是。不幸的是,上述论文中的图1有点误导。这并不是说六个编码层是并行的,正如从图中可以理解的那样,而是说这些层是连续的,这意味着来自前一层的隐藏状态/输出在后续层中用作输入。
这一点,以及输入(嵌入)维度不是LSTM层的输出维度(实际上,它是2 * hidden_size)的事实,在将其放入最终投影层之前,将您的输出维度更改为:2 * hidden_size,这将再次根据您的规范更改维度。
我不太清楚add的描述在层中做了什么,但如果你看一个reference implementation,它似乎与答案无关。具体地说,观察编码函数是如何实现的
def encode(...):
encode_inputs = self.embed(...)
for l in num_layers:
prev_input = encode_inputs
encode_inputs = self.nth_layer(...)
# ...显然,这里发生了更多的事情,但这说明了网络的基本功能块。
https://stackoverflow.com/questions/60164056
复制相似问题