我按照此处的教程设计了一个人工神经网络模型: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.
我该怎么办?
您在评论中描述的错误是由于模型需要输入大小(9,n)而引起的,其中'n'是您要输入的数据点数-这就是为什么它要求(9,)
的原因。但是,当您尝试进行预测时,实际上输入的是一个大小为9的向量,其二维值为(1,9)-这就是为什么它表示得到(1,)
的原因。您可以通过将输入从(1,9)重塑为(9,1)来解决此问题。在调用predict()
方法之前执行此操作: