python神經(jīng)網(wǎng)絡(luò)使用Keras進行模型的保存與讀取
學(xué)習(xí)前言
開始做項目的話,有些時候會用到別人訓(xùn)練好的模型,這個時候要學(xué)會load噢。
Keras中保存與讀取的重要函數(shù)
1、model.save
model.save用于保存模型,在保存模型前,首先要利用pip install安裝h5py的模塊,這個模塊在Keras的模型保存與讀取中常常被使用,用于定義保存格式。
pip install h5py
完成安裝后,可以通過如下函數(shù)保存模型。
model.save("./model.hdf5")
其中,model是已經(jīng)訓(xùn)練完成的模型,save函數(shù)傳入的參數(shù)就是保存后的位置+名字。
2、load_model
load_model用于載入模型。
具體使用方式如下:
model = load_model("./model.hdf5")
其中,load_model函數(shù)傳入的參數(shù)就是已經(jīng)完成保存的模型的位置+名字。./表示保存在當(dāng)前目錄。
全部代碼
這是一個簡單的手寫體識別例子,在之前也講解過如何構(gòu)建
python神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)使用Keras進行簡單分類,在最后我添加上了模型的保存與讀取函數(shù)。
import numpy as np from keras.models import Sequential,load_model,save_model from keras.layers import Dense,Activation ## 全連接層 from keras.datasets import mnist from keras.utils import np_utils from keras.optimizers import RMSprop # 獲取訓(xùn)練集 (X_train,Y_train),(X_test,Y_test) = mnist.load_data() # 首先進行標準化 X_train = X_train.reshape(X_train.shape[0],-1)/255 X_test = X_test.reshape(X_test.shape[0],-1)/255 # 計算categorical_crossentropy需要對分類結(jié)果進行categorical # 即需要將標簽轉(zhuǎn)化為形如(nb_samples, nb_classes)的二值序列 Y_train = np_utils.to_categorical(Y_train,num_classes= 10) Y_test = np_utils.to_categorical(Y_test,num_classes= 10) # 構(gòu)建模型 model = Sequential([ Dense(32,input_dim = 784), Activation("relu"), Dense(10), Activation("softmax") ] ) rmsprop = RMSprop(lr = 0.001,rho = 0.9,epsilon = 1e-08,decay = 0) ## compile model.compile(loss = 'categorical_crossentropy',optimizer = rmsprop,metrics=['accuracy']) print("\ntraining") cost = model.fit(X_train,Y_train,nb_epoch = 2,batch_size = 100) print("\nTest") # 測試 cost,accuracy = model.evaluate(X_test,Y_test) print("accuracy:",accuracy) # 保存模型 model.save("./model.hdf5") # 刪除現(xiàn)有模型 del model print("model had been del") # 再次載入模型 model = load_model("./model.hdf5") # 預(yù)測 cost,accuracy = model.evaluate(X_test,Y_test) print("accuracy:",accuracy)
實驗結(jié)果為:
Epoch 1/2 60000/60000 [==============================] - 6s 104us/step - loss: 0.4217 - acc: 0.8888 Epoch 2/2 60000/60000 [==============================] - 6s 99us/step - loss: 0.2240 - acc: 0.9366 Test 10000/10000 [==============================] - 1s 149us/step accuracy: 0.9419 model had been del 10000/10000 [==============================] - 1s 117us/step accuracy: 0.9419
以上就是python神經(jīng)網(wǎng)絡(luò)使用Keras進行模型的保存與讀取的詳細內(nèi)容,更多關(guān)于Keras模型保存讀取的資料請關(guān)注腳本之家其它相關(guān)文章!
- python神經(jīng)網(wǎng)絡(luò)Keras實現(xiàn)LSTM及其參數(shù)量詳解
- python神經(jīng)網(wǎng)絡(luò)facenet人臉檢測及keras實現(xiàn)
- python神經(jīng)網(wǎng)絡(luò)Keras構(gòu)建CNN網(wǎng)絡(luò)訓(xùn)練
- python神經(jīng)網(wǎng)絡(luò)使用Keras構(gòu)建RNN訓(xùn)練
- python神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)使用Keras進行回歸運算
- python神經(jīng)網(wǎng)絡(luò)Keras實現(xiàn)GRU及其參數(shù)量
相關(guān)文章
Python刪除Java源文件中全部注釋的實現(xiàn)方法
這篇文章主要介紹了Python刪除Java源文件中全部注釋的實現(xiàn)方法,涉及Python讀取文件、正則匹配、字符串查找、替換等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08python實現(xiàn)學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細介紹了python實現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01python把數(shù)組中的數(shù)字每行打印3個并保存在文檔中的方法
今天小編就為大家分享一篇python把數(shù)組中的數(shù)字每行打印3個并保存在文檔中的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07python調(diào)用可執(zhí)行文件.exe的2種實現(xiàn)方法
Python是一種流行的編程語言,可以輕松地通過腳本調(diào)用各種應(yīng)用程序,本文就詳細的介紹了python調(diào)用可執(zhí)行文件.exe的2種實現(xiàn)方法,感興趣的可以了解一下2023-08-08python3.8中關(guān)于sklearn問題(win10)
這篇文章主要介紹了python3.8中關(guān)于sklearn問題(win10),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06Django將默認的SQLite更換為MySQL的實現(xiàn)
今天小編就為大家分享一篇Django將默認的SQLite更換為MySQL的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11PYTHON發(fā)送郵件YAGMAIL的簡單實現(xiàn)解析
這篇文章主要介紹了PYTHON發(fā)送郵件YAGMAIL的簡單實現(xiàn)解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-10-10初學(xué)者學(xué)習(xí)Python好還是Java好
在本篇文章里小編給大家分享的是關(guān)于初學(xué)者學(xué)習(xí)Python好還是Java好的相關(guān)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。2020-05-05