其他分享
首页 > 其他分享> > true_fn和false_fn输出的dtype类型不一致怎么办

true_fn和false_fn输出的dtype类型不一致怎么办

作者:互联网

使用预训练的facenet模型在验证集上跑,中间报了个类型不匹配的错误:
原始:当前的话是一个uint8,一个是float32.

 image = tf.cond(get_control_flag(control[0], RANDOM_ROTATE),
                            lambda:tf.compat.v1.py_func(random_rotate_image, [image], tf.uint8),#这里是uint8
                            lambda:tf.compat.v1.identity(image)
#中间隔了很多代码,给出了不一致的那一句,参照下面:
  image = tf.cond(get_control_flag(control[0], FIXED_STANDARDIZATION),
                            lambda:(tf.cast(image, tf.float32) - 127.5)/128.0,#这里是float32
                            lambda:tf.compat.v1.image.per_image_standardization(image))                           

改为:将uint8改为float32后,又提示和identity类型不一致,就把identity给用cast转换为float32

 image = tf.cond(get_control_flag(control[0], RANDOM_ROTATE),
                            lambda:tf.compat.v1.py_func(random_rotate_image, [image], tf.float32),#修改为float32
                            lambda:tf.cast(tf.compat.v1.identity(image),tf.float32))#cast转换

标签:control,compat,false,dtype,image,fn,tf,float32,lambda
来源: https://blog.csdn.net/qfqf123456/article/details/114632136