【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也支持 &gt; &gt; > &lt; &lt; < &lt; = &lt;= <= &gt; = &gt;= >= 四种运算符,但是另外的 == \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)

测试输出
在这里插入图片描述

GitHub 加速计划 / te / tensorflow
184.55 K
74.12 K
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:2 个月前 )
a49e66f2 PiperOrigin-RevId: 663726708 2 个月前
91dac11a This test overrides disabled_backends, dropping the default value in the process. PiperOrigin-RevId: 663711155 2 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐