具有Keras数据形状问题的LSTM自动编码器

时间:2018-12-18 19:16:59

标签: python tensorflow keras

我正在尝试使用Keras与LSTM自动编码器建立模型。这是我尝试过的

data = df.values
timesteps = 10
dim = data.shape[1]
samples = data.shape[0]
data.shape = (int(samples/timesteps),timesteps,dim)

然后

model = Sequential()
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.add(LSTM(50,input_shape=(timesteps,dim),return_sequences=True))
model.compile(loss='mae', optimizer='adam')

这是我适合的模特

model.fit(data, data, epochs=50, batch_size=72, validation_data=(data, data), verbose=0, shuffle=False)

这是我收到的错误消息

ValueError: Error when checking target: expected lstm_33 to have shape (None, 10, 50) but got array with shape (711, 10, 1)

我该如何解决?

我只有我一个数据集

更新

我具有的输入数据形状= (7110, 1)

这是单变量时间序列数据

1 个答案:

答案 0 :(得分:3)

该错误是由为所有图层指定I am using Unity 2018.2.6f1 引起的。您只需要对第一层进行此操作,其余的将由上一层进行推断。发生的情况是您要覆盖导致错误的输入形状。