【发布时间】:2021-01-14 23:14:10
【问题描述】:
我正在使用 Keras 开发比特币价格预测器。我从binance.com 获得数据。 5000小时的数据结构是这样的:
[ ['1597773600000''11983.22000000''12010.95000000''11948.40000000''11978.18000000''2344.24787500'] ['1597777200000''11978.19000000''12029.00000000''11964.63000000''11982.00000000''1993.81400900'] ['1597780800000''11981.99000000''12037.86000000''11978.07000000''12022.99000000''2092.06777400'] ... ['1586962800000''6717.66000000''6745.51000000''6690.00000000''6701.90000000''3279.59274200'] ['1586966400000''6701.90000000''6749.69000000''6690.00000000''6729.58000000''2511.60203300'] ['1586970000000''6729.59000000''6763.13000000''6724.51000000''6746.86000000''1660.33553000'] ]
形状= (5000, 6) 大小= 30000 ndim=2
在每个条目中,第一个元素是时间戳。我需要将其重塑为(样本、时间戳、功能)。我是这样做的:
btcData = np.reshape(btcData,(5000, 1, 6))
然后我对数据进行标准化并建立模型。模型在这里:
myModel = keras.Sequential(name='cryptoPredictor')
myModel.add(keras.Input(np.shape(train_data),))
myModel.summary()
myModel.add(LSTM(128, activation='tanh'))
myModel.summary()
myModel.add(LSTM(128, activation='tanh'))
myModel.summary()
myModel.add(Dense(1))
myModel.summary()
myModel.compile(optimizer='rmsprop', loss='mse', metrics=['mae'])
myModel.fit(train_data, test_data, batch_size=100, epochs=50, validation_split=15.0)
当我运行模型时,我收到此错误:
lstm_11 层的输入 0 与该层不兼容:预期 ndim=3,发现 ndim=4。完整的形状 收到:[None, 5000, 1, 6]
我可以做些什么来解决这个错误?
【问题讨论】:
-
标签在哪里?为什么每个元素有 6 个值?这些是以前的值吗?这是一个窗口数据集吗?
标签: python tensorflow keras neural-network lstm