我正在尝试实现滑动窗口方法,并在预测部分使用DNN。窗口长度= 24
我做了什么:
我在数据集中有bd.deleteVazamentos(elementos.get(position).getVazID());
(输入)和x
(输出)。我将y
的值保持不变(单个数组)。并在x值上:
"y"
我收到的错误消息:
def generate_input(data, sequence_length=1):
x_data = []
for i in range(len(data)-sequence_length+1):
a = data[i:(i+sequence_length)]
x_data.append(a)
return np.array (x_data)
sequence_length = 24
x_train = generate_input(train, sequence_length)
#Shape of X train: (201389, 24)
#Shape of y train: (201412,)
model = Sequential()
model.add(Dense(30,input_shape= (x_train.shape[1],)))
model.add(Dense(20))
model.add(Dropout(0.2))
model.compile(loss="mse", optimizer='rmsprop')
model.summary()
model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs,
validation_split=0.1)
另一个问题,如何对多元时间序列使用相同的方法?我想使用序列作为输入来预测Error when checking target: expected dropout_5 to have shape (20,) but got
array with shape (1,)
。
我将切片部分更改为:
y
但是我收到一个错误:
无法将尺寸为24的序列复制到尺寸为4的数组轴上
答案 0 :(得分:0)
model.summary()
应该向您显示,模型中的输出层是形状为(None,20)的Dropout层。那可能不是您想要的。似乎您正在尝试预测单个值。因此,您需要在其后添加一个Dense(1)
层。将辍学作为输出层也是非常不寻常的。
此外,x_train和y_train的形状应相同[0]。