单个预测图像不需要重新缩放?
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 的重新缩放。
如果在训练阶段应用了归一化、均值减法和标准偏差,则需要在测试时进行。
我按照教程使用 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 的重新缩放。
如果在训练阶段应用了归一化、均值减法和标准偏差,则需要在测试时进行。