tensorflow 动态获取 BatchSzie 的大小实例

 更新时间:2020年06月30日 17:05:07   作者:jinmingz  
这篇文章主要介绍了tensorflow 动态获取 BatchSzie 的大小实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

我就废话不多说了,大家还是直接看代码吧~

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模型时,需要初始化隐藏状态 如下:

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初始化 在使用模型预测的结果时会很麻烦。我们可以使用动态的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 cv2在验证码识别中应用实例解析

    python cv2在验证码识别中应用实例解析

    这篇文章主要介绍了python cv2在验证码识别中应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 详解python 降级到3.6终极解决方案

    详解python 降级到3.6终极解决方案

    这篇文章主要介绍了详解python 降级到3.6终极解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Python中的len()函数是什么意思

    Python中的len()函数是什么意思

    这篇文章主要介绍了Python中的len()函数是什么意思以及len()函数使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • python中os库的函数使用

    python中os库的函数使用

    这篇文章主要介绍了python中os库的使用,本篇文章记录下python中os库的一些函数使用,对python os库使用感兴趣的朋友跟随小编一起看看吧
    2022-10-10
  • Python统计文本词汇出现次数的实例代码

    Python统计文本词汇出现次数的实例代码

    这篇文章主要介绍了Python统计文本词汇出现次数,这种问题在统计文本词汇的次数时经常会遇到,今天给大家分享解决方案,通过实例代码给大家讲解,需要的朋友可以参考下
    2020-02-02
  • python针对mysql数据库的连接、查询、更新、删除操作示例

    python针对mysql数据库的连接、查询、更新、删除操作示例

    这篇文章主要介绍了python针对mysql数据库的连接、查询、更新、删除操作,结合实例形式详细分析了Python操作mysql数据库的连接与增删改查相关实现技巧,需要的朋友可以参考下
    2019-09-09
  • python检测某个变量是否有定义的方法

    python检测某个变量是否有定义的方法

    这篇文章主要介绍了python检测某个变量是否有定义的方法,实例分析了Python常用的变量判定技巧,需要的朋友可以参考下
    2015-05-05
  • python中list常用操作实例详解

    python中list常用操作实例详解

    这篇文章主要介绍了python中list常用操作,以实例形式较为详细的分析了列表list中常用的建立、添加、删除、搜索、过滤等操作技巧,需要的朋友可以参考下
    2015-06-06
  • Python开发生产环境常用的4个工具(实用推荐)

    Python开发生产环境常用的4个工具(实用推荐)

    构建优秀的软件需要遵循特定的规则并执行行业标准,如何在真实的生产环境开发中体现呢?在这篇文章中,我将向您展示我在Python项目中设置的4种工具,以简化开发工作流程并执行一些最佳实践,这些工具帮助我提高了效率,节省了时间,希望你读完也能有所收获
    2024-01-01
  • python如何实现视频转代码视频

    python如何实现视频转代码视频

    这篇文章主要为大家详细介绍了python如何实现视频转代码视频,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06

最新评论