Python 加载的模型接收到的预测与保存的模型不同
我正试图保存一个模型并将其加载到另一个会话中,但我发现预测不一致,我将非常感谢能够提供的任何帮助。这就是我所做的 首先,运行模型后,我使用以下代码保存模型:Python 加载的模型接收到的预测与保存的模型不同,python,scikit-learn,svm,google-colaboratory,joblib,Python,Scikit Learn,Svm,Google Colaboratory,Joblib,我正试图保存一个模型并将其加载到另一个会话中,但我发现预测不一致,我将非常感谢能够提供的任何帮助。这就是我所做的 首先,运行模型后,我使用以下代码保存模型: from sklearn.externals import joblib joblib.dump(clf, "models.pkl") 然后,为了将文件加载到不同的协作笔记本中,我使用了函数 from sklearn.externals import joblib loaded_model = joblib.load('models.pk
from sklearn.externals import joblib
joblib.dump(clf, "models.pkl")
然后,为了将文件加载到不同的协作笔记本中,我使用了函数
from sklearn.externals import joblib
loaded_model = joblib.load('models.pkl')
然后是我用来处理单个图像进行测试的程序
img_toArray = cv2.imread("/content/ESD/ESD/folder1/img1.png")
new_array = cv2.resize(img_toArray, (220, 220))
new_array = np.array(new_array).reshape(1,145200)
但这会导致我测试的每个图像都有一个数组([4])的输出,我不知道为什么
我还尝试再次重新加载整个数据集,并将标签与功能(图像)分开,使用train_test_split将90%的数据集用于测试,当我运行要测试的功能(图像)时,通过代码块:
loaded_model.predict(np.array(xTest[whatEverNumber]).reshape(1,145200))
我得到了正确的预测。所以我对自己做错了什么感到困惑,因为在这两个例子中,我用基本相同的方法处理图像,然后分离图像并用相同的预测方法运行它们。因此,如果有人能帮我找出我做错了什么,我将不胜感激
额外的信息可能证明是有益的:我正在使用colaboratory,我的模型是一个sklearn SVM,它通过交叉验证预测、交叉验证预测,最后是SVM拟合函数运行
提前谢谢你 加载的模型是否总是使用相同的数据进行训练?您可能会遇到这个问题,因为您的拟合模型使用数据集的不同块(折叠)进行训练,并且您仅在最后一次迭代中拟合/保存数据,因此,每次测试时,模型都会从不同的数据(每个折叠给出)中学习并返回不同的预测。如果模型拟合在交叉验证循环中,则此选项无效。请问,您使用了哪种类型的列车测试拆分?洗牌