文章目录

  • 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相关推荐

  1. Keras【Deep Learning With Python】更优模型探索Keras实现CNN

    文章目录 CNN 1.CNN介绍 2.CNN基本原理 代码实现 手写数字复杂网络层抽特征可视化工具http://scs.ryerson.ca/~aharley/vis/conv/ CNN 1.CNN介 ...

  2. Keras【Deep Learning With Python】更优模型探索Keras实现LSTM

    文章目录 1.LSTM 网络 2.之前也提到过RNNs取得了不错的成绩,这些成绩很多是基于LSTMs来做的,说明LSTMs适用于大部分的序列场景应用. 3.代码实现 1.LSTM 网络 可以理解为RN ...

  3. Keras Tutorial: Deep Learning in Python

    This Keras tutorial introduces you to deep learning in Python: learn to preprocess your data, model, ...

  4. Deep learning with Python 学习笔记(9)

    神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练,有点类似于扔一架纸飞机,一开始给它一点推 ...

  5. python思想读后感_《Deep Learning with Python》读后感精选

    <Deep Learning with Python>是一本由Francois Chollet著作,Manning Publications出版的Paperback图书,本书定价:USD ...

  6. Deep learning with Python 学习笔记(6)

    本节介绍循环神经网络及其优化 循环神经网络(RNN,recurrent neural network)处理序列的方式是,遍历所有序列元素,并保存一个状态(state),其中包含与已查看内容相关的信息. ...

  7. Python深度学习:基于PyTorch [Deep Learning with Python and PyTorch]

    作者:吴茂贵,郁明敏,杨本法,李涛,张粤磊 著 出版社:机械工业出版社 品牌:机工出版 出版时间:2019-11-01 Python深度学习:基于PyTorch [Deep Learning with ...

  8. Deep Learning with Python

    1.学习地址 Deep Learning with Python(wang@123) 2.大神的twitter 大神的twitter

  9. Keras【Deep Learning With Python】—Keras基础

    文章目录 1.关于Keras 2.Keras的模块结构 3.使用Keras搭建一个神经网络 4. 主要概念 5.第一个示例 下载网站数据注意 1.关于Keras 1)简介 Keras是由纯python ...

最新文章

  1. 定制SPS实战记录 系列之一
  2. Java程序员从阿里、京东、美团面试回来,这些面试题你会吗?
  3. 重庆三峡学院计算机应用技术,重庆三峡学院 数学与计算机学院 刘福明老师简介 联系方式 手机电话 邮箱...
  4. mybatis出现 Parameter '__frch_excelModel_0' not found.
  5. C++大学教程(第九版)2016-07 保罗·戴特尔 (Paul Deitel)、 哈维·戴特尔 (Harvey Deitel)_cafbe(C++中文版)
  6. 软件容量测试和压力测试区别,性能测试、负载测试、压力测试、容量测试的区别...
  7. Java Web学习(三)数据加密方式详解
  8. echarts多次使用SetOption时的数据问题
  9. python数字雨代码_电影黑客帝国中代码雨如何实现?简单!用 Python 就能实现!...
  10. 图片秒加水印制作生成微信小程序源码下载免服务器域名
  11. 利用STM32CubeMX软件生成USB_DEVICE_SD卡虚拟U盘
  12. 综合型集团该如何利用数字化转型支撑磅礴多元的服务?
  13. 医院PACS系统之安装(win10)
  14. VScode安装及个性化插件设置
  15. Greenplum6 JDBC insert性能媲美MySQL
  16. Mysql单表查询和多表查询
  17. 学习 Go 语言 0x09:《Go 语言之旅》中练习使用 Reader
  18. gb28181简单实现sip信令服务器(java版基于springboot):四、sip摄像头心跳保活、推流(tcp/udp)和结束推流
  19. 拦截器Interceptor
  20. jsp的代码格式的基础知识

热门文章

  1. cannot import name 'ImageRecordInt8Iter'
  2. python 列表转字典
  3. 卷积神经网络的“封神之路
  4. Trie树详解及其应用
  5. SIFT,SURF,ORB,FAST 特征提取算法比较
  6. AjaxPro2在Asp.net中的基本用法
  7. ios视频硬解异常总结,12911总结
  8. 二、LDAP服务端搭建及客户端测试【完】
  9. git bash打印当前文件结构_6 个方便的 Git 脚本
  10. win7更新错误0x800b0109_win10 5月版严重翻车,更新频出10多个bug,看完你还敢升级吗?...