मान लें कि मेरे पास एक सरणी है: input = np.array([[1,0,3,5,0,8,6]])
, और मैं [1,3,5,8,6]
फ़िल्टर करना चाहता हूं।एक टेंसर में गैर-शून्य मानों को फ़िल्टर करें
मुझे पता है कि आप एक शर्त के साथ tf.where
का उपयोग कर सकते हैं लेकिन लौटा हुआ मूल्य अभी भी 0 में है। निम्नलिखित स्निपेट का आउटपुट [[[1 0 3 5 0 8 6]]]
है। मुझे यह भी समझ में नहीं आता कि tf.where
को x
और y
दोनों की आवश्यकता क्यों है।
क्या वैसे भी मैं परिणामस्वरूप टेंसर में 0 से छुटकारा पा सकता हूं?
import numpy as np
import tensorflow as tf
input = np.array([[1,0,3,5,0,8,6]])
X = tf.placeholder(tf.int32,[None,7])
zeros = tf.zeros_like(X)
index = tf.not_equal(X,zeros)
loc = tf.where(index,x=X,y=X)
with tf.Session() as sess:
out = sess.run([loc],feed_dict={X:input})
print np.array(out)