如何输出CNN值以进行库存预测

时间:2019-04-24 22:49:37

标签: python numpy tensorflow keras

我建立了一个基于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数组,其值从11e-7。但是我不知道这些价值观是指什么。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

听起来像是您在不知道数据的情况下试图获得结果。永远不要这样做,最终可能会导致无用的结果。

我不知道您从哪里获得数据,但是那个地方应该描述目标是什么。在这种情况下,由于多维输出,它可能是分类目标(例如,如果您使用分类交叉熵损失,但代码中也未说明)。如果是这种情况,并且您期望的输出是一个实数,则类别可能是该数字的范围,并且输出数组中的每个值就是该数字属于这些范围中的每个范围的概率。