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连接MySQL、MongoDB、Redis、memcache等数据库的方法
Nov 15 Python
python检测某个变量是否有定义的方法
May 20 Python
python的pdb调试命令的命令整理及实例
Jul 12 Python
pytorch 共享参数的示例
Aug 17 Python
python中bytes和str类型的区别
Oct 21 Python
Python线程threading模块用法详解
Feb 26 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
Mar 18 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
Apr 20 Python
详解pycharm配置python解释器的问题
Oct 15 Python
在 Golang 中实现 Cache::remember 方法详解
Mar 30 Python
Python中requests做接口测试的方法
May 30 Python
Python中itertools库的四个函数介绍
Apr 06 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
生成缩略图
2006/10/09 PHP
php 生成WML页面方法详解
2009/08/09 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
jQuery :first选择器使用介绍
2013/08/09 Javascript
js网页实时倒计时精确到秒级
2014/02/10 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
javascript实现简单的省市区三级联动
2015/05/14 Javascript
简介JavaScript中的getSeconds()方法的使用
2015/06/10 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
2015/08/18 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
使用jquery给新生的th绑定hover事件的实例
2017/02/10 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
2017/11/17 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
Python基于PyGraphics包实现图片截取功能的方法
2017/12/21 Python
每天迁移MySQL历史数据到历史库Python脚本
2018/04/13 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
实习销售业务员自我鉴定
2013/09/21 职场文书
大学旷课检讨书
2014/01/28 职场文书
新农村建设标语
2014/06/24 职场文书
党的群众路线教育实践活动个人整改落实情况汇报
2014/10/28 职场文书
2015初中教导处工作总结
2015/07/21 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS
sql字段解析器的实现示例
2021/06/23 SQL Server
Spring Boot接口定义和全局异常统一处理
2022/04/20 Java/Android
Django框架中模型的用法
2022/06/10 Python