【发布时间】:2019-04-24 22:49:37
【问题描述】:
我构建了一个基于LSTM 的神经网络来预测 BTC 的价格。我会说它的训练很不错,但我不确定如何让它预测明天的价格。
我为我的训练模型尝试了 Keras 的方法 predict,以今天的价格作为参数,然后使用 tensorflow 的“tf.argmax”来选择输出数组中的最高确定性。现在我知道它指的是在计算机视觉案例中预测的类别,但我真的不知道在那种情况下这些概率指的是什么。
模型构建:
model = Sequential()
model.add(LSTM(neurons, return_sequences=True, input_shape=(inputs.shape[1], inputs.shape[2]), activation=activ_func))
model.add(Dropout(dropout))
model.add(LSTM(neurons, return_sequences=True, activation=activ_func))
model.add(Dropout(dropout))
model.add(LSTM(neurons, activation=activ_func))
model.add(Dropout(dropout))
model.add(Dense(units=output_size))
model.add(Activation(activ_func))
model.compile(loss=loss, optimizer=optimizer, metrics=['mae'])
model.summary()
plot_keras_model(model, show_shapes=True, show_layer_names=False)
训练和预测:
prediction_data = get_today_price4prediction('bitcoin', tag="BTC")
X_prediction = create_inputs(prediction_data)
X_prediction = to_array(X_prediction)
btc_history = btc_model.fit(X_train, Y_train_btc, epochs=epochs, batch_size=batch_size, verbose=1, validation_data=(X_test, Y_test_btc), shuffle=False)
predictions = btc_model.predict(X_prediction, verbose=1, steps=None)
plot_results(btc_history, btc_model, Y_train_btc, coin='BTC')
predictions = tf.math.argmax(predictions)
print(predictions)
预期的输出是一个7D numpy 数组,其值从1 到1e-7。但我不知道这些值指的是什么。有什么建议吗?
【问题讨论】:
标签: python numpy tensorflow keras