(六) Keras 模型保存和RNN简单应用
视频学习来源
https://www.bilibili.com/video/av40787141?from=search&seid=17003307842787199553
笔记
RNN用于图像识别并不是很好
模型保存(结构和参数)
1 需要安装h5py
pip install h5py
2在代码最后一行
model.save(‘model.h5’)
即可在当前目录保存HDF5文件
模型载入
1开头导入包
from keras.models import load_model
2导入模型
model=load_model(‘model.h5’)
模型载入后可接着训练
model.fit(x_train,y_train,batch_size=64,epochs=2)
只保存参数
model.save_weights(‘weights.h5’)
model.load _weights(‘weights.h5’)
只保存网络结构
from keras.models import model_from_json
json_string=model.to_json()
model=model_from_json(json_string)
import numpy as np
from keras.datasets import mnist #将会从网络下载mnist数据集
from keras.utils import np_utils
from keras.models import Sequential #序列模型
from keras.layers import Dense
from keras.layers.recurrent import SimpleRNN #keras中三种RNN SimpleRNN,LSTM,GRU
from keras.optimizers import Adam
# 数据长度,一行有28个像素
input_size=28
# 序列长度,一共有28行
time_steps=28
# 隐藏层cell个数
cell_size=50 #载入数据
(x_train,y_train),(x_test,y_test)=mnist.load_data()
#查看格式
#(60000,28,28)
print('x_shape:',x_train.shape)
#(60000)
print('y_shape:',y_train.shape) #格式是(60000,28,28)
#格式是样本数,time_steps(序列长度),input_size(每一个序列的数据长度)
#如果数据是(60000,784)需要转成(60000,28,28)
#除以255是做数据归一化处理
x_train=x_train/255.0 #转换数据格式
x_test=x_test/255.0 #转换数据格式
#label标签转换成 one hot 形式
y_train=np_utils.to_categorical(y_train,num_classes=10) #分成10类
y_test=np_utils.to_categorical(y_test,num_classes=10) #分成10类 #定义序列模型
model=Sequential() #循环神经网络
#一个隐藏层
model.add(SimpleRNN(
units=cell_size, #输出
input_shape=(time_steps,input_size), #输入
)) #输出层
model.add(Dense(10,activation='softmax')) #定义优化器
#学习速率为10的负4次方
adam=Adam(lr=1e-4) #定义优化器,损失函数,训练效果中计算准确率
model.compile(
optimizer=adam, #sgd优化器
loss='categorical_crossentropy', #损失用交叉熵,速度会更快
metrics=['accuracy'], #计算准确率
) #训练
#六万张,每次训练64张,训练10个周期(六万张全部训练完算一个周期)
model.fit(x_train,y_train,batch_size=64,epochs=10) #评估模型
loss,accuracy=model.evaluate(x_test,y_test) print('\ntest loss',loss)
print('\ntest accuracy',accuracy) loss,accuracy=model.evaluate(x_train,y_train) print('\ntrain loss',loss)
print('\ntrain accuracy',accuracy)
x_shape: (60000, 28, 28)
y_shape: (60000,)
Epoch 1/10
60000/60000 [==============================] - 9s 145us/step - loss: 1.6191 - acc: 0.4629
Epoch 2/10
60000/60000 [==============================] - 9s 156us/step - loss: 0.9580 - acc: 0.7103
Epoch 3/10
60000/60000 [==============================] - 6s 101us/step - loss: 0.7064 - acc: 0.7934
Epoch 4/10
60000/60000 [==============================] - 8s 141us/step - loss: 0.5749 - acc: 0.8344
Epoch 5/10
60000/60000 [==============================] - 8s 128us/step - loss: 0.4999 - acc: 0.8550
Epoch 6/10
60000/60000 [==============================] - 6s 102us/step - loss: 0.4503 - acc: 0.8689
Epoch 7/10
60000/60000 [==============================] - 6s 99us/step - loss: 0.4130 - acc: 0.8808
Epoch 8/10
60000/60000 [==============================] - 6s 95us/step - loss: 0.3838 - acc: 0.8891
Epoch 9/10
60000/60000 [==============================] - 6s 96us/step - loss: 0.3597 - acc: 0.8969
Epoch 10/10
60000/60000 [==============================] - 6s 96us/step - loss: 0.3408 - acc: 0.9020
10000/10000 [==============================] - 1s 73us/step test loss 0.3126664091944695 test accuracy 0.91
60000/60000 [==============================] - 4s 67us/step train loss 0.326995205249389 train accuracy 0.9060166666666667
(六) Keras 模型保存和RNN简单应用的更多相关文章
- Sklearn,TensorFlow,keras模型保存与读取
一.sklearn模型保存与读取 1.保存 from sklearn.externals import joblib from sklearn import svm X = [[0, 0], [1, ...
- keras模型保存和权重保存
模型保存和读取(包括权重): model.save('./model.h5') from keras import models model = models.load_model(./model.h ...
- TensorFlow进阶(六)---模型保存与恢复、自定义命令行参数
模型保存与恢复.自定义命令行参数. 在我们训练或者测试过程中,总会遇到需要保存训练完成的模型,然后从中恢复继续我们的测试或者其它使用.模型的保存和恢复也是通过tf.train.Saver类去实现,它主 ...
- keras中的模型保存和加载
tensorflow中的模型常常是protobuf格式,这种格式既可以是二进制也可以是文本.keras模型保存和加载与tensorflow不同,keras中的模型保存和加载往往是保存成hdf5格式. ...
- Tensorflow模型加载与保存、Tensorboard简单使用
先上代码: from __future__ import absolute_import from __future__ import division from __future__ import ...
- 保存及读取keras模型参数
转自:http://blog.csdn.net/u010159842/article/details/54407745,感谢分享~ 你可以使用model.save(filepath)将Keras模型和 ...
- Keras模型的保存方式
Keras模型的保存方式 在运行并且训练出一个模型后获得了模型的结构与许多参数,为了防止再次训练以及需要更好地去使用,我们需要保存当前状态 基本保存方式 h5 # 此处假设model为一个已经训练好的 ...
- Keras入门(六)模型训练实时可视化
在北京做某个项目的时候,客户要求能够对数据进行训练.预测,同时能导出模型,还有在页面上显示训练的进度.前面的几个要求都不难实现,但在页面上显示训练进度当时笔者并没有实现. 本文将会分享如何在K ...
- 如何保存Keras模型
我们不推荐使用pickle或cPickle来保存Keras模型 你可以使用model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含: 模型的结构,以便重构该 ...
随机推荐
- 【Python3爬虫】常见反爬虫措施及解决办法(二)
这一篇博客,还是接着说那些常见的反爬虫措施以及我们的解决办法.同样的,如果对你有帮助的话,麻烦点一下推荐啦. 一.防盗链 这次我遇到的防盗链,除了前面说的Referer防盗链,还有Cookie防盗链和 ...
- .Net小白离开校园的第一年
Why? 2018的已经步入尾声,对新的一年又是充满期待. 在这年底里,看到园子里有很多园友写了博客回顾自己的2018,本人自知文笔和各位前辈比不了,但是我也想来写一写,这是我特殊的第一年,记录下来, ...
- Python:游戏:300行代码实现俄罗斯方块
本文代码基于 python3.6 和 pygame1.9.4. 俄罗斯方块是儿时最经典的游戏之一,刚开始接触 pygame 的时候就想写一个俄罗斯方块.但是想到旋转,停靠,消除等操作,感觉好像很难啊, ...
- ASP .NET SignalR起步
在网站开发中,时常需要使用消息推送功能,http协议是无状态连接,我们需要一个类似桌面程序中socket保持服务器和客户端连接的技术.signalr就是这样一个技术,他能保持网站页面和服务器的一个长连 ...
- 一、Activity的生命周期和启动模式
1.Activity的生命周期 1.1.典型情况下的生命周期 在有用户参与的情况下,Activity所经过的生命周期的改变. Activity会经历如下生命周期: onCreate-onRestart ...
- gitbook 入门教程之前置知识
markdown 基本知识 markdown 是一种简化的 html 语法,相比于 txt 无格式文本更强大. 你可以用专门的软件去编辑 markdown 文件,就像需要使用软件编辑 txt 文件一样 ...
- .NET Core 3.0-preview3 发布
.NET Core 3.0 Preview 3已经发布,框架和ASP.NET Core有许多有趣的更新.这是最重要的更新列表. 下载地址 :https://aka.ms/netcore3downloa ...
- Service Fabric 与 Ocelot 集成
概要 云应用程序通常都需要使用前端网关,为用户.设备或其他应用程序提供同一个入口点. 在 Service Fabric 中,网关可以是任意无状态服务(如 ASP.NET Core 应用程序) . 本文 ...
- 以Windows服务方式运行.NET Core程序
在之前一篇博客<以Windows服务方式运行ASP.NET Core程序>中我讲述了如何把ASP.NET Core程序作为Windows服务运行的方法,而今,我们又遇到了新的问题,那就是: ...
- .NET之微信消息模板推送
最近在项目中使用到了微信消息模板推送的功能,也就是将对应的消息推送到对应的用户微信上去,前提是你必须要有一个微信公众号并且是付费了的才会有这个功能,还有就是要推送的用户必须是的关注了你的微信公众号的. ...