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])) #用加載的模型預測