Как использовать масштабирование в прогнозе

Я тренирую свою модель Keras под R с 4 классами хранения изображений в папках. Я использую train_datagen и rescale:

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)

Я хотел бы знать, нужно ли мне изменять масштаб моего нового изображения, как это было во время тренировки, или мне нужно тренироваться без изменения масштаба? Как реализовать масштабирование в прогнозе?


person Laurent    schedule 13.08.2019    source источник


Ответы (1)


На этапе тестирования вы должны применить к своим данным те же шаги предварительной обработки, которые вы использовали на этапе обучения. Поскольку вы использовали масштабирование только на этапе обучения, вам нужно сделать это только на этапе тестирования. Поэтому удалите x <- imagenet_preprocess_input(x) и вместо этого используйте x <- x / 255.0.

person today    schedule 13.08.2019