Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 加载的模型接收到的预测与保存的模型不同_Python_Scikit Learn_Svm_Google Colaboratory_Joblib - Fatal编程技术网

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拟合函数运行


提前谢谢你

加载的模型是否总是使用相同的数据进行训练?您可能会遇到这个问题,因为您的拟合模型使用数据集的不同块(折叠)进行训练,并且您仅在最后一次迭代中拟合/保存数据,因此,每次测试时,模型都会从不同的数据(每个折叠给出)中学习并返回不同的预测。如果模型拟合在交叉验证循环中,则此选项无效。请问,您使用了哪种类型的列车测试拆分?洗牌