3

KerasのLSTMが動的な文章の長さをサポートしていないということを、いくつかのプラットフォームで論じている人がいるので、私は以下のコードを書いています。KerasのLSTMは動的な文章の長さをサポートしていますか?

embedding_size = 100 
model = Sequential() 
model.add(LSTM(32, return_sequences=True, input_shape=(None, embedding_size))) 

、それは完全に私は、(それらの入力形状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で私の期待を満たし、以下の出力を有する二つの入力val1val2が与え作品input_shape(None, embedding_size)に設定すると、Kerasは入力長が動的になりますが、わかりましたか?もちろん

(5、20、32)

(5、10、32)

答えて

4

- それはKerasモデルに可変長配列を供給することができます述べたように。単一の場合には、batchはすべてのシーケンスの長さが同じである必要があります。この意味では、動的シーケンス長のサポートを実装することは不可能です。

このケースをより深く考えると、異なるバッチでさまざまな長さのシーケンスを供給することができますが、実際には同じ/類似の長さのシーケンスとしてトレーニングプロセスに偏りが生じる可能性があります常に一緒にトレーニングプロセスに供給されます。

+0

ありがとう、ありがとう! – xxx222

関連する問題