0
當我得到網絡的輸出時,它是一個大小如[batch_size,height,weight]的張量。內容就是概率。我想要做的是設置張量的閾值,並進行二值化處理。那麼我該怎麼做張量呢?如何對Tensorflow中張量中的元素設置閾值操作?
當我得到網絡的輸出時,它是一個大小如[batch_size,height,weight]的張量。內容就是概率。我想要做的是設置張量的閾值,並進行二值化處理。那麼我該怎麼做張量呢?如何對Tensorflow中張量中的元素設置閾值操作?
您可以使用tf.clip_by_value
:
import tensorflow as tf
a = tf.random_uniform(shape=(2, 3, 3), minval=-1, maxval=3)
b = tf.clip_by_value(a, 0, 1)
with tf.Session() as sess:
A, B = sess.run([a, b])
print A, '\n'
print B
這裏一切上面1將成爲1,一切都低於0爲0。一切將保持不變。
也看看這個answer它做了類似的事情,但一切都轉換爲0或1:
然而,在我的張量的內容是概率,所以它已經在區間[0,1]。我想要做的就是設置一個0.9的閾值,0.9以上的所有值都將變爲1,0.9以下的所有值都將變爲0. –
1)我應該如何從你的問題中猜出這個問題? 2)你讀過我鏈接的問題嗎?它解決了你所描述的問題。 –
對不起我的疏忽。還有一個問題。在你提供給我的答案中,我必須使用sess.run(),那麼我可以得到正確的結果?但是,在我的代碼中,我已經定義了一個圖表和一些placaholder。如果我寫了類似sess.run(pred)的東西,我會得到錯誤消息: –