在Keras中永远运行

时间:2019-02-26 15:37:59

标签: r keras

已解决:根据这个github问题(https://github.com/keras-team/keras/issues/3946),使用flow_images_from_directory时,图像必须位于指定目录内的文件夹中(文件夹内的文件夹)。尝试在Python中运行此代码时,根据(“找到属于0类的0个图像”)消息发现了此消息。在R中,不会出现任何错误消息,并且predict_generator会永远运行。将图像放入test_dir中的文件夹(标题为“文件夹”)后,predict_generator迅速工作(20毫秒/步),并在猫和狗的图像上给出了有意义的结果。

原始帖子:

我们正在尝试使用微调的模型对未标记的图像进行预测。在此示例中,我们使用的模型取自Allaire和Chollet的Deep Learning With R(可从其github站点获得,下面的代码链接)。我们遇到的问题是,即使仅对一张图像进行预测,并在具有GPU的计算机上工作,该代码的predict_generator部分仍要运行18个小时才能完成。我们打算对约200K张图像进行预测,因此我们需要每个图像较短的运行时间。

(注意:我们认为我们的GPU参与了,基于它花费了几个小时来微调VGG来完成具有数百张训练图像的二进制分类任务。)

我们的代码改编自这篇文章:

How to evaluate() and predict() from generator like data in 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)

0 个答案:

没有答案