ML - Сохранение модели глубокого обучения в Керасе

Опубликовано: 21 Июля, 2021

Обучение нейронной сети / модели глубокого обучения обычно занимает много времени, особенно если аппаратная мощность системы не соответствует требованиям. После завершения обучения мы сохраняем модель в файл. Чтобы повторно использовать модель в более поздний момент времени для прогнозирования, мы загружаем сохраненную модель.
Через Keras модели можно сохранять в трех форматах:

  • Формат YAML
  • Формат JSON
  • Формат HDF5

Файлы YAML и JSON хранят только структуру модели, тогда как файл HDF5 хранит полную модель нейронной сети вместе со структурой и весами. Следовательно, если структура модели сохраняется с использованием формата YAML или JSON, веса должны храниться в файле HDF5 для хранения всей модели.
Учитывая набор данных о ценах на жилье в Бостоне:
Код: загрузка набора данных и предварительная обработка данных




import keras
from keras.datasets import boston_housing
(train_data, train_targets), (test_data, test_targets) = boston_housing.load_data()
mean = train_data.mean(axis = 0 )
train_data - = mean
std = train_data.std(axis = 0 )
train_data / = std
test_data - = mean
test_data / = std

Код: обучение модели нейронной сети на нем




from import models keras
from layers import keras
model = models.Sequential()
model.add(layers.Dense( 64 , activation = "relu" , input_shape = (train_data.shape[ 1 ], )))
model.add(layers.Dense( 64 , activation = "relu" ))
model.add(layers.Dense( 1 ))
model. compile (optimizer = "rmsprop" , loss = "mse" , metrics = [ "mae" ])
loss, accuracy = model.evaluate(test_data, test_targets)

Выход:




Код: Сохранение и перезагрузка модели в формате файла HDF5




from keras.models import load_model
model.save( "network.h5" )
loaded_model = load_model( "network.h5" )
loss, accuracy = loaded_model.evaluate(test_data, test_targets)

Выход:

Код: Сохранение и перезагрузка модели в формате файла JSON




# Saving model structure to a JSON file
model_json = model.to_json() # with open("network.json", "w") as json_file:
json_file.write(model_json)
# Saving weights of the model to a HDF5 file
model.save_weights( "network.h5" )
# Loading JSON file
json_file = open ( "network.json" , 'r' )
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
# Loading weights
loaded_model.load_weights( "network.h5" )
loss, accuracy = loaded_model.evaluate(test_data, test_targets)

Код: Сохранение и перезагрузка модели в формате файла YAML




# Saving model structure to a YAML file
model_yaml = model.to_yaml()
with open ( "network.yaml" , "w" ) as yaml_file:
yaml_file.write(model_yaml)
# Saving weights of the model to a HDF5 file
model.save_weights( "network.h5" )
# Loading YAML file
yaml_file = open ( "network.yaml" , 'r' )
loaded_model_yaml = yaml_file.read()
yaml_file.close()
loaded_model = model_from_yaml(loaded_model_yaml)
# Loading weights
loaded_model.load_weights( "network.h5" )
loss, accuracy = loaded_model.evaluate(test_data, test_targets)

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.

Следующий
Сохранение модели машинного обучения
Рекомендуемые статьи
Страница :
Статья предоставлена:
Manmayi
@manmayi
Голосуйте за трудности
Теги статьи:
  • Глубокое обучение
  • Машинное обучение
  • Python
Теги практики:
  • Машинное обучение
Сообщить о проблеме
Python Машинное обучение Глубокое обучение

РЕКОМЕНДУЕМЫЕ СТАТЬИ