(六) 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文件中,该文件将包含: 模型的结构,以便重构该 ...
随机推荐
- 带着新人看java虚拟机06(多线程篇)
其实多线程还有很多的东西要说,我们慢慢来,可能会有一些东西没说到,那就没办法了,只能说尽量吧! 1.synchronized关键字 说到多线程肯定离不开这个关键字,为什么呢?因为多线程之间虽然有各自的 ...
- 01 Java jdk环境配置
1.1 书籍(B) [1] java核心技术 [2] 实战java 1.2 网址(B) oracle.com http://www.ibm.com/developerWorks/cn/ https:/ ...
- 改造断路器集群监控Hystrix Turbine实现自动注册消费者、实时监控多个服务
在上一篇文章中,我们搭建了Hystrix Dashoard,对指定接口进行监控.但是只能对一个接口进行监听,功能比较局限: Turbine:汇总系统内多个服务的数据并显示到 Hystrix Dashb ...
- rsync命令详解、rsync用ssh隧道方式同步
● rsync格式安装命令 yum install -y rsync与scp的区别:scp复制为完全覆盖,rsync为增量同步,只同步修改过的数据.rsync命令格式如下: rsync 选项 源文件 ...
- 2017-12-24 手机编程环境初尝试-用AIDE开发Android应用
前不久才接触到纯粹用手机进行编程的开发者, 当时颇有孤陋寡闻之感, 因为之前听说过手机编程还是一些在线编程学习网站开发的学习环境, 没有想过真的有用它做实际开发的. 此文用AIDE免费版在自己的手机上 ...
- Variable SQLLOGDIR not found
昨天在一数据库(SQL Server 2008 R2 SP3)上部署了一个作业,今天早上收到告警邮件,作业执行报错"Unable to start execution of step 1 ( ...
- Golang随机数生成
需求:10以内随机生成2个幸运数字 package main import ( "fmt" "math/rand" ) func main() { fmt.Pr ...
- LOJ #6052. 「雅礼集训 2017 Day11」DIV
完了我是数学姿势越来越弱了,感觉这种CXRdalao秒掉的题我都要做好久 一些前置推导 首先我们很容易得出\((a+bi)(c+di)=k \Leftrightarrow ac-bd=k,ad+bc= ...
- Linux vi/vim编辑器常用命令与用法总结
(一)vi/vim是什么?Linux世界几乎所有的配置文件都是以纯文本形式存在的,而在所有的Linux发行版系统上都有vi编辑器,因此利用简单的文字编辑软件就能够轻松地修改系统的各种配置了,非常方便. ...
- 【源码学习】redux-thunk
阅读 redux 源码之后,想要加深一下对中间件的理解,于是选择 redux-thunk(2.3.0)这个源码只有十几行的中间件. 之前 redux 的学习笔记 https://www.cnblogs ...