学习前言
开始做项目的话,有些时候会用到别人训练好的模型,这个时候要学会load噢。
Keras中保存与读取的重要函数
1、model.save
model.save用于保存模型,在保存模型前,首先要利用pip install安装h5py的模块,这个模块在Keras的模型保存与读取中常常被使用,用于定义保存格式。
1
|
pip install h5py |
完成安装后,可以通过如下函数保存模型。
1
|
model.save( "./model.hdf5" ) |
其中,model是已经训练完成的模型,save函数传入的参数就是保存后的位置+名字。
2、load_model
load_model用于载入模型。
具体使用方式如下:
1
|
model = load_model( "./model.hdf5" ) |
其中,load_model函数传入的参数就是已经完成保存的模型的位置+名字。./表示保存在当前目录。
全部代码
这是一个简单的手写体识别例子,在之前也讲解过如何构建
python神经网络学习使用Keras进行简单分类,在最后我添加上了模型的保存与读取函数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
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_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需要对分类结果进行categorical # 即需要将标签转化为形如(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 ) # 构建模型 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" ) # 删除现有模型 del model print ( "model had been del" ) # 再次载入模型 model = load_model( "./model.hdf5" ) # 预测 cost,accuracy = model.evaluate(X_test,Y_test) print ( "accuracy:" ,accuracy) |
实验结果为:
1
2
3
4
5
6
7
8
9
10
|
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神经网络使用Keras进行模型的保存与读取的详细内容,更多关于Keras模型保存读取的资料请关注服务器之家其它相关文章!
原文链接:https://blog.csdn.net/weixin_44791964/article/details/101613118