tensorflow 的tf.where詳解


最近在用到數據篩選,觀看代碼中有tf.where()的用法,不是很常用,也不是很好理解。在這里記錄一下

1 tf.where(
2     condition,
3     x=None,
4     y=None,
5     name=None
6 )

Return the elements, either from x or y, depending on the condition.

理解:where嘛,就是要根據條件找到你要的東西。

condition:條件,是一個boolean

x:數據

y:同x維度的數據。

返回,返回符合條件的數據。當條件為真,取x對應的數據;當條件為假,取y對應的數據

舉例子。

 1 def test_where():
 2     # 定義一個tensor,表示condition,內部數據隨機產生
 3     condition = tf.convert_to_tensor(np.random.random([5]), dtype=tf.float32)
 4 
 5     # 定義兩個tensor,表示原數據
 6     a = tf.ones(shape=[5, 3], name='a')
 7 
 8     b = tf.zeros(shape=[5, 3], name='b')
 9 
10     # 選擇大於0.5的數值的坐標,並根據condition信息在a和b中選取數據
11     result = tf.where(condition > 0.5, a, b)
12 
13     with tf.Session() as sess:
14         print("condition:\n", sess.run([condition, result]))

結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM