r - 如何在预测中使用重新缩放
问题描述
我在 R 下训练我的 Keras 模型,将 4 类图像存储在文件夹中。我使用 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
.
推荐阅读
- firebase - 从 firebase-React-Native 渲染的问题
- apache-spark - 创建数据库火花sql
- javascript - 在 Eleventy 中执行小型客户端 JavaScript 的最佳方式是什么?
- xml - 使用 xslt 删除特定元素开头的空格或文本之间的连续空格
- flutter - Firestore中的Flutter dart更新数组
- firebase - 我的 Pdf 文档没有下载或打开,因为在颤动中下载后打开了图像文件
- sql - 根据另一列中的值比较一列中的两个值
- python - 按组计算几何平均值
- sql - 需要修复用于创建视图的 SQL 查询
- javascript - 返回具有特定键的对象数组