3
由於我看到有人在Keras的LSTM
不支持動態句子長度的某些平臺上爭論,我寫了下面的代碼。Keras中的LSTM是否支持動態句子長度?
embedding_size = 100
model = Sequential()
model.add(LSTM(32, return_sequences=True, input_shape=(None, embedding_size)))
和它的作品完美地給出了兩個輸入val1
和val2
我喂(這些輸入的形狀batch_size * sentence length * embedding size
),
val1 = np.random.random((5,20,embedding_size))
val2 = np.random.random((5,10,embedding_size))
input = model.input
output = model.output
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
k1 = sess.run(output, feed_dict={input:val1})
k2 = sess.run(output, feed_dict={input:val2})
print k1.shape
print k2.shape
和我有以下輸出,滿足了我的期望,LSTM
在如果我們將input_shape
設置爲(None, embedding_size)
,我的理解是正確的,Keras在輸入長度上是動態的?
(5,20,32)
(5,10,32)
我明白了,非常感謝! – xxx222