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使用shelve模块实现简单数据存储的方法
May 20 Python
python实现矩阵乘法的方法
Jun 28 Python
Python 正则表达式入门(初级篇)
Dec 07 Python
Python进阶-函数默认参数(详解)
May 18 Python
python和flask中返回JSON数据的方法
Mar 26 Python
Anaconda入门使用总结
Apr 05 Python
Python面向对象之静态属性、类方法与静态方法分析
Aug 24 Python
使用Python抓取豆瓣影评数据的方法
Oct 17 Python
python+mysql实现教务管理系统
Feb 20 Python
Python类的继承、多态及获取对象信息操作详解
Feb 28 Python
Python面向对象程序设计之私有属性及私有方法示例
Apr 08 Python
Python新手学习标准库模块命名
May 29 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最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
PHP仿微信多图片预览上传实例代码
2016/09/13 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
2016/10/08 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
Query中click(),bind(),live(),delegate()的区别
2013/11/19 Javascript
jQuery的context属性用法实例
2014/12/27 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
node和vue实现商城用户地址模块
2018/12/05 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
Python GAE、Django导出Excel的方法
2008/11/24 Python
python3实现暴力穷举博客园密码
2016/06/19 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
Python如何读写字节数据
2020/08/05 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
2020/12/05 Python
python switch 实现多分支选择功能
2020/12/21 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
吃透移动端 1px的具体用法
2019/12/16 HTML / CSS
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
大学生找工作推荐信范文
2013/11/28 职场文书
优秀求职信范文分享
2014/01/26 职场文书
后勤服务中心总经理工作职责
2014/03/03 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
先进典型发言材料
2014/12/30 职场文书
工会积极分子个人总结
2015/03/03 职场文书
听证会主持词
2015/07/03 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
详解Python中下划线的5种含义
2021/07/15 Python
Nginx报错104:Connection reset by peer问题的解决及分析
2022/07/23 Servers