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 相关文章推荐
使用C#配合ArcGIS Engine进行地理信息系统开发
Feb 19 Python
Python ldap实现登录实例代码
Sep 30 Python
python制作爬虫爬取京东商品评论教程
Dec 16 Python
python实现外卖信息管理系统
Jan 11 Python
python调用xlsxwriter创建xlsx的方法
May 03 Python
对python操作kafka写入json数据的简单demo分享
Dec 27 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
Python Pandas数据结构简单介绍
Jul 03 Python
python中提高pip install速度
Feb 14 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
Feb 18 Python
深度学习tensorflow基础mnist
Apr 14 Python
python如何利用traceback获取详细的异常信息
Jun 05 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留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
使用xampp搭建运行php虚拟主机的详细步骤
2015/10/21 PHP
php常用字符函数实例小结
2016/12/29 PHP
jquery CSS选择器笔记
2010/03/29 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
一篇文章掌握RequireJS常用知识
2016/01/26 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
2016/06/12 Javascript
jquery设置表单元素为不可用的简单代码
2016/07/04 Javascript
JavaScript实现Java中Map容器的方法
2016/10/09 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
小程序实现授权登陆的解决方案
2018/12/02 Javascript
详解如何给React-Router添加路由页面切换时的过渡动画
2019/04/25 Javascript
vue实现登录拦截
2020/06/29 Javascript
实例讲解React 组件
2020/07/07 Javascript
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
python连接字符串的方法小结
2015/07/13 Python
浅谈pyhton学习中出现的各种问题(新手必看)
2017/05/17 Python
使用pandas对两个dataframe进行join的实例
2018/06/08 Python
对Python的zip函数妙用,旋转矩阵详解
2018/12/13 Python
python3利用Socket实现通信的方法示例
2019/05/06 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
完美解决pycharm导入自己写的py文件爆红问题
2020/02/12 Python
基于Python的Jenkins的二次开发操作
2020/05/12 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
纽约州一群才华横溢的金匠制作而成:Hearth Jewelry
2019/03/22 全球购物
观看《永远的雷锋》心得体会
2014/03/12 职场文书
优秀应届生求职信
2014/06/16 职场文书
领导新年致辞2016
2015/07/29 职场文书
PHP 对接美团大众点评团购券(门票)的开发步骤
2021/04/03 PHP
如何解决goland,idea全局搜索快捷键失效问题
2022/04/03 Golang