Я пытаюсь сохранить модель и загрузить ее в другой сеанс, но у меня возникают несоответствия в прогнозировании, и я был бы признателен за любую помощь, которая может быть предложена. Итак, вот что я сделал ...
Сначала, после запуска модели, я использовал этот код для сохранения модели:
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))
Я получаю правильные прогнозы. Поэтому я не совсем понимаю, что я делаю неправильно, потому что в обоих примерах я обрабатываю изображения в основном одним и тем же методом, а затем разделяю изображения и запускаю их с помощью одного и того же метода прогнозирования. Поэтому я был бы признателен за любую помощь в выяснении, что я сделал не так.
Дополнительная информация, которая может оказаться полезной: я использую колабораторию, и моя модель - это SVM-файл sklearn, который проходит через cross_validation_predict, cross_validation_predict и, наконец, функцию подбора SVM.
Заранее спасибо!