tf.unstack\tf.unstack
tf.unstack
原型:
unstack(
value,
num=None,
axis=0,
name='unstack' )
官方解釋:https://tensorflow.google.cn/api_docs/python/tf/unstack
解釋:這是一個對矩陣進行分解的函數,以下為關鍵參數解釋:
value:代表需要分解的矩陣變量(其實就是一個多維數組,一般為二維);
axis:指明對矩陣的哪個維度進行分解。
要理解tf.unstack函數,我們不妨先來看看tf.stack函數。Tf.stack剛好是與tf.unstack函數相反,前者是對矩陣進行拼接,后者則對矩陣進行分解。
Tf.stack用法舉例:假如現在有兩個變量,a=[1, 2, 3],b=[4, 5, 6],現在我要使用tf.stack對他們進行拼接,變成一個二維矩陣[ [1, 2, 3], [4, 5, 6] ]。代碼【示例1】如下:
【示例1】
import tensorflow as tfa = tf.constant([1, 2, 3]) b = tf.constant([4, 5, 6]) c = tf.stack( [a,b], axis=0) with tf.Session() as sess: print(sess.run(c))
輸出結果是:
[[1 2 3][4 5 6]]
此時,我如果把【示例1】里面的tf.stack參數axis=0改成1,運行結果如下:
[[1 4][2 5][3 6]]
可以理解,axis作用就是指明以何種方式對矩陣進行拼接,說白了,就是對原矩陣的哪個維度進行拼接。
理解了tf.stack,tf.unstack也就不難理解了。比如說現在有變量c,如下:
c=[[1 2 3]
[4 5 6]]
現在要對c進行分解,代碼如下:
import tensorflow as tfc = tf.constant([[1, 2, 3], [4, 5, 6]]) d = tf.unstack(c, axis=0) e = tf.unstack(c, axis=1) with tf.Session() as sess: print(sess.run(d)) print(sess.run(e))
結果如下:
[array([1, 2, 3]), array([4, 5, 6])] [array([1, 4]), array([2, 5]), array([3, 6])]
可以看出來,tf.unstack其實就是在做與tf.stack相反的事情。這樣一來,你是不是恍然大悟了呢?
作者:JempChou
鏈接:https://www.jianshu.com/p/25706575f8d4
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。
轉載于:https://www.cnblogs.com/fpzs/p/10290259.html
總結
以上是生活随笔為你收集整理的tf.unstack\tf.unstack的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 君士坦丁堡分叉引起的安全问题
- 下一篇: 动态代理:JDK动态代理和CGLIB代理