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+selenium实现登录账户后自动点击的示例
Dec 22 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
Apr 27 Python
selenium+python实现1688网站验证码图片的截取功能
Aug 14 Python
python3调用百度翻译API实现实时翻译
Aug 16 Python
python3利用ctypes传入一个字符串类型的列表方法
Feb 12 Python
Python完成毫秒级抢淘宝大单功能
Jun 06 Python
python-django中的APPEND_SLASH实现方法
Jun 21 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
Jul 01 Python
Python循环结构的应用场景详解
Jul 11 Python
pandas 选取行和列数据的方法详解
Aug 08 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
Oct 14 Python
Python识别处理照片中的条形码
Nov 16 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
用js实现trim()的解决办法
2013/04/16 Javascript
利用jQuery实现可输入搜索文字的下拉框
2013/10/23 Javascript
node.js中的console.error方法使用说明
2014/12/10 Javascript
js实现分享到随页面滚动而滑动效果的方法
2015/04/10 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
ES6新特性八:async函数用法实例详解
2017/04/21 Javascript
关于react中组件通信的几种方式详解
2017/12/10 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
2020/08/27 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
2020/11/10 Javascript
[01:01:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第一场 3月4日
2021/03/11 DOTA
深入解析Python编程中JSON模块的使用
2015/10/15 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
Python设计模式之适配器模式原理与用法详解
2019/01/15 Python
基于python实现FTP文件上传与下载操作(ftp&sftp协议)
2020/04/01 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
HTML5 video 视频标签使用介绍
2014/02/03 HTML / CSS
倩碧英国官网:Clinique英国
2018/08/10 全球购物
Schecker荷兰:狗狗用品和配件
2019/06/06 全球购物
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
工厂总经理岗位职责
2014/02/07 职场文书
大学生学年自我鉴定
2014/02/10 职场文书
服装促销活动方案
2014/02/23 职场文书
《蚂蚁和蝈蝈》教学反思
2014/02/24 职场文书
颁奖典礼主持词
2014/03/25 职场文书
工业设计专业自荐书
2014/06/05 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
2014年职称评定工作总结
2014/11/26 职场文书
2016年入党心得体会范文
2016/01/23 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python
php去除数组中为0的元素的实例分析
2021/11/17 PHP
Vue中Object.assign清空数据报错的解决方案
2022/03/03 Vue.js