每批训练序列长度可变的LSTM

时间:2020-08-20 13:44:19

标签: python keras lstm variable-length

我正在尝试使用Keras LSTM层训练一个简单的网络。

我知道LSTM可以使用可变的序列长度,而且我知道如果一批中的所有序列都具有相同的长度,它将起作用。

是否可以将网络适应于范围内的可变序列长度的批次?

我的批次是通过以下方式创建的:

sequences = []
for i in range(128):
    created_sequence = ... #create 2d array (list of lists) with shape (x,5)
    # x changes every iteration
    sequences.append(np.array(created_sequence)

return np.array(sequences, dtype=object) #now the shape of the array is (128,)

据我了解,numpy无法指定第二维或第三维的形状。

图层:

    model.add(LSTM(53, dropout=0.1, recurrent_dropout=0.1, input_shape=(None, 5), return_sequences=False))

这样的拟合被称为:

model.fit(batch_x, batch_y, epochs=10, validation_data=(test_batch_x, test_batch_y),verbose=2)

我得到的错误:

ValueError: Error when checking input: expected lstm_1_input to have 3 dimensions, but got array with shape (128, 1)

任何不包含填充的解决方案都将受到欢迎!

谢谢

0 个答案:

没有答案