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  __getattr__与__setattr__使用方法
Sep 06 Python
跟老齐学Python之集合的关系
Sep 24 Python
python 实现二维列表转置
Dec 02 Python
Python实现剪刀石头布小游戏(与电脑对战)
Dec 31 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
Feb 28 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
May 23 Python
keras:model.compile损失函数的用法
Jul 01 Python
如何通过python实现IOU计算代码实例
Nov 02 Python
详解matplotlib绘图样式(style)初探
Feb 03 Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 21 Python
python not运算符的实例用法
Jun 30 Python
Python实现老照片修复之上色小技巧
Oct 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
PHP中的正则表达式实例详解
2017/04/25 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
laravel ORM关联关系中的 with和whereHas用法
2019/10/16 PHP
How to Auto Include a Javascript File
2007/02/02 Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
2012/12/17 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
js+html5实现复制文字按钮
2017/07/15 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
vue中实现methods一个方法调用另外一个方法
2018/02/08 Javascript
浅谈Angularjs中不同类型的双向数据绑定
2018/07/16 Javascript
Element Input组件分析小结
2018/10/11 Javascript
express框架中使用jwt实现验证的方法
2019/08/25 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
基于ant design日期控件使用_仅月份的操作
2020/10/27 Javascript
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
Python返回真假值(True or False)小技巧
2015/04/10 Python
Numpy之random函数使用学习
2019/01/29 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
python 双循环遍历list 变量判断代码
2020/05/04 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
教师演讲稿范文
2014/01/08 职场文书
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
自主招生自荐信指南
2014/02/04 职场文书
环保建议书500字
2014/05/14 职场文书
企业整改报告范文
2014/11/08 职场文书
2014年管理工作总结
2014/11/22 职场文书