【问题标题】:Not able to load a custom dataset无法加载自定义数据集
【发布时间】:2019-02-26 09:46:29
【问题描述】:

我想在 keras 中训练一个 CNN 分类器,但我是自定义数据集。我已经创建了 CNN 模型,但我对如何将我的数据集输入到训练集、有效集和测试集完全感到困惑。我是深度学习的新手。我有 7 种类型的类,即 ['A','C','F','L','N','R','V'],但这些都包含在图像名称中。我的图像名称为MLII_C_1.jpeg or V1_C_1.jpeg。图像名称中的中间字母给了我它所属的类。如何加载我的图像?并按目标标签制作。请有人帮助我。

【问题讨论】:

  • 这个问题太笼统,无法直接回答。查看glob 库中的glob 方法和imread 方法

标签: python numpy keras deep-learning dataset


【解决方案1】:

我相信ImageDataGenerator() 是最简单的方法之一, 假设您将数据(图像)分为以下层次结构中的训练、验证和测试:

train-| class1
      | class2 
      . 
      .
      | classN 


valid-| class1
      | class2 
      . 
      .
      | classN 


test- | class1
      | class2 
      . 
      .
      | classN 

然后在python中通过指定路径开始:

from keras.preprocessing.image import ImageDataGenerator

train_path = "Path"
valid_path = "Path"
test_path =  "Path"

然后简单地使用这个:

trainBatches = ImageDataGenerator().flow_from_directory(train_path, target_size=(224,224), classes=['class1', 'class2', .. , 'classn'], batch_size=64)
valBatches = ImageDataGenerator().flow_from_directory(valid_path, target_size=(224,224), classes=['class1', 'class2', .. , 'classn'], batch_size=32)
testBatches = ImageDataGenerator().flow_from_directory(test_path, target_size=(224,224), classes=['class1', 'class2', .. , 'classn'], batch_size=32)

【讨论】:

  • 请记住,您必须在此处编写所有类 'classes=['class1', 'class2', .. , 'classn']',在您的情况下:classes=[' class1'、'class2'、'class3'、'class4'、'class5'、'class6'、'class7']
  • 如何为每个图像创建目标标签,而且我有两种类型的图像,例如 MVII_C_1.jpg 和 V2_C_1.jpg 都属于“C”类,但如何在你的代码。
  • 您可以遍历文件并检查名称是否包含字母“C”然后保存在文件夹 C 中,这是一个单独的问题,您必须查找或为其创建新线程.
猜你喜欢
  • 2011-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-03
  • 1970-01-01
  • 2019-11-08
相关资源
最近更新 更多