배열이 있다고 가정하면 input = np.array([[1,0,3,5,0,8,6]])
이고, 필터링하려면 [1,3,5,8,6]
을 필터링하고 싶습니다.텐서 내에서 0이 아닌 값을 필터링합니다.
조건과 함께 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)