关于 Keras 上的 LSTM 理解

Pusheen_the_dev

我想知道在 Keras 下 LSTM 是如何工作的。

让我们举个例子。我的最大句子长度为 3 个单词。示例:“你好吗”我将每个词向量化为 len 4 的向量。所以我将有一个形状 (3,4) 现在,我想使用 lstm 来做翻译的东西。(只是一个例子)

model = Sequential()
model.add(LSTM(1, input_shape=(3,4), return_sequences=True))
model.summary()

根据 Keras,我将有 (3,1) 的输出形状。

Layer (type)                 Output Shape              Param #   
=================================================================
lstm_16 (LSTM)               (None, 3, 1)              24        
=================================================================
Total params: 24
Trainable params: 24
Non-trainable params: 0
_________________________________________________________________

这是我不明白的。

LSTM 的每个单元(使用 return_sequences=True 来获得每个状态的所有输出)应该给我一个形状向量(时间步长,x),在这种情况下,时间步长是 3,x 是我的单词向量的大小(在在这种情况下,4)

那么,为什么我的输出形状为 (3,1) ?我到处搜索,但无法弄清楚。

维纳斯

你对 LSTM 应该返回什么的解释是不正确的。输出维度不需要与输入维度匹配。具体来说,keras.layers.LSTM的第一个参数对应于输出空间的维度,您将其设置为 1。

换句话说,设置:

model.add(LSTM(k, input_shape=(3,4), return_sequences=True))

将导致(None, 3, k)输出形状。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

关于 Keras LSTM 的输出

来自分类Dev

关于 Keras LSTM 中参数的困惑

来自分类Dev

Keras LSTM在每个单元上使用softmax

来自分类Dev

Keras,计算 LSTM 上输入的损失梯度

来自分类Dev

关于列表理解

来自分类Dev

Keras LSTM在线学习

来自分类Dev

Keras LSTM错误

来自分类Dev

在 keras 中输入 LSTM

来自分类Dev

Keras,无状态 LSTM

来自分类Dev

Keras LSTM 常数损失

来自分类Dev

有关LSTM Keras上置换重要性的问题

来自分类Dev

Keras损失函数值错误:ValueError:一个操作没有梯度。在LSTM网络上

来自分类Dev

带有 theano 后端的 keras 在 cpu 上运行 lstm 的速度要慢得多

来自分类Dev

使用Keras理解WeightedKappaLoss

来自分类Dev

Keras有状态LSTM错误

来自分类Dev

Keras LSTM输入/输出尺寸

来自分类Dev

Keras LSTM模型不学习

来自分类Dev

keras lstm的输出形状错误

来自分类Dev

Keras LSTM随序列预测

来自分类Dev

如何恢复 Keras LSTM 状态

来自分类Dev

Keras LSTM 模型数据重塑

来自分类Dev

Keras LSTM 没有被添加

来自分类Dev

Python 中的 Keras:LSTM 维度

来自分类Dev

即使在批次大小为1的小型LSTM模型上也可以使用tf.keras OOM

来自分类Dev

在带有 Tensorflow 后端的 Keras 上,在输入的不同部分并行拟合 LSTM 和一些密集层

来自分类Dev

关于理解和协方差的错误的解释

来自分类Dev

关于扩展方法的一些理解

来自分类Dev

关于方法中的数组列表的概念理解

来自分类Dev

如何理解关于`(`,`)`和`test`的POSIX描述?