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中copy()方法的使用
May 21 Python
python获取一组汉字拼音首字母的方法
Jul 01 Python
python3.4用函数操作mysql5.7数据库
Jun 23 Python
用不到50行的Python代码构建最小的区块链
Nov 16 Python
Python基于列表模拟堆栈和队列功能示例
Jan 05 Python
Python 实现数据结构-循环队列的操作方法
Jul 17 Python
python如何统计代码运行的时长
Jul 24 Python
Python生成个性签名图片获取GUI过程解析
Dec 16 Python
python 用 xlwings 库 生成图表的操作方法
Dec 22 Python
Python求两个字符串最长公共子序列代码实例
Mar 05 Python
python+adb+monkey实现Rom稳定性测试详解
Apr 23 Python
Python 日期与时间转换的方法
Aug 01 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
咖啡与水的关系
2021/03/03 冲泡冲煮
PHP 数组遍历方法大全(foreach,list,each)
2010/06/30 PHP
php checkbox 取值详细说明
2010/08/19 PHP
php实现发送微信模板消息的方法
2015/03/07 PHP
学习php设计模式 php实现门面模式(Facade)
2015/12/07 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
2015/12/24 PHP
js函数排序的实例代码
2013/07/01 Javascript
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
js获取隐藏元素的宽高
2017/02/24 Javascript
关于JavaScript中的this指向问题总结篇
2017/07/23 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
2018/11/30 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
python使用urllib模块开发的多线程豆瓣小站mp3下载器
2014/01/16 Python
Python实现简单的可逆加密程序实例
2015/03/05 Python
python 文件操作api(文件操作函数)
2016/08/28 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
python将视频转换为全字符视频
2019/04/26 Python
python3+django2开发一个简单的人员管理系统过程详解
2019/07/23 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
Python并发concurrent.futures和asyncio实例
2020/05/04 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
2020/07/03 Python
如何通过jdbc调用存储过程
2012/04/19 面试题
在教室放鞭炮的检讨书
2014/09/28 职场文书
工程承包协议书
2014/10/20 职场文书
商场收银员岗位职责
2015/04/07 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书