Tensorflow中的RNN个人备忘
1、理解RNN的工作流程
2、了解基本的RNN类型
3、料及cell类:
注意:
1静态单向:tf.contrib.rnn.static_rnn结果可直接取output[-1], output.shape->[time,cellnum(rnn提取的特征)],输入input的size需要是list或者是二维的张量,list的顺序就是时间序列。元素就是每一个序列的值(batch单个时间序列的输入元素个数)。如:原始的输入数据是单通道[batch,height,width]形式,将height方向作为时间序列,通过x1 = tf.unstack(input, batch, 1)将输入的input [batch,height(time)),width]装换成time(height)个batchwidth输入数据。(因此在通过卷积网络做特征提取时候后期需要设计使得经过卷积的input的shape可以经过适当的变换输入到RNN中)
2动态单向:tf.contrib.rnn.dynamic_rnn结果先需要transpose,将结果output的格式从[batch,time,cellnum(rnn提取的特征)]变成[time,batch,cellnum(rnn提取的特征)],再用output[-1]取最后一个序列的特征传入后续计算,当然也可以不是output[-1]而是整个儿output(这个根据单幅图像对应的time个序列所含的信息量决定的,每个time含有不同的信息就考虑用所有的output,若每个timed的提取信息目标一致则可以取最后的一个time结果)用完整的output参考FOT中的RNN后续处理方式。输入RNN的input的size需要一般是三维的张量[batch,time,…],…是具体的数据,无论原始的input[batch,height,width,channels1]经过卷积后变成多少个channels2,经过变换后需要变成input [batch,height(time)),width*channels2],以次输入RNN。
上方是单向的(包括单层和多层)
3动态单层双向:tf.nn.bidirectional_dynamic_rnn结果output是一个tuple包含(output_fw,output_bw),每一个张量[batch,time,layersoutput(cellnum)],总的结果需要用tf.concat链接起来后续数据的使用参考2中的建议来,transpose后取output[-1]或者不transpose用其他方式取整个output。输入RNN的input的size需要一般是三维的张量[batch,time,…],…是具体的数据,无论原始的input[batch,height,width,channels1]经过卷积后变成多少个channels2,经过变换后需要变成input [batch,height(time)),width*channels2],以次输入RNN。
4静态单层双向:tf.nn.static_bidirectional_rnn结果output是一个长度为time的list,每个list中是batch*(2cellnum)即无需concat,双向已经链接,后续数据的使用参考2中的建议来。输入RNN的input的size需要一般是三维的张量[batch,time,…],…是具体的数据,无论原始的input[batch,height,width,channels1]经过卷积后变成多少个channels2,经过变换后需要变成input [batch,height(time)),widthchannels2],通过x1 = tf.unstack(input, batch, 1)将输入的input [batch,height(time)),widthchannels2]装换成time(height)个batch(width*channels2)输入数据以输入RNN。(因此在通过卷积网络做特征提取时候后期需要设计使得经过卷积的input的shape可以经过适当的变换输入到RNN中)
5动态多层双向:stack_bidirectional_dynamic_rnn结果output是一个张量[batch,time,layersoutput(cellsnum2)],包含concat之后的正向和反向输出。输入RNN的input的size需要一般是三维的张量[batch,time,…],…是具体的数据,无论原始的input[batch,height,width,channels1]经过卷积后变成多少个channels2,经过变换后需要变成input [batch,height(time)),widthchannels2],以次输入RNN。
6静态多层双向:stack_bidirectional_rnn结果output是一个长度为time的list,每个list中是batch*(2cellnum)即无需concat,双向已经链接,后续数据的使用参考2中的建议来。输入RNN的input的size需要一般是三维的张量[batch,time,…],…是具体的数据,无论原始的input[batch,height,width,channels1]经过卷积后变成多少个channels2,经过变换后需要变成input [batch,height(time)),widthchannels2],以次输入RNN。
Tensorflow中的RNN个人备忘相关推荐
- Java中操作Xml使用备忘
List item 文章目录 Java中操作Xml使用备忘 1. Hutool中XmlUtil的使用简介 2. Hutool中XmlUtil快速读取Xml字符串某个节点值 [简单取值时,推荐使用] 2 ...
- jquery中的ajax方法(备忘)
参考:https://www.cnblogs.com/tylerdonet/p/3520862.html w3school:http://www.w3school.com.cn/jquery/ajax ...
- C++/C中的小知识备忘
C++/C中防止头文件的重复包含的解决办法 为了避免头文件重复包含,有两种方式可以选择,一种是#ifndef方式,由标准支持:一种是#pragma once方式,编译器提供. //方式一 #ifnde ...
- C#中符号的作用备忘
~ 按位求补符: ! 非逻辑运算符: % 求余运算符: ^ 异或位运算符: & 且位运算符: | 或位运算符: * 既可以用作乘法符号,还可以表示为指针: + 表示数学运算符相加: = 用来 ...
- 关于利用死锁定理关于化简资源分配图(RAG)算法中“两不点”备忘
书读百遍其义自见: 假设某个资源分配图中存在一个进程Pi,此刻Pi是非封锁进程(既不阻塞,又不独立),对非封锁进程Pi的化简即删除资源分配图中与Pi连结的所有有向边,使Pi变成孤立结点,重复上述过程直 ...
- SQL中的存储过程中的事务处理。备忘
SET XACT_ABORT on begin tran --开始做事了 commit tran if @@error>0 rollback
- Flex中Tree的用法备忘(增删改查节点)
<?xml version="1.0" encoding="utf-8" ?> <mx:Application xmlns:mx=" ...
- TensorFlow中RNN实现的正确打开方式
上周写的文章<完全图解RNN.RNN变体.Seq2Seq.Attention机制>介绍了一下RNN的几种结构,今天就来聊一聊如何在TensorFlow中实现这些结构,这篇文章的主要内容为: ...
- fib函数用python编写_Python中利用函数装饰器实现备忘功能
"备忘"的定义 "memoization"(备忘)这个词是由Donald Michie在1968年提出的,它基于拉丁语单词"memorandum&qu ...
最新文章
- c/c++中typedef与函数指针
- 用习惯了windows系统要怎样去认识linux系统(一)
- android天气预报实训程序清单,Android天气预报项目
- Hibernate注解方式实现1-1双向关联
- oracle唯一性索引的用法,sql – Oracle:基于函数的索引选择唯一性
- Spring 的下载、安装和使用
- 04-3. 统计素数并求和(20)
- java infinity 处理_Java:如何执行向-Infinity而不是0的整数除法?
- Hive安装超详细教程
- OMNeT 例程 Tictoc16 学习笔记
- JS 案例 改变网页背景颜色
- 【R语言】结巴分词与词性提取(以“提取知乎问题标题的频繁词前100个形容词”实战为例)(3月25日学习笔记)
- 计算机音乐谱生曰快乐,原神乐谱(琴谱)生日快乐
- SEO搜索引擎优化总结
- 2、ehcache与springBoot整合
- 依锥彻怕燎方跃涣牧叵邻牟辟岗俅
- XILINX_zynq_详解(2)
- Java毕设项目师生健康信息管理系统(java+VUE+Mybatis+Maven+Mysql)
- python如何同时运行两个函数_关于python:使2个函数同时运行
- DA, DH, MDA, MDH,MSA到底是什么
热门文章
- caas k8s主控节点如何查询_k8s中部署prometheus监控告警系统prometheus系列文章第一篇...
- 基于FPGA实现uart串口模块(Verilog)--------发送模块及整合
- C# Webservice
- oracle lpad 字符集,oracle Lpad()函数和Rpad()函数的用法
- 【APP】取代top工具的Linux运维利器--htop
- 服务器tomcat优化知识复习总结
- 双机热备份VRRP当接入方式为PPPOE拨号的图文教程
- 我的教师生涯4:被忘却的第一节课
- android源码编译出错的原因
- java io类型_Java NIO之Java中的IO分类