您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了如何使用Tensorflow tf.tile(),內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。
tf.tile()應用于需要張量擴展的場景,具體說來就是:
如果現有一個形狀如[width, height]的張量,需要得到一個基于原張量的,形狀如[batch_size,width,height]的張量,其中每一個batch的內容都和原張量一模一樣。tf.tile使用方法如:
tile( input, multiples, name=None )
import tensorflow as tf a = tf.constant([7,19]) a1 = tf.tile(a,multiples=[3]) #第一個維度擴充3遍 b = tf.constant([[4,5],[3,5]]) b1 = tf.tile(b,multiples=[2,3])#第一個維度擴充2遍,第二個維度擴充3遍 with tf.Session() as sess: print(sess.run(a)) print(sess.run(a1)) print(sess.run(b)) print(sess.run(b1))
補充知識:tf.tile() 和 tf.contrib.seq2seq.tile_batch()
簡單介紹這兩個函數的基本用法, 以及區別. 以及在 BeamSearch 的時候用哪個?
# 將input的某一維度復制多少次, len(input.shape()) 等于 len(multiples) # tf.tile(input, multiples, name=None) t = tf.constant([[1, 1, 1, 9], [2, 2, 2, 9], [7, 7, 7, 9]]) # 第一維度和第二維度都保持不變 z0 = tf.tile(t, multiples=[1, 1]) # 第1維度不變, 第二維度復制為2份 z1 = tf.tile(t, multiples=[1, 2]) # 第1維度復制為兩份, 第二維度不變 z2 = tf.tile(t, multiples=[2, 1]) # tf.contrib.seq2seq.tile_batch(encoder_outputs, multiplier=self.beam_size) encoder_outputs = tf.constant([[[1, 3, 1], [2, 3, 2]], [[2, 3, 4], [2, 3, 2]]]) print(encoder_outputs.get_shape()) # (2, 2, 3) # 將batch內的每個樣本復制3次, tile_batch() 的第2個參數是一個 int 類型數據 z4 = tf.contrib.seq2seq.tile_batch(encoder_outputs, multiplier=3) with tf.Session() as sess: print(sess.run(z0)) print(sess.run(z1)) print(sess.run(z2)) 輸出: [[1 1 1 9] [2 2 2 9] [7 7 7 9]] [[1 1 1 9 1 1 1 9] [2 2 2 9 2 2 2 9] [7 7 7 9 7 7 7 9]] [[1 1 1 9] [2 2 2 9] [7 7 7 9] [1 1 1 9] [2 2 2 9] [7 7 7 9]] [[[1 3 1] [2 3 2]] [[1 3 1] [2 3 2]] [[1 3 1] [2 3 2]] [[2 3 4] [2 3 2]] [[2 3 4] [2 3 2]] [[2 3 4] [2 3 2]]]
以上就是關于如何使用Tensorflow tf.tile()的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。