【问题标题】:Making a custom generator in keras for prediction在 keras 中制作用于预测的自定义生成器
【发布时间】:2018-04-04 02:57:20
【问题描述】:

我正在对包含约 100 万张图像的大型数据库进行预测。对于每个图像,我都有代码可以将图像分割成约 200 个较小的图像,并将它们作为 numpy 数组传递到 keras 中进行预测。

我想避免对硬盘进行不必要的读写,所以我不想保存所有这些较小的图像并使用 flow_from_directory。相反,我希望读取一张图片,用我现有的代码将其分割,然后将较小的图片作为一个批处理全部传递到我的网络中,然后对许多图片重复这个过程。

这是 Keras 可以处理的吗?如果是这样,我怀疑我需要制作自己的自定义生成器,但我不确定如何做到这一点,而且我找不到任何好的例子。有人有如何实现自定义生成器的示例吗?

【问题讨论】:

  • 您是否需要生成器来进行训练或在训练结束时进行测试预测?
  • 只是预测,训练已经完成。

标签: python keras generator


【解决方案1】:

试试这样的:

dpath='path to test folder'
ids=os.listdir(dpath+"test/")
for id in ids:
    x_batch=[]
    img = cv2.imread(dpath+'test/{}.jpg'.format(id))  #jpg if image in jpg format
    img = cv2.resize(img, (224, 224), interpolation = cv2.INTER_CUBIC) #if resize is needed

    chopped_image= your code that chops image
        x_batch.append(chopped_image)

    x_batch = np.array(x_batch, np.float32) 
    preds=(model.predict_on_batch(x_batch))
    if first==1:
        predsA=preds.copy()
        first=0
    else:
        predsA=np.append(predsA,preds,axis=0)     

【讨论】:

  • 是的,这行得通!它比我预期的要简单得多,所以显然我想多了。
猜你喜欢
  • 1970-01-01
  • 2018-01-25
  • 2019-03-17
  • 2020-12-10
  • 2020-10-12
  • 1970-01-01
  • 1970-01-01
  • 2020-08-22
  • 1970-01-01
相关资源
最近更新 更多