【Tensorflow】Tensor的比较运算
【fishing-pan:https://blog.csdn.net/u013921430 转载请注明出处】
测试环境:Tensorflow 1.7.0、Tensorflow 1.14.0
Tensor 的比较运算
在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类型的量。
测试代码&输出
测试代码和输出分别如下
import tensorflow as tf
import numpy as np
A=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)
测试输出
更多推荐
所有评论(0)