tensorflow 動(dòng)態(tài)獲取 BatchSzie 的大小實(shí)例
我就廢話不多說了,大家還是直接看代碼吧~
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):
# 不會(huì)創(chuàng)建新的變量
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)
小總結(jié):
1: 對(duì)于未知的shape, 最常用的就是batch-size 通常是 None 代替, 那么在代碼中需要用到實(shí)際數(shù)據(jù)的batch size的時(shí)候應(yīng)該怎么做呢?
可以傳一個(gè)tensor類型, tf.shape(Name) 返回一個(gè)tensor 類型的數(shù)據(jù), 然后取batchsize 所在的維度即可. 這樣就能根據(jù)具體的數(shù)據(jù)去獲取batch size的大小
2: 對(duì)于變量命名, 要善于用 variable_scope 來規(guī)范化命名, 以及 reuse 參數(shù)可以控制共享變量
補(bǔ)充知識(shí):tensorflow RNN 使用動(dòng)態(tài)的batch_size
在使用tensorflow實(shí)現(xiàn)RNN模型時(shí),需要初始化隱藏狀態(tài)
如下:
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)
如果我們直接使用超參數(shù)batch_size初始化
在使用模型預(yù)測(cè)的結(jié)果時(shí)會(huì)很麻煩。我們可以使用動(dòng)態(tài)的batch_size,就是將batch_size作為一個(gè)placeholder,在運(yùn)行時(shí),將batch_size作為輸入輸入就可以實(shí)現(xiàn)根據(jù)數(shù)據(jù)量的大小使用不同的batch_size。
代碼實(shí)現(xiàn)如下:
self.batch_size = tf.placeholder(tf.int32,[],name='batch_size')
self.state = cell.zero_state(self.batch_size,tf.float32)
以上這篇tensorflow 動(dòng)態(tài)獲取 BatchSzie 的大小實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python進(jìn)行數(shù)獨(dú)求解詳解(二)
對(duì)于利用Python求解數(shù)獨(dú),我們可以采用回溯算法實(shí)現(xiàn)一個(gè)簡(jiǎn)單的版本。本文將此基礎(chǔ)上,通過改進(jìn)來提升數(shù)獨(dú)問題求解算法的性能。需要的可以參考一下2022-02-02
Pyspark 線性回歸梯度下降交叉驗(yàn)證知識(shí)點(diǎn)詳解
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于Pyspark 線性回歸梯度下降交叉驗(yàn)證的相關(guān)知識(shí)點(diǎn)及實(shí)例,需要的朋友們可以參考下。2021-12-12
Python實(shí)現(xiàn)簡(jiǎn)單購物車小程序
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡(jiǎn)單購物車小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
Python統(tǒng)計(jì)某列不同值的個(gè)數(shù)的示例代碼
在數(shù)據(jù)分析和數(shù)據(jù)處理中,統(tǒng)計(jì)數(shù)據(jù)往往集中在特定列中不同值的出現(xiàn)次數(shù),本文主要介紹了Python統(tǒng)計(jì)某列不同值的個(gè)數(shù)的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
連接pandas以及數(shù)組轉(zhuǎn)pandas的方法
今天小編就為大家分享一篇連接pandas以及數(shù)組轉(zhuǎn)pandas的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-06-06

