Tensorflow-API :对于tensor特定值进行逻辑判断和操作

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]
  1. tf.gather_nd允许在多维上进行索引,得到新的向量
    比如,想要获得大于0的元素的集合
idxs =  tf.where(x>0)
output = tf.gather_nd(idxs)

你可能感兴趣的:(Tensorflow-API :对于tensor特定值进行逻辑判断和操作)