ذخیره مدل یادگیری عمیق در کرس — به زبان ساده
آموزش دادن یک مدل شبکه عصبی/یادگیری عمیق معمولا زمان زیادی میبرد؛ به ویژه هنگامی که ظرفیت سختافزاری سیستم با نیازها تطبیق نداشته باشد. هنگامی که آموزش انجام شد، مدل در یک فایل ذخیره میشد. برای استفاده مجدد از مدل در زمانی دیگر، مدل بارگذاری شده ذخیره میشود. مدل های موجود در کتابخانه «کرس» (Keras) به سه شکل قابل ذخیرهسازی هستند.
فایلهای YAML و JSON تنها ساختار فایل را ذخیره میکنند؛ در حالی که فایل HDF5 مدل شبکه عصبی کامل را همراه با ساختار و وزن ذخیره میکند. بنابراین، اگر ساختار مدل با استفاده از قابل YAML یا JSON ذخیره شود، وزنها باید در یک فایل HDF5 برای ذخیرهسازی کل مدل ذخیره شوند. در ادامه، مجموعه داده قیمتهای خانه بوستون (Boston House Prices Dataset) برای انجام یک مثال مورد استفاده قرار میگیرد. قطعه کد اول، مربوط به بارگذاری مجموعه داده و «پیشپردازش دادهها» (Data Preprocessing) است.
قطعه کد اول: بارگذاری مجموعه داده و پیشپردازش دادهها
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 keras import models
from keras import layers
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)
قطعه کد چهارم: ذخیرهسازی و بارگذاری مجدد مدل در فرمت فایل جیسون
# 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)
منبع [+]
مجموعه: برنامه نویسی, هوش مصنوعی برچسب ها: Deep Learning, Keras, Keras in Python, Keras Library, Neural Networks, آموزش برنامه نویسی, برنامه نویسی پایتون, برنامه نویسی کرس, برنامه نویسی هوش مصنوعی, کتابخانه کرس, کرس, یادگیری عمیق