用于库存数据的Keras转换输入形状/参数

时间:2018-09-24 04:54:10

标签: python-3.x tensorflow keras conv-neural-network keras-layer

我正尝试测试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)

1 个答案:

答案 0 :(得分:1)

Conv1D需要3D输入。

您有2D输入。

如果您这样重塑

x = x.reshape(batch, steps, channels)

请参阅link了解更多信息。

应该可以。

如果您想获得更详细的答案,请添加其余代码,以便于重现。