tensorflow 动态获取 BatchSzie 的大小实例
作者:jinmingz 发布时间:2023-03-05 16:56:48
我就废话不多说了,大家还是直接看代码吧~
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)
来源:https://blog.csdn.net/zjm750617105/article/details/82959175


猜你喜欢
- 直接在table标签中设置下不就行了吗?这是静态的,如果要动态设置你会吗?function com_onresize(){var conte
- 本文研究的主要是Python生成器及其应用,具体如下。一、定义可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他的数据类型需要调
- 本文推荐一款twitter做的bootstrapValidator.js,本身bootstrap就是twitter做的,那么使用原配的val
- 本文实例讲述了python检测某个变量是否有定义的方法。分享给大家供大家参考。具体如下:第一种方法使用内置函数locals():'t
- 自动追踪算法,在我们设计2D射击类游戏时经常会用到,这个听起来很高大上的东西,其实也并不是军事学的专利,在数学上解决的话需要去解微分方程,这
- 8大基础定位driver.find_element_by_id() # id定位driver.find_element_by_name()
- Mac 环境中既有自带的 Python2.7 也有自己安装的 Python 3.5.1,默认想用 Python3 的环境1. 添加 Pyth
- 开发环境说明:python 3.6.2Vs studio 2017 (已经安装C++桌面开发)我的vcvarsall.bat 路径为:&qu
- 1.安装vscode和python3.7(安装路径在:E:\Python\Python37);2.打开vscode,在左下角点击设置图标选择
- 数据库迁移(A -> B),需要把用户也迁移过去,而用户表(mysql.user)有上百个用户。有2种方法进行快速迁移:1,在同版本的
- 安装python中文分词库jieba法1:Anaconda Prompt下输入conda install jieba法2:Terminal下
- GIL(Global Interpreter Lock,即全局解释器锁)1.为什么有GIL设计者为了规避类似于内存管理这样的复杂的竞争风险问
- 改变图像中物体对象(像素)之间的空间关系。平移# 定义平移矩阵,需要是numpy的float32类型# x轴平移50,y轴平移80, 2*3
- 搜了全网都是各种坑,没能解决我的问题。最后自己琢磨出来了。安装好以后,会弹出临时密码 ,copy住。如果手点快了,在通知栏还有一次机会,通知
- 最近要做个从 pdf 文件中抽取文本内容的工具,大概查了一下 python 里可以使用 pdfminer 来实现。下面就看看怎样使用吧。PD
- 1. 序列类型定义序列是具有先后关系的一组元素序列是一维元素向量,元素类型可以不同类似数学运算序列:S0,S1,…,S(n-1)元素间由序号
- 环境:Anaconda自带的编译器——Spyder最近才开使用conda,发现conda 就是 yyds,爱啦~一、Tensor(张量)im
- 两者在使用效果上没有任何区别,都是为了将实例化后的vue挂载到指定的dom元素中。如果在实例化vue的时候指定el,则该vue将会渲染在此e
- 引子: 今天看到别人的一个题目: function fn(x){ x = 10; arguments[0] = 20; console.lo
- 传统的网页BBS大多是采用CGI模式实现的,它的实现要求编程者既要掌握编程语言如Perl或C等,又要了解关于CGI模式的各项技术内容,因此要