Keras【Deep Learning With Python】更优模型探索Keras实现RNN
文章目录
- RNN简介
- 1.RNN的应用
- 2.什么是RNN?
- 3.RNN用来做什么?
- 4. 训练RNNs
- Keras代码实现(Mnist)
RNN简介
1.RNN的应用
RNN主要有两个应用,一是评测一个句子出现的可能性,二是文本自动生成。\
2.什么是RNN?
RNN之所以叫RNN是因为它循环处理相同的任务,就是预测句子接下来的单词是什么。RNN认为在这循环的任务中,各个步骤之间不是独立,于是它循环记录前面所有文本的信息(也叫记忆),作为预测当前词的一个输入。
在RNN中,每个词作为一层,对其进行预测。
F函数一般是tanh或者ReLU
是在t时刻词典中所有词出现的概率,也就是||=|vocabulary|
并且所有层共享U和W
3.RNN用来做什么?
RNNs在NLP中得到了巨大的成功,LSTM是被广泛使用的RNN。LSTM与典型的RNN基本框架一致,只是使用了同的方式来计算隐藏状态。
3.1语言模型和文本生成
语言模型中,输入时经过编码的词向量序列,输出是一系列预测的词。在训练模型的时候,令 ,也就是让输出等于下一时刻真实的输入,因为在文本生成中,这一时刻的输出对应的是下一时刻的输入。
3.2机器翻译机器翻译与语言模型的不同是,机器翻译必须等待所有输入结束后才输出,因为这个时候才能得到翻译句子的所有信息。
3.3语音识别。
输入一系列的声波信息,然后预测一段语音。3.4生成图像描述RNNs和 CNN一起,可以用来为未标记的图像生成描述。
4. 训练RNNs
训练RNN和训练传统的神经网络一样,都是使用反向传播算法,但是又有些不同,这里所有步骤都共享同一个参数,每一个步骤的回归输出不仅仅依赖于当前时刻,还依赖前面时刻的步骤,这就叫BPTT算法(时间反向传播)。
Keras代码实现(Mnist)
import numpy as np
from keras.datasets import mnist
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers import Dense
from keras.layers.recurrent import SimpleRNN
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)
x_train = x_train/255.0
x_test = x_test/255.0
# 换one hot格式
y_train = np_utils.to_categorical(y_train,num_classes=10)
y_test = np_utils.to_categorical(y_test,num_classes=10)#one hot# 创建模型
model = Sequential()# 循环神经网络
model.add(SimpleRNN(units = cell_size, # 输出input_shape = (time_steps,input_size), #输入
))# 输出层
model.add(Dense(10,activation='softmax'))# 定义优化器
adam = Adam(lr=1e-4)# 定义优化器,loss function,训练过程中计算准确率
model.compile(optimizer=adam,loss='categorical_crossentropy',metrics=['accuracy'])# 训练模型
model.fit(x_train,y_train,batch_size=64,epochs=10)# 评估模型
loss,accuracy = model.evaluate(x_test,y_test)print('test loss',loss)
print('test accuracy',accuracy)
Keras【Deep Learning With Python】更优模型探索Keras实现RNN相关推荐
- Keras【Deep Learning With Python】更优模型探索Keras实现CNN
文章目录 CNN 1.CNN介绍 2.CNN基本原理 代码实现 手写数字复杂网络层抽特征可视化工具http://scs.ryerson.ca/~aharley/vis/conv/ CNN 1.CNN介 ...
- Keras【Deep Learning With Python】更优模型探索Keras实现LSTM
文章目录 1.LSTM 网络 2.之前也提到过RNNs取得了不错的成绩,这些成绩很多是基于LSTMs来做的,说明LSTMs适用于大部分的序列场景应用. 3.代码实现 1.LSTM 网络 可以理解为RN ...
- Keras Tutorial: Deep Learning in Python
This Keras tutorial introduces you to deep learning in Python: learn to preprocess your data, model, ...
- Deep learning with Python 学习笔记(9)
神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练,有点类似于扔一架纸飞机,一开始给它一点推 ...
- python思想读后感_《Deep Learning with Python》读后感精选
<Deep Learning with Python>是一本由Francois Chollet著作,Manning Publications出版的Paperback图书,本书定价:USD ...
- Deep learning with Python 学习笔记(6)
本节介绍循环神经网络及其优化 循环神经网络(RNN,recurrent neural network)处理序列的方式是,遍历所有序列元素,并保存一个状态(state),其中包含与已查看内容相关的信息. ...
- Python深度学习:基于PyTorch [Deep Learning with Python and PyTorch]
作者:吴茂贵,郁明敏,杨本法,李涛,张粤磊 著 出版社:机械工业出版社 品牌:机工出版 出版时间:2019-11-01 Python深度学习:基于PyTorch [Deep Learning with ...
- Deep Learning with Python
1.学习地址 Deep Learning with Python(wang@123) 2.大神的twitter 大神的twitter
- Keras【Deep Learning With Python】—Keras基础
文章目录 1.关于Keras 2.Keras的模块结构 3.使用Keras搭建一个神经网络 4. 主要概念 5.第一个示例 下载网站数据注意 1.关于Keras 1)简介 Keras是由纯python ...
最新文章
- 定制SPS实战记录 系列之一
- Java程序员从阿里、京东、美团面试回来,这些面试题你会吗?
- 重庆三峡学院计算机应用技术,重庆三峡学院 数学与计算机学院 刘福明老师简介 联系方式 手机电话 邮箱...
- mybatis出现 Parameter '__frch_excelModel_0' not found.
- C++大学教程(第九版)2016-07 保罗·戴特尔 (Paul Deitel)、 哈维·戴特尔 (Harvey Deitel)_cafbe(C++中文版)
- 软件容量测试和压力测试区别,性能测试、负载测试、压力测试、容量测试的区别...
- Java Web学习(三)数据加密方式详解
- echarts多次使用SetOption时的数据问题
- python数字雨代码_电影黑客帝国中代码雨如何实现?简单!用 Python 就能实现!...
- 图片秒加水印制作生成微信小程序源码下载免服务器域名
- 利用STM32CubeMX软件生成USB_DEVICE_SD卡虚拟U盘
- 综合型集团该如何利用数字化转型支撑磅礴多元的服务?
- 医院PACS系统之安装(win10)
- VScode安装及个性化插件设置
- Greenplum6 JDBC insert性能媲美MySQL
- Mysql单表查询和多表查询
- 学习 Go 语言 0x09:《Go 语言之旅》中练习使用 Reader
- gb28181简单实现sip信令服务器(java版基于springboot):四、sip摄像头心跳保活、推流(tcp/udp)和结束推流
- 拦截器Interceptor
- jsp的代码格式的基础知识
热门文章
- cannot import name 'ImageRecordInt8Iter'
- python 列表转字典
- 卷积神经网络的“封神之路
- Trie树详解及其应用
- SIFT,SURF,ORB,FAST 特征提取算法比较
- AjaxPro2在Asp.net中的基本用法
- ios视频硬解异常总结,12911总结
- 二、LDAP服务端搭建及客户端测试【完】
- git bash打印当前文件结构_6 个方便的 Git 脚本
- win7更新错误0x800b0109_win10 5月版严重翻车,更新频出10多个bug,看完你还敢升级吗?...