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

问题描述

我正在尝试使用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)

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

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)