tensorflow中判定两tensor是否完全相等
作用:等价于(narray1 == narray2).all()
1.tensorflow中不能使用while/if/for等,ta的循环语句为tf.while_loop()(笔者这里走了弯路,在没学习tensorflow基本语法时就开始了构建模型T_T,结果运行时报错,找了好久才找到错误,望读者吸取教训╮( ̄▽  ̄)╭)。
2.要使用tf.while_loop函数取代while…break,便需要先构造cond()、body()这两个函数,然后使用x = tf.while_loop(cond, body, x)。while_loop()的详细使用方法这里不再赘述,网上已经有很多教程了。
在numpy中判定两个矩阵是否完全相等的代码是(narray1 == narray2).all(),如果narray1和narray2在每个对应的位置上都相等则返回true,反之返回false。这段代码常用的格式如下:
#代码1
while True:
....
if (narray1 == narray2).all():
break
...
在tensorflow中要写成
#代码2
def cond():
return a #f返回只有一个值的tensorflow的bool类型张量
def body():
return b
x = tf.while_loop(cond, body, x)
其中要用后者cond()代替前者if。
下面介绍cond的构造方法。