tf.cond函数

tf.cond( pred , true_fn = None , false_fn = None , strict = False , name = None , 
    fn1 = None , fn2 = None)

上面是函数原型,具体的操作为:

如果 pred(是一个条件语句) 为 true 则执行并返回 true_fn() ,否则执行并返回 false_fn()。具体例子,比如我们在目标检测实现IOU计算时,会有如下几行代码:

#caculate IOU
area = area_width * area_height #重叠面积、做分子

#并 面积,为分母;为了不让分母为零,我们使用tf.cond进行判定,如果为零,给分母赋值为le-8.
all_area = tf.cond( ( width * height + l_width * l_height - area ) <= 0, lambda : tf.cast( 1e-8, tf.float32 ), lambda : ( width * height + l_width * l_height - area ) )

IOU = area / all_area

IOU = tf.cond( area_width < 0, lambda : tf.cast( 1e-8, tf.float32 ), lambda : IOU )
IOU = tf.cond( area_height < 0, lambda : tf.cast( 1e-8, tf.float32 ), lambda : IOU )

上面代码中的tf.cast()函数为类型转换,用法如下:

函数原型:tf.cast( x, dtype, name=None )

将x的数据格式转化成dtype。

参考:

https://www.w3cschool.cn/tensorflow_python/tensorflow_python-w47x2cz8.html

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值