with tf.name_scope(scope, 'eval_image', [image, height, width]):
if image.dtype != tf.float32:
image = tf.image.convert_image_dtype(image, dtype=tf.float32)
if height and width:
# Resize the image to the specified height and width.
image = tf.expand_dims(image, 0)
image = tf.image.resize_bilinear(image, [height, width],
align_corners=False)
image = tf.squeeze(image, [0])
image = tf.subtract(image, 0.5)
image = tf.multiply(image, 2.0)
return image
当我们在将图像发送到神经网络(更确切地说是GoogLeNet)之前进行图像预处理时,为什么要编写代码:
image = tf.subtract(image, 0.5)
image = tf.multiply(image, 2.0)
这背后的理论是什么?为什么我们需要这个程序。 如果我尝试检查外观,请使用:
plt.imshow(image)
图像无法显示。
答案 0 :(得分:0)
他们这样做是为了将图像从[0,1]重新缩放为[-1,1]。他们希望所有图像使用相同的格式,因此需要执行此步骤。
答案 1 :(得分:0)
进行减法和乘法运算以在-1和1之间缩放图像。