Решено: для этой проблемы github (https://github.com/keras-team/keras/issues/3946), при использовании flow_images_from_directory, изображения должны находиться в папке в указанном каталоге (папка в папке). Обнаружено это на основании («Найдено 0 изображений, принадлежащих 0 классам») При попытке запустить этот код в Python. В R сообщение об ошибке не появляется, и Предикат_генератор работает вечно. После помещения изображений в папку (с названием« папка ») в test_dir, предикат_Генератор работал быстро (20 мс / шаг) идала чувственные результаты на изображениях кошек и собак.
Оригинальный пост:
Мы пытаемся использовать точно настроенную модель, чтобы делать прогнозы на немаркированном изображении. В этом примере мы используемМодель взята из Allaire и Chollet's Deep Learning With R (и доступна с их сайта github, ссылка ниже в коде). Проблема, с которой мы сталкиваемся, заключается в том, что, даже делая прогнозы только для одного изображения и работая на компьютере с графическим процессором,Предикат_генератор часть этого кода работает в течение 18 часов без сотрудничестваmpletion.Мы намерены делать прогнозы на ~ 200К изображениях, поэтому нам нужно, чтобы время выполнения было коротким для каждого изображения.
(Примечание: мы думаем, что наш графический процессор задействован, поскольку на его отладку VGG уходит несколько часов для выполнения задачи двоичной классификации с несколькими сотнями обучающих изображений.)
Наш код адаптированиз этого поста:
Как оценить () и предсказать () из данных, подобных генератору, в R keras
Мы пытались с похожими неопределенными результатами во время выполнения,следовать аналогичному примеру:
https://www.kaggle.com/dkoops/keras-r-vgg16-base
Какие изменения нам нужно внести в наш код для генерации прогнозов?Каково разумное ожидаемое время выполнения на изображение (в секундах?)?
Вот наш код:
library(keras)
####load cats and dogs model (taken from: https://github.com/jjallaire/deep-learning-with-r-notebooks)
model <- load_model_hdf5("cats_and_dogs_small_2.h5")
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"
)
#get data from https://www.kaggle.com/c/dogs-vs-cats/data. Put one image into folder test1image
test_dir<-"test1image"
test_generator <- flow_images_from_directory(
test_dir, # Target directory
train_datagen, # Data generator
target_size = c(150, 150), # Resizes all images to 150 × 150
batch_size = 1,
class_mode = "binary",
shuffle = FALSE# binary_crossentropy loss for binary labels
)
num_test_images = 1
y <- predict_generator(model, test_generator, steps=num_test_images,
verbose =1)