具有多个特征的线性回归-使用数组训练神经网络后如何进行预测

问题描述 投票:1回答:1

我按照此处的教程设计了一个人工神经网络模型:https://www.tensorflow.org/tutorials/keras/regression

[之后,我使用model.save()保存了模型,并尝试将其加载到其他笔记本中,因为这是我希望人们使用经过训练的模型(导入它们)的方式。另外,我正在尝试设计一个代码,使我可以预测我想要的任意数量的值(6、7、8、2,无论如何),所以我正在尝试将此预测数据放入数组中,以将其馈送到model_predict 。

我试图做出一个简单的预测,但每次都失败。在这种情况下如何使用model.predict()?

这是我尝试使用的代码:

import pandas as pd
from sklearn import datasets
import tensorflow as tf
import itertools

model = tf.keras.models.load_model('MPG_Model.model')

prediction_input = {
    'Cylinders' : [4],
    'Displacement' : [140.0],
    'Horsepower' : [86.0],
    'Weight' : [2790.0],
    'Acceleration' : [15.6],
    'Model Year' : [82],
    'Origin' : [1],
}

dataset = tf.convert_to_tensor(prediction_input)
predictions = model.predict(dataset).flatten()

它返回以下错误消息:

ValueError: Attempt to convert a value ({'Cylinders': [4], 'Displacement': [140.0], 'Horsepower': [86.0], 'Weight': [2790.0], 'Acceleration': [15.6], 'Model Year': [82], 'Origin': [1]}) with an unsupported type (<class 'dict'>) to a Tensor.

我该怎么办?

python tensorflow neural-network linear-regression
1个回答
0
投票

您在评论中描述的错误是由于模型需要输入大小(9,n)而引起的,其中'n'是您要输入的数据点数-这就是为什么它要求(9,)的原因。但是,当您尝试进行预测时,实际上输入的是一个大小为9的向量,其二维值为(1,9)-这就是为什么它表示得到(1,)的原因。您可以通过将输入从(1,9)重塑为(9,1)来解决此问题。在调用predict()方法之前执行此操作:

© www.soinside.com 2019 - 2024. All rights reserved.