我正尝试测试Keras 1DConv CNN,以帮助预测时间序列/股票数据。像N股这样的东西将在n个时间步上具有OHLCV数据。例如,对于N = 1的股票,我试图仅预测下一个时期的收盘价。假设使用一只股票,我有100个周期的OHLCV值,所以X.shape =(100,5),而y.shape =(100,1)。
我正在尝试将图层添加为输入:
model.add(Conv1D(filters=50, kernel_size=7,activation='relu', data_format='channels_last',input_shape=(100,5)))
但是关于输入形状(当我尝试拟合数据时)的错误不断,或者不是正确的尺寸或以错误的顺序传递了形状。我尝试过重塑数组以添加额外的维度,但到目前为止没有任何效果。我应该如何格式化数据,如果对这个任务有其他建议,请告诉我:缩放,参数(损耗,优化器,激活,data_format)。渠道如何发挥作用?
干杯!
model.fit(X_train, y_train, epochs=nb_epoch, validation_data=(X_test, y_test), batch_size=16)
ValueError: Error when checking target: expected conv1d_1 to have 3 dimensions, but got array with shape (100, 5)
答案 0 :(得分:1)
Conv1D需要3D输入。
您有2D输入。
如果您这样重塑
x = x.reshape(batch, steps, channels)
请参阅link了解更多信息。
应该可以。
如果您想获得更详细的答案,请添加其余代码,以便于重现。