tensorflow中rnn内cell的添加操作
来源:互联网 发布:网络工程学什么 编辑:程序博客网 时间:2024/06/06 17:30
操作版本python 3.5 ,tensorflow version =1.1,本操作1.2也是可以的,但是1.0及其以下是有error的,如果是1.0以下那么此处的技术没有意义。 不清楚版本的可以在cmd下进行三步操作查看1 输入:python 2 输入: import tensorflow as tf 3输入:tf.__version__
正文:
rnn中的cell常用的有LSTM同意GRU,但是有时候我们需要堆叠多层cell或者需要自定义cell的初状态,即最开始时候的第一个cell的状态,我再此处进行以下演示:
1 构造placeholder,因为不构造后面的演示不会通过,所以我不是只给出关键部分,那样很多时候别人也不会明白,这也是现在很多代码无法运行的原因之一,不告知版本,不全部贴出来。
# 导入所需的包
import tensorflow as tffrom tensorflow.contrib.rnn import LSTMCell,MultiRNNCell,LSTMStateTuple,NASCell # 导入几个常用的cell注意:NASCell与LSTM相同(可以这么理解...其他的我没有研究)
# 定义rnn与inpute使用到的参数
num_units =16 # rnn 中每个cell的单元数量batch_size =8 # 每次进入输入的truncated_series_length=16num_layers=3
state_placeholder = tf.placeholder(tf.float32, [num_layers, 2, batch_size, num_units])# 这一段的意思是堆叠3层cell, 因为是lstm所以cell的state有c与h因此第一个数字是2,第三个数字
# 是batch的数量也可以添None,最后一个是每个cell单元的内部的单元数量。
x = tf.placeholder(tf.float32, [None, truncated_series_length, 1]) # 这个就是输入的input,states = tf.unstack(state_placeholder, axis=0) 这段代码的意思是将cell的state进行拆解,axis是按照那个维度拆解,0就是第一个维度num_layers,因此拆成3组,每组都是的# shape都是(2,8,16)rnn_tuple_state = tuple( [LSTMStateTuple(states[idx][0], states[idx][1]) for idx in range(num_layers)])# 这几段就是创建3个cell每个cell中state的c与h都是states[idx][0]与states[idx][1]就是(batch_size,num_units)# 下面就是测试了,记住tensorflow 1.1之后MultiRNNCell的每一层的cell都会有自己的参数,而不是都共享一组参数。rnn_cells = tf.contrib.rnn.MultiRNNCell([LSTMCell(num_units) for _ in range(num_layers)], state_is_tuple = True)outputs, current_state = tf.nn.dynamic_rnn(rnn_cells, x,initial_state=rnn_tuple_state)print(current_state)
阅读全文
0 0
- tensorflow中rnn内cell的添加操作
- TensorFlow/Keras中CNN和RNN数据结构的理解
- TensorFlow中RNN网络的实现和关键参数选择
- TensorFlow中RNN实现的正确打开方式
- tensorflow中RNN时间步内置的方法
- TensorFlow搭建RNN(2/7) 使用TensorFlow的RNN API
- RNN时间序列预测(2)-Tensorflow入门,RNN操作
- iOS 点击cell同步cell中添加的UIButton控件
- TensorFlow中RNN样例代码详解
- Tensorflow中Demo学习:RNN语言模型
- Tensorflow RNN源代码解析笔记2:RNN的基本实现
- 基于tensorflow的RNN-LSTM(一)实现RNN
- tableView的中cell添加图像
- 学习Tensorflow的LSTM的RNN例子
- RNN構造二進制加法器的tensorflow實現
- RNN的原理与TensorFlow代码实现
- 利用TensorFlow训练简单的RNN
- Tensorflow下对RNN中Batch-size的测试和理解
- IT交流群
- 全文检索技术学习(一)——Lucene的介绍
- 《鸟哥的linux私房菜:服务器篇》linux常用网络命令集合
- T
- 自动化运维puppet原理及其服务搭建
- tensorflow中rnn内cell的添加操作
- 交换机VLAN的配置命令
- 杭电acm 1166敌兵布阵(数状数组)
- 数据结构——选择排序
- hdu 1074 Doing Homework (状态压缩dp)
- 表单对应model生成
- yeelink探究
- JS封装一个缓动运动框架
- 面试题6