1.比较函数
#判断每一个数是否大于threshold
greater = tf.greater(x, threshold)
#判断每一个数是否小于threshold
less = tf.less(x,threshold)
#判断每一个数是否大于等于threshold
greater_equal=tf.greater_equal(x, threshold)
#判断每一个数是否小于等于threshold
less_equal=tf.less_equal(x, threshold)
#判断每一个数是否等于threshold
equal = tf.equal(x, threshold)
#判断每一个数是否不等于threshold
not_equal=tf.not_equal(x, threshold)
2.这些比较函数会输出bool类型的tensor,那么就可以配合tf.where来使用
tf.where(
condition,
x=None,
y=None,
name=None
)
x中为true的元素值不变,false的元素值替换为y中对应位置的值,因此,x,y是同一shape的
实践小栗子:
#将小于等于threshold的值替换为0
greater = tf.greater(x, threshold)
output = tf.where(greater,x,tf.subtract(x,x))
with tf.Session() as sess:
feed_dict={x:[1,2,3,4,5],threshold:3}
print(sess.run(output,feed_dict=feed_dict))
output: [0 0 0 4 5]
- tf.gather_nd允许在多维上进行索引,得到新的向量
比如,想要获得大于0的元素的集合
idxs = tf.where(x>0)
output = tf.gather_nd(idxs)