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