如何在预测中使用重缩放

我在R中训练了一个Keras模型,处理了存储在文件夹中的四类图像。我使用了train_datagen和重缩放功能:

train_datagen = image_data_generator(  rescale = 1/255,  rotation_range = 40,  width_shift_range = 0.2,  height_shift_range = 0.2,  shear_range = 0.2,  zoom_range = 0.2,  horizontal_flip = TRUE,  fill_mode = "nearest")

然后我用以下代码使用我的模型来预测一张新图像,但即使我的训练准确率达到了80%,结果仍然非常差。

model <- load_model_hdf5("my_model.h5")img <- image_load(image, target_size = c(64,64))x <- image_to_array(img)x <- array_reshape(x, c(1, dim(x)))x <- imagenet_preprocess_input(x)predictions <- model %>% predict(x)

我想知道在预测新图像时是否需要像训练时那样进行重缩放处理,还是应该在训练时不进行重缩放?如何在预测中实现重缩放?


回答:

在测试阶段,您应该对数据应用与训练阶段相同的预处理步骤。由于您在训练阶段仅使用了重缩放,因此在测试阶段也只需要进行重缩放处理。因此,删除x <- imagenet_preprocess_input(x),改用x <- x / 255.0

Related Posts

在使用k近邻算法时,有没有办法获取被使用的“邻居”?

我想找到一种方法来确定在我的knn算法中实际使用了哪些…

Theano在Google Colab上无法启用GPU支持

我在尝试使用Theano库训练一个模型。由于我的电脑内…

准确性评分似乎有误

这里是代码: from sklearn.metrics…

Keras Functional API: “错误检查输入时:期望input_1具有4个维度,但得到形状为(X, Y)的数组”

我在尝试使用Keras的fit_generator来训…

如何使用sklearn.datasets.make_classification在指定范围内生成合成数据?

我想为分类问题创建合成数据。我使用了sklearn.d…

如何处理预测时不在训练集中的标签

已关闭。 此问题与编程或软件开发无关。目前不接受回答。…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注