单个预测图像不需要重新缩放?

Single Prediction Image doesn't need to be rescaled?

我按照教程使用 Keras 制作了我的第一个卷积神经网络,但我有一个关于重新缩放步骤的小问题。

所以当我们导入训练集和测试集时,我们创建了一个 tf.keras.preprocessing.image.ImageDataGenerator class 的实例并将其用作:

train_datagen = ImageDataGenerator(rescale=1/255)

以及其他一些增强参数。我的理解是,我们使用 rescale 参数对导入的图像的像素值进行归一化处理。

但是当我们通过 CNN 将单个图像加载到 运行 时,我们会写一些类似的东西(代码来自 keras docs):

image = tf.keras.preprocessing.image.load_img(image_path)
input_arr = keras.preprocessing.image.img_to_array(image)
input_arr = np.array([input_arr])  # Convert single image to a batch.
predictions = model.predict(input_arr)

我的问题是,我在任何地方都看不到单个输入图像 rescaled。它是隐式完成的,还是不需要实际执行重新缩放?如果是后者,那为什么会这样?

谢谢!

图像应该被归一化,如果在训练期间完成,它应该除以 255。网络将无法解释。

此外,当我们使用 test_datagen 时,我们对预测生成器应用 1/255 的重新缩放。

如果在训练阶段应用了归一化、均值减法和标准偏差,则需要在测试时进行。