在Keras中,有时候需要对模型进行序列化与反序列化。进行模型序列化时,会将模型结果与模型权重保存在不同的文件中,模型权重通常保存在HDF5文件中,模型的结构可以保存在JSON或者YAML文件中。后二者方法大同小异,这里以JSON为例说明一下Keras模型的保存与加载。
from sklearn import datasets
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.utils import to_categorical
from keras.models import model_from_json
#导入数据
dataset = datasets.load_iris()
x = dataset.data
Y = dataset.target
#将标签数据转换为分类编码
Y_labels = to_categorical(Y, num_classes=3)
#设定随机种子
seed = 7
np.random.seed(seed)
#构建模型函数
def create_model(optimizer = 'rmsprop', init = 'glorot_uniform'):
#构建模型
model = Sequential()
model.add(Dense(units=4, activation='relu', input_dim=4, kernel_initializer=init))
model.add(Dense(units=6, activation='relu', kernel_initializer=init))
model.add(Dense(units=3, activa