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转换
上一篇:Keras基础


下一篇:sess.run()读取数据卡住,死循环