Модель Keras сохранена. Почему этого ещё мало для продолжения обучения
Архив .keras, отдельные веса и экспорт для инференса решают разные задачи. Разбираем, что восстановится после загрузки и какую проверку провести в новом процессе.
В Keras три похожих действия сохраняют разный результат: целую модель — вместе с состоянием оптимизатора, если оно есть; отдельно веса — параметры сети; экспорт — артефакт для выполнения предсказаний. Выбор формата определяет, что получится восстановить завтра.
Что известно
Условный пример: вы обучили классификатор обращений и хотите продолжить эксперимент после перезапуска ноутбука. Сохранённая архитектура сама по себе не содержит обученных весов. Файл весов тоже не следует считать полной копией обучающего процесса: для его загрузки нужна совместимая архитектура.
Для восстановления модели используйте архив .keras. Он сохраняет конфигурацию, веса и доступное состояние оптимизатора. Если исходная модель была скомпилирована, стандартная загрузка с compile=True восстанавливает скомпилированную модель. Это подходящий первый выбор для продолжения такого эксперимента.
model.save("checkpoint.keras")
restored = keras.saving.load_model("checkpoint.keras")Эти две строки предполагают, что model уже создана и обучена, а Keras импортирован. Это рабочий маршрут из документации, не отчёт о проведённом нами обучении. Для проверки загрузите файл в новом процессе и сравните предсказания исходной и восстановленной моделей на одном сохранённом небольшом наборе входов.
Что это меняет
Если задача — перенос параметров в сеть с совместимой структурой, пригодится save_weights и load_weights. Обычный файл имеет окончание .weights.h5. Не включайте skip_mismatch=True только ради исчезновения ошибки: несовместимые слои тогда пропускаются. Такая загрузка уже требует отдельной проверки того, какие параметры перенесены.
Для сервиса предсказаний предусмотрен model.export(). Например, экспорт TensorFlow SavedModel создаёт артефакт, который в другом процессе загружается через tf.saved_model.load и вызывается через serve. Такой способ доставки модели не следует выбирать вместо контрольной копии для продолжения эксперимента.
Что ещё проверить
Пользовательские слои и функции требуют отдельного внимания. Архив не упаковывает их Python-код автоматически: определения должны быть доступны при восстановлении через регистрацию или custom_objects. Поэтому успешное сохранение в работающем ноутбуке ещё не доказывает, что файл откроется в чистом окружении.
Вместе с контрольной копией запишите версию Keras, backend и идентификатор данных. Это практическая рекомендация для воспроизводимости: состояние модели не заменяет порядок чтения примеров, внешнюю предобработку и все настройки запуска. Совпадение предсказаний проверяет перенос модели, но само по себе не доказывает побитовое совпадение будущего обучения.
Критерий выбора простой: для продолжения эксперимента начните с .keras и проверки в новом процессе; для переноса параметров используйте веса; для приложения выбирайте экспорт под нужную среду. Считайте сохранение завершённым после успешного восстановления нужного сценария, а не после появления файла.
Комментарии
Войдите, чтобы оставить комментарий
Пока нет комментариев. Начните обсуждение.