0
例如上部分的神經元採用激活函數從一層,有一個張量如何Tensorflow
a=[[1,2,3,4,5],
[2,3,4,5,6]]
indices =[[1, 0, 1, 0, 0],
[0, 1, 0, 0, 0]]
我只想用活化上的元素(從),其索引是具有值1 (來自b)。例如,我只想在索引[0,0],[0,2],[1,1]的元素上使用激活函數。
謝謝!
例如上部分的神經元採用激活函數從一層,有一個張量如何Tensorflow
a=[[1,2,3,4,5],
[2,3,4,5,6]]
indices =[[1, 0, 1, 0, 0],
[0, 1, 0, 0, 0]]
我只想用活化上的元素(從),其索引是具有值1 (來自b)。例如,我只想在索引[0,0],[0,2],[1,1]的元素上使用激活函數。
謝謝!
您可以使用tf.where:
tf.where(tf.cast(indices, dtype=tf.bool), tf.nn.sigmoid(a), a)
對於示例:
import tensorflow as tf
a = tf.constant([[1,2,3,4,5], [2,3,4,5,6]], dtype=tf.float32)
indices = tf.constant([[1, 0, 1, 0, 0], [0, 1, 0, 0, 0]],
dtype = tf.int32)
result = tf.where(tf.cast(indices, dtype=tf.bool), tf.nn.sigmoid(a), a)
with tf.Session() as sess:
print(sess.run(result))
此打印:
[[ 0.7310586 2. 0.95257413 4. 5. ]
[ 2. 0.95257413 4. 5. 6 ]]
完美解決我的問題的好方法,非常感謝。 –
是否有錯字在'指數爲[0,0], [0,1],[1,1]'?我認爲你需要'索引[0,0],[0,2],[1,1]',對嗎? – Akhilesh
你是對的,我修改了這個錯字。謝謝。你有回答我的問題嗎?謝謝! –
非常感謝你,我已經嘗試過這些功能,他們實際上工作。但是很難使用。我認爲下面的答案會更有效率。再次感謝你。 –