(六) 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文件中,该文件将包含: 模型的结构,以便重构该 ...
随机推荐
- TensorFlow从1到2(四)时尚单品识别和保存、恢复训练数据
Fashion Mnist --- 一个图片识别的延伸案例 在TensorFlow官方新的教程中,第一个例子使用了由MNIST延伸而来的新程序. 这个程序使用一组时尚单品的图片对模型进行训练,比如T恤 ...
- openJDK知识整理及概念
上周同事去听了阿里openJDK的讲座,收集整理了一下.随着Oracle 撒手,Java 8 官方支持时间持续到 2020 年 12 月:对商业用户(Commercial Users),2019 年 ...
- 用C语言做一个横板过关类型的控制台游戏
前言:本教程是写给刚学会C语言基本语法不久的新生们. 因为在学习C语言途中,往往只能写控制台代码,而还能没接触到图形,也就基本碰不到游戏开发. 所以本教程希望可以给仍在学习C语言的新生们能提前感受到游 ...
- 结合JDK源码看设计模式——装饰者模式
定义 在不改变原有对象的基础之上,将功能附加到对象上 适用场景 扩展一个类的功能 动态的给对象增加功能,当功能不需要的时候能够动态删除 详解 在看到定义的时候,可能很多人会想,这不就是继承吗?的确很像 ...
- C# 23种设计模式
目录 0).简单工厂模式 1).工厂方法模式 2).抽象工厂模式 3).单例模式 4).构建者模式 5).原型模式 6).适配器模式 7).修饰者模式 8).代理模式 9).外观模式 10).桥接模式 ...
- js初级入门
javascript的数据类型 (symbol)一.原始数据类型 或 基本数据类型 6种 1,undefined (1,申明未赋值,2,函数没有返回值)2,null (空,不存在)3,number ( ...
- 在ArcMap中发布FeatureLayer(要素图层)
FeatureLayer(要素图层)是ArcGIS Server发布的一种很重要的地图服务,发布后使用提供的url地址就可以在代码中调用并在地图上显示.编辑这个FeatureLayer.在HTML页面 ...
- UiPath实践经验总结(一)
用UiPath做RPA也有一段时间了,初上阵不久,遇到过不少大大小小的坑.以下列出一些心得体会,望能抛砖引玉,与同行进行更多交流. 1. 日志策略:将UiPath Robot的Logging Leve ...
- RationalRose 安装过程中无法加载镜像的问题
前情提要:本文主要以提供关键问题的解决思路为目的,境况紧急的,在核对好所遇问题与博主是否一致后,可以直接跳到最后看解决办法即可. 另外,本文重要部分采用不同色文字,加以强调. 任务:安装Rationa ...
- ubuntu安装rpm的方法
Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb. sudo apt-get install alien #alien默认没有安装,所以首先要安装它 su ...