Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neural network 关于LSTM对Keras的理解_Neural Network_Deep Learning_Keras_Lstm - Fatal编程技术网

Neural network 关于LSTM对Keras的理解

Neural network 关于LSTM对Keras的理解,neural-network,deep-learning,keras,lstm,Neural Network,Deep Learning,Keras,Lstm,我想知道在Keras的领导下LSTM是如何工作的 让我们举个例子。 我的最大句子长度为3个单词。 例如:“你好吗?” 我将每个单词矢量化为len4的矢量。所以我将有一个形状(3,4) 现在,我想用lstm来做翻译工作。(只是一个例子) model=Sequential() add(LSTM(1,input_shape=(3,4),return_sequences=True)) model.summary() 根据Keras,我将有一个(3,1)的输出形状 层(类型)输出形状参数 =======

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

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

model=Sequential()
add(LSTM(1,input_shape=(3,4),return_sequences=True))
model.summary()
根据Keras,我将有一个(3,1)的输出形状

层(类型)输出形状参数
=================================================================
lstm_16(lstm)(无、3、1)24
=================================================================
总参数:24
可培训参数:24
不可训练参数:0
_________________________________________________________________
这就是我不明白的

LSTM的每个单元(返回_sequences=True以获得每个状态的所有输出)应该给我一个形状向量(timesteps,x) 其中,timesteps在本例中为3,x是单词向量的大小(在本例中为4)

那么,为什么我的输出形状是(3,1)?
我到处都找了,但都找不出来。

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

换句话说,设置:

model.add(LSTM(k,input\u shape=(3,4),return\u sequences=True))


将生成一个
(无,3,k)
输出形状。

谢谢您的回答。如果我理解的话,你的意思是第一个参数指的是进入LSTM不同门的神经元数量?因此,无论输入是什么,输出和上下文向量都将具有参数len。是吗?是的,第一个参数是指LSTM门的输出维度,输出维度不依赖于输入维度。@Pusheen_the_dev如果答案有帮助,请接受和/或投票-答案会占用受访者宝贵的时间