Сохранение (и загрузка) классификатора scikit-learn Keras

#keras #scikit-learn #pickle

#keras #scikit-learn #рассол

Вопрос:

Я использую оболочку sklearn для оптимизации гиперпараметра GridSearchCV. Я хочу сохранить лучшую модель (в абсолютно любом формате файла, который работает) и, возможно, некоторые показатели, которые вернул поиск по сетке. Я видел несколько потоков о сохранении моделей из Keras, а также моделей из scikit-learn, но не так много о сохранении моделей keras, которые были завернуты для sci-kit-learn.

Я пытался использовать gscv.best_estimator_.model.save('BestNN.h5')

как предлагалось в этом потоке, но я не смог найти, как загрузить это обратно (использование keras.models.load_model возвращает ошибку).

Есть ли простой способ сохранить упакованный классификатор? Ни pickle, ни dill, ни joblib, ни описанный выше метод, похоже, не работают. Вот несколько примеров кода (мой объект gridsearch называется gscv):

 gscv.best_estimator_.model.save('BestNN.h5')
  

однако, хотя code abode сохраняет файл .h5, загрузка возвращает ошибку

 from keras.models import load_model
load_model('BestNN.h5')
  

Файл
«C:ProgramDataAnaconda3envsCondaPython37libsite-packageskerasutilsgeneric_utils.py «,
строка 140 в deserialize_keras_object
‘: ‘ имя_класса)

Ошибка значения: неизвестен инициализатор: GlorotUniform

Комментарии:

1. Загружаете ли вы модель на машине (или в среде), отличной от той, на которой вы ее сохранили?

2. Нет, я загружаю модель в точно такой же среде.