测试环境:Tensorflow 1.7.0、Tensorflow 1.14.0
在Tensorflow中提供了六个Tensor大小比较的函数分别如下;其中,第一个参数是比较符号前的Tensor,第二个是符号后的Tensor。
compa=tf.less(A,B) ## <
compa=tf.greater(A,B) ## >
compa=tf.greater_equal(A,B) ## >=
compa=tf.less_equal(A,B) ## <=
compa=tf.equal(A,B) ## ==
compa=tf.not_equal(A,B) ## !=
以 tf.less() 函数为例,它返回的是一个shape与输入的Tensor相同的tf.bool类型的Tensor,并且要求输入Tensor的shape必须一致,且类型必须以下类型中一种;
`float32`, `float64`, `int32`, `uint8`, `int16`, `int8`, `int64`,
`bfloat16`, `uint16`, `half`, `uint32`, `uint64`.
而在numpy中也有同名的函数与这些函数一一对应,但是往往我们都直接使用运算符进行比较。
其实Tensorflow也支持 >>> 、<<< 、 <=<=<= 、 >=>=>= 四种运算符,但是另外的 ==\textbf{==}== 和 !=\textbf{!=}!= 运算符的功能与Python中的却不同,他们的功能与Python中的 is 和 is not 相同,是用于判断被比较的两个参数是否是同一个量,他们返回的不再是Tensor,也不是数组,而是普通的bool类型的量。
tensorflow。 测试代码和输出分别如下
import tensorflow as tf
import numpy as npA=tf.constant([[20,20],[10,15]],dtype=tf.int8,shape=[2,2])
B=tf.constant([[20,20],[10,10]],dtype=tf.int8,shape=[2,2])C=(A==B)
compa=tf.equal(A,B) ## <B_=B
C_=(B_==B)#compa=tf.greater(A,B) ## >
#compa=tf.greater_equal(A,B) ## >=
#compa=tf.less_equal(A,B) ## <=
#compa=tf.equal(A,B) ## ==
#compa=tf.not_equal(A,B) ## !=with tf.Session() as sess:print('A is equal to B ?:',sess.run(compa))print('A == B ?: ',C)
print('B_ == B?: ',C_)D=np.array([20,20],dtype=np.int)
E=np.array([20,20],dtype=np.int)F=(D is not E)
print('D is not E?: ',F)
测试输出
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态