tensorflow實(shí)現(xiàn)tensor中滿足某一條件的數(shù)值取出組成新的tensor
首先使用tf.where()將滿足條件的數(shù)值索引取出來(lái),在numpy中,可以直接用矩陣引用索引將滿足條件的數(shù)值取出來(lái),但是在tensorflow中這樣是不行的。所幸,tensorflow提供了tf.gather()和tf.gather_nd()函數(shù)。
看下面這一段代碼:
import tensorflow as tf sess = tf.Session() def get_tensor(): x = tf.random_uniform((5, 4)) ind = tf.where(x>0.5) y = tf.gather_nd(x, ind) return x, ind, y
在上述代碼中,輸出分別是原始的tensor x,x中滿足特定條件(此處為>0.5)的數(shù)值的索引,以及x中滿足特定條件的數(shù)值。執(zhí)行以下步驟,觀察三個(gè)tensor對(duì)應(yīng)的數(shù)值:
x, ind, y = get_tensor() x_, ind_, y_ = sess.run([x, ind, y])
可以得到如下結(jié)果:
可以看到,上述結(jié)果中將tensor x中大于0.5的數(shù)值取出來(lái)組成了一個(gè)新的tensor y。
如果我們將代碼中的tf.gather_nd替換成tf.gather會(huì)發(fā)生什么呢?由于結(jié)果不方便展示,這里不放結(jié)果了,tf.gather適用于index為一維的情況,在本例中,index為2維,如果選用tf.gather的話,對(duì)應(yīng)的x, ind, y的維數(shù)分別如下:
x.shape = (5, 4) ind.shape = (9, 2) y.shape = (9, 2, 4)
以上這篇tensorflow實(shí)現(xiàn)tensor中滿足某一條件的數(shù)值取出組成新的tensor就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中的魔術(shù)方法Magic?Methods使用實(shí)例全面指南
在Python中,魔術(shù)方法Magic?Methods是一種特殊的方法,它們以雙下劃線開(kāi)頭和結(jié)尾,如__init__、__str__等,這些方法允許定制類的行為,使得對(duì)象更具有靈活性和可定制性,本文將深入探討Python中一些常用的魔術(shù)方法,以及如何使用它們來(lái)定制類與對(duì)象2024-01-01Python 中的字符串基礎(chǔ)與應(yīng)用小結(jié)
在Python中,字符串可以用單引號(hào)或雙引號(hào)括起來(lái),'hello' 與 "hello" 是相同的,這篇文章主要介紹了Python 中的字符串基礎(chǔ)與應(yīng)用,需要的朋友可以參考下2023-09-09linux之文件查找指定文件中包含關(guān)鍵字的行信息方式
這篇文章主要介紹了linux之文件查找指定文件中包含關(guān)鍵字的行信息方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2023-06-06在django中實(shí)現(xiàn)choices字段獲取對(duì)應(yīng)字段值
這篇文章主要介紹了在django中實(shí)現(xiàn)choices字段獲取對(duì)應(yīng)字段值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07