1.前言
今天讲解如何保存神经网络,这样以后想要用的时候直接提取就可以。
2.保存和提取模型
2.1.导入必要模块
import numpy as np
from keras.models import Sequential #搭建模型模块
from keras.layers import Dense #全连接
from keras.models import load_model #加载模型模块
2.2.构造数据
np.random.seed(42)
X = np.linspace(-1,1,50)
np.random.shuffle(X)
Y = -2*X + 4 + np.random.normal(0,0.05,(50,))
X_train, Y_train = X[:35],Y[:35]
X_test, Y_test = X[35:], Y[35:]
2.3.搭建模型并训练
model = Sequential()
model.add(Dense(output_dim=1,input_dim=1)) #输入1维,输出1维
model.compile(loss='mse',optimizer='sgd') #编译模型
for step in range(301):
cost = model.train_on_batch(X_train,Y_train) #训练
2.4.保存模型
训练完模型之后,可以打印一下预测的结果,接下来就保存模型。
保存的时候只需要一行代码 model.save,再给它加一个名字就可以用 h5 的格式保存起来。
这里注意,需要已经安装了 HDF5 这个模块。
保存完模型之后,删掉它,后面可以来比较是否成功的保存。
print('test before save:',model.predict(X_test[0:2])) #预测
model.save('my_model.h5') #保存模型
del model #删除模型
导入保存好的模型,再执行一遍预测,与之前预测的结果比较,可以发现结果是一样的。
model = load_model('my_model.h5') #加载模型
print('test after load:',model.predict(X_test[0:2])) #用加载的模型预测