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 相关文章推荐
pycharm 使用心得(二)设置字体大小
Jun 05 Python
Python中使用PDB库调试程序
Apr 05 Python
Python字符串处理之count()方法的使用
May 18 Python
python实现DES加密解密方法实例详解
Jun 30 Python
详谈python http长连接客户端
Jun 12 Python
利用aardio给python编写图形界面
Aug 21 Python
python2.7无法使用pip的解决方法(安装easy_install)
Apr 03 Python
python+POP3实现批量下载邮件附件
Jun 19 Python
pytorch中获取模型input/output shape实例
Dec 30 Python
Django在Model保存前记录日志实例
May 14 Python
Python 实现自动登录+点击+滑动验证功能
Jun 10 Python
Python内置类型集合set和frozenset的使用详解
Apr 26 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文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
JSON在PHP中的应用介绍
2012/09/08 PHP
php生成扇形比例图实例
2013/11/06 PHP
ThinkPHP标签制作教程
2014/07/10 PHP
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
PHP图片添加水印功能示例小结
2016/10/03 PHP
JS中showModalDialog 的使用解析
2013/04/17 Javascript
javascript时间函数大全
2014/06/30 Javascript
Firefox下无法正常显示年份的解决方法
2014/09/04 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
详解js数组的完全随机排列算法
2016/12/16 Javascript
JS实现简单的二元方程计算器功能示例
2017/01/03 Javascript
JSONP跨域请求
2017/03/02 Javascript
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
2018/10/14 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
解决vue scoped html样式无效的问题
2020/10/24 Javascript
Python获取任意xml节点值的方法
2015/05/05 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
2018/01/03 Python
python中itertools模块zip_longest函数详解
2018/06/12 Python
一百多行python代码实现抢票助手
2018/09/25 Python
python实现LRU热点缓存及原理
2019/10/29 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
2020/04/23 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
浅谈Django前端后端值传递问题
2020/07/15 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
用HTML5实现鼠标滚轮事件放大缩小图片的功能
2015/06/25 HTML / CSS
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
小学生我的梦想演讲稿
2014/08/21 职场文书
介绍信格式样本
2015/05/05 职场文书
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
MySQL 常见存储引擎的优劣
2021/06/02 MySQL