我正在尝试使用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)
任何不包含填充的解决方案都将受到欢迎!
谢谢