Python 列表(向量)不';t匹配tensorflow要求的形状

Python 列表(向量)不';t匹配tensorflow要求的形状,python,tensorflow,machine-learning,keras,Python,Tensorflow,Machine Learning,Keras,背景: 我正在构建一个基于机器学习模型的反病毒软件。 我构建了一个程序,它生成一个有486个值的列表(向量) 例如,这是缩短版本的外观(acutal向量有486个值): 我用一个数据库完成了模型的构建,一个xlsx文件,我从每一行提取它 问题: 现在,我试图预测某个文件是否是病毒,我为该文件构建了一个向量,并尝试使用该模型。predict(pe)函数(pe是我的向量),我得到一个错误,说我的向量与预期的形状不匹配: ' but received input with shape ' + str(

背景: 我正在构建一个基于机器学习模型的反病毒软件。 我构建了一个程序,它生成一个有486个值的列表(向量)

例如,这是缩短版本的外观(acutal向量有486个值):

我用一个数据库完成了模型的构建,一个xlsx文件,我从每一行提取它

问题: 现在,我试图预测某个文件是否是病毒,我为该文件构建了一个向量,并尝试使用该模型。predict(pe)函数(pe是我的向量),我得到一个错误,说我的向量与预期的形状不匹配:

' but received input with shape ' + str(shape))
ValueError: Input 0 of layer sequential is incompatible with the layer: expected axis -1 of input shape to have value 486 but received input with shape [None, 1]
这是我的密码:

from tensorflow import keras
import vector_build #custom code that I made

model = keras.models.load_model("anti_virus_model.h5")

pe = vector_build.encode_pe("C:\\Windows\\System32\\calc.exe")

print(model.predict(pe))
我真的不知道该做什么以及如何改变向量的形状。 也许当我从.xlsx文件中提取数据时,它没有将其识别为相同的格式向量

如果你需要我补充什么,请告诉我

我很想听听你的想法!
提前谢谢

您可能对模型进行了批量数据培训?也就是说,您的输入具有shape
[batch\u size,486]
。Keras模型总是期望在其输入中有一个批处理轴,即使这是一个单独的示例。因此,请确保输入具有批处理轴


现在(我假设),您的输入只是shape
[486]
,也就是说,它没有批处理轴——您只需添加一个。您可以这样做:
model.predict(pe[None])
。这将在前面添加一个大小为1的轴,使输入形状[1486]。

您完全正确!我使用了一个2d数据并检查了每一行。当我构建一个向量时,它只有1d,所以模型不知道如何处理它!谢谢,添加pe[无]有效!
from tensorflow import keras
import vector_build #custom code that I made

model = keras.models.load_model("anti_virus_model.h5")

pe = vector_build.encode_pe("C:\\Windows\\System32\\calc.exe")

print(model.predict(pe))