tensorflow 动态获取 BatchSzie 的大小实例


Posted in Python onJune 30, 2020

我就废话不多说了,大家还是直接看代码吧~

import tensorflow as tf
import sys

with tf.variable_scope('ha'):
  a1 = tf.get_variable('a', shape=[], dtype=tf.int32)
  with tf.variable_scope('haha'):
    a2 = tf.get_variable('a', shape=[], dtype=tf.int32)
    with tf.variable_scope('hahaha'):
      a3 = tf.get_variable('a', shape=[], dtype=tf.int32)

with tf.variable_scope('ha', reuse=True):
  # 不会创建新的变量
  a4 = tf.get_variable('a', shape=[], dtype=tf.int32)
  
sum = a1 + a2 + a3 + a4

fts_s = tf.placeholder(tf.float32, shape=(None, 100), name='fts_s')
b = tf.zeros(shape=(tf.shape(fts_s)[0], tf.shape(fts_s)[1]))

concat = tf.concat(axis=1, values=[fts_s, b])

init_op = tf.global_variables_initializer()
with tf.Session() as sess:
  sess.run(init_op)
  for var in tf.global_variables():
    print var.name
  import numpy as np
  ft_sample = np.ones((10, 100))
  con_value = sess.run([concat], feed_dict={fts_s: ft_sample})
  print con_value[0].shape

results:

ha/a:0
ha/haha/a:0
ha/haha/hahaha/a:0
(10, 200)

小总结:

1: 对于未知的shape, 最常用的就是batch-size 通常是 None 代替, 那么在代码中需要用到实际数据的batch size的时候应该怎么做呢?

可以传一个tensor类型, tf.shape(Name) 返回一个tensor 类型的数据, 然后取batchsize 所在的维度即可. 这样就能根据具体的数据去获取batch size的大小

2: 对于变量命名, 要善于用 variable_scope 来规范化命名, 以及 reuse 参数可以控制共享变量

补充知识:tensorflow RNN 使用动态的batch_size

在使用tensorflow实现RNN模型时,需要初始化隐藏状态 tensorflow 动态获取 BatchSzie 的大小实例 如下:

lstm_cell_1 = [tf.nn.rnn_cell.DropoutWrapper(tf.nn.rnn_cell.BasicLSTMCell(HIDDEN_SIZE),output_keep_prob=dropout_keep_prob) for _ in range(NUM_LAYERS)]
cell_1 = tf.nn.rnn_cell.MultiRNNCell(lstm_cell_1)
self.init_state_1 = cell_1.zero_state(self.batch_size,tf.float32)

如果我们直接使用超参数batch_size初始化 tensorflow 动态获取 BatchSzie 的大小实例 在使用模型预测的结果时会很麻烦。我们可以使用动态的batch_size,就是将batch_size作为一个placeholder,在运行时,将batch_size作为输入输入就可以实现根据数据量的大小使用不同的batch_size。

代码实现如下:

self.batch_size = tf.placeholder(tf.int32,[],name='batch_size')

self.state = cell.zero_state(self.batch_size,tf.float32)

以上这篇tensorflow 动态获取 BatchSzie 的大小实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python调用fortran模块
Apr 08 Python
开源Web应用框架Django图文教程
Mar 09 Python
Python3计算三角形的面积代码
Dec 18 Python
python opencv检测目标颜色的实例讲解
Apr 02 Python
python+pandas生成指定日期和重采样的方法
Apr 11 Python
django admin 后台实现三级联动的示例代码
Jun 22 Python
Python实现的tcp端口检测操作示例
Jul 24 Python
Python Threading 线程/互斥锁/死锁/GIL锁
Jul 21 Python
Python Des加密解密如何实现软件注册码机器码
Jan 08 Python
使用 PyTorch 实现 MLP 并在 MNIST 数据集上验证方式
Jan 08 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 Python
TensorFlow中tf.batch_matmul()的用法
Jun 02 Python
浅谈TensorFlow之稀疏张量表示
Jun 30 #Python
tensorflow图像裁剪进行数据增强操作
Jun 30 #Python
浅谈tensorflow 中的图片读取和裁剪方式
Jun 30 #Python
Python openpyxl模块实现excel读写操作
Jun 30 #Python
tensorflow下的图片标准化函数per_image_standardization用法
Jun 30 #Python
Python的控制结构之For、While、If循环问题
Jun 30 #Python
关于tensorflow softmax函数用法解析
Jun 30 #Python
You might like
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
MySQL 日期时间函数常用总结
2012/06/12 PHP
php生成N个不重复的随机数实例
2013/11/12 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
PHP静态成员变量
2017/02/14 PHP
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
生成二维码方法汇总
2014/12/26 Javascript
js实现发送验证码后的倒计时功能
2015/05/28 Javascript
一张Web前端的思维导图分享
2015/07/03 Javascript
JavaScript的Object.defineProperty详解
2018/07/09 Javascript
vue项目引入Iconfont图标库的教程图解
2018/10/24 Javascript
Vue-CLI3.x 设置反向代理的方法
2018/12/06 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
vue实现记事本功能
2019/06/26 Javascript
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
python控制台英汉汉英电子词典
2020/04/23 Python
Python标准库os.path包、glob包使用实例
2014/11/25 Python
详解Python中expandtabs()方法的使用
2015/05/18 Python
python 截取 取出一部分的字符串方法
2017/03/01 Python
解决python 输出是省略号的问题
2018/04/19 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
python文件读取失败怎么处理
2020/06/23 Python
Python openpyxl模块实现excel读写操作
2020/06/30 Python
会计专业毕业生自我鉴定
2013/10/29 职场文书
小学运动会班级口号
2014/06/09 职场文书
真诚的求职信
2014/07/04 职场文书
单方离婚协议书范本(2014版)
2014/09/30 职场文书
群众路线学习心得体会范文
2014/11/05 职场文书
2015年环境整治工作总结
2015/05/22 职场文书
2015新教师教学工作总结
2015/07/22 职场文书
如何使用Maxwell实时同步mysql数据
2021/04/08 MySQL
深入理解 Golang 的字符串
2022/05/04 Golang