视频学习来源

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简单应用的更多相关文章

  1. Sklearn,TensorFlow,keras模型保存与读取

    一.sklearn模型保存与读取 1.保存 from sklearn.externals import joblib from sklearn import svm X = [[0, 0], [1, ...

  2. keras模型保存和权重保存

    模型保存和读取(包括权重): model.save('./model.h5') from keras import models model = models.load_model(./model.h ...

  3. TensorFlow进阶(六)---模型保存与恢复、自定义命令行参数

    模型保存与恢复.自定义命令行参数. 在我们训练或者测试过程中,总会遇到需要保存训练完成的模型,然后从中恢复继续我们的测试或者其它使用.模型的保存和恢复也是通过tf.train.Saver类去实现,它主 ...

  4. keras中的模型保存和加载

    tensorflow中的模型常常是protobuf格式,这种格式既可以是二进制也可以是文本.keras模型保存和加载与tensorflow不同,keras中的模型保存和加载往往是保存成hdf5格式. ...

  5. Tensorflow模型加载与保存、Tensorboard简单使用

    先上代码: from __future__ import absolute_import from __future__ import division from __future__ import ...

  6. 保存及读取keras模型参数

    转自:http://blog.csdn.net/u010159842/article/details/54407745,感谢分享~ 你可以使用model.save(filepath)将Keras模型和 ...

  7. Keras模型的保存方式

    Keras模型的保存方式 在运行并且训练出一个模型后获得了模型的结构与许多参数,为了防止再次训练以及需要更好地去使用,我们需要保存当前状态 基本保存方式 h5 # 此处假设model为一个已经训练好的 ...

  8. Keras入门(六)模型训练实时可视化

      在北京做某个项目的时候,客户要求能够对数据进行训练.预测,同时能导出模型,还有在页面上显示训练的进度.前面的几个要求都不难实现,但在页面上显示训练进度当时笔者并没有实现.   本文将会分享如何在K ...

  9. 如何保存Keras模型

    我们不推荐使用pickle或cPickle来保存Keras模型 你可以使用model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含: 模型的结构,以便重构该 ...

随机推荐

  1. 『发呆』.Net 2.0 ~ .Net 4.0 所实现了那些底层

    随着时间的推移,程序越写越大,代码越写越少. 今天突然发呆,就想比较全面的汇总一下 .Net 2.0 和 .Net 4.0 都实现的功能. .Net 2.0 的大部分常见程序集 (已经过滤掉了一部分和 ...

  2. windows,分割路径.得出目录

    #include <windows.h> #include <vector> #include <stdio.h> #include <string> ...

  3. Docker最全教程之使用 Visual Studio Code玩转Docker(二十)

    前言 VS Code是一个年轻的编辑器,但是确实是非常犀利.通过本篇,老司机带你使用VS Code玩转Docker——相信阅读本篇之后,无论是初学者还是老手,都可以非常方便的玩转Docker了!所谓是 ...

  4. Vue源码解析(二):数据驱动

    一.数据驱动: 数据驱动是vue.js最大的特点.在vue.js中,数据驱动就是当数据发生变化的时候,用户界面发生相应的变化,开发者不需要手动的去修改dom.数据驱动还有一部分是数据更新驱动视图变化. ...

  5. cmd 配置dchp服务器

    1.安装DHCP服务器角色,这样在netsh下才会有dhcp上下文 2.编写配置dhcp的脚本 从命令行运行netsh有两种语法: 比如要获取已经配置的网络接口列表 1.写全 netsh -r Rem ...

  6. Ambari自定义Service

    一.Ambari基本架构   img016.jpg Ambari Server 会读取 Stack 和 Service 的配置文件.当用 Ambari 创建服务的时候,Ambari Server 传送 ...

  7. 网络流 P3358 最长k可重区间集问题

    P3358 最长k可重区间集问题 题目描述 对于给定的开区间集合 I 和正整数 k,计算开区间集合 I 的最长 k可重区间集的长度. 输入输出格式 输入格式: 的第 1 行有 2 个正整数 n和 k, ...

  8. CTF比赛 十一月场 Look 复现

    拿到题吧,一般的我的操作就是,先看看审核元素有有没有什么东西,然后去御剑扫描,git泄露,备份文件泄露,不行就再去burp抓包看看头部,换方法(post换成get) 发现不明的头部,这种头部的话可能是 ...

  9. .Net Core 爬坑日记

    安装[DotNetCore.1.0.1-VS2015Tools.Preview2.0.3.exe]失败 查看log发现,发现猫腻,然后copy下链接,用迅雷手动下载[AspNetCoreLocalFe ...

  10. 【安富莱STM32H7教程】第1章 初学STM32H7的准备工作

    完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第1章   初学STM32H7的准备工作 俗话说万事开头 ...