【发布时间】:2020-06-09 02:17:58
【问题描述】:
在 keras 和 pytorch 之间的编码器-解码器模型的构建上似乎存在显着的根本差异。这里是keras' enc-dec blog,这里是pytorch's enc-dec blog。
我注意到的一些差异如下:
- Keras 的模型直接将输入提供给 LSTM 层。而 Pytorch 对编码器和解码器都使用嵌入层。
- Pytorch 在编码器中使用没有激活的嵌入层,但在解码器中对嵌入层使用 relu 激活。
鉴于这些观察,我的问题如下:
- 我的理解如下,对吗?嵌入层不是严格要求的,但它有助于找到更好和更密集的输入表示。它是可选的,您仍然可以在没有嵌入层的情况下构建一个好的模型(取决于问题)。这就是 Keras 在这个特定示例中选择不使用它的原因。这是一个合理的理由还是还有更多的原因?
- 为什么在解码器而不是编码器中对嵌入层使用激活?
- 为什么嵌入层使用“relu”而不是“tanh”等作为激活?这里的直觉是什么?我只看到'relu'应用于具有空间关系而不是时间关系的数据。
【问题讨论】: