【发布时间】:2020-09-10 13:22:55
【问题描述】:
我是 CNN 的新手,我需要构建一个管道来加载图像并让它们为 CNN 做好准备。问题是我需要构建一个由图像形成的数据集。图像分为三类:COVID-19、健康肺和肺炎。我拥有的文件是:
- 1 个文件夹,其中包含带有 covid-19 的肺部图像
- 1 个包含健康肺部图像的文件夹
- 1 个包含肺炎图像的文件夹
- 1 个 .txt 文件,其中包含将形成训练数据集的所有图像
- 1 个 .txt 文件,其中包含将形成验证数据集的所有图像
- 1 个 .txt 文件,其中包含将形成文本数据集的所有图像
我一直在互联网上搜索,但我没有找到一种方法来构建由所有图像组成的数据集,甚至没有找到如何将它们与 .txt 文件相关联并构建相关的训练、测试和验证数据集。有什么建议吗?请在下面找到 .txt 文件的结构作为示例:
2 PNEUMONIA/person888_bacteria_2812.jpeg
2 PNEUMONIA/person1209_bacteria_3161.jpeg
2 PNEUMONIA/person1718_bacteria_4540.jpeg
2 PNEUMONIA/person549_bacteria_2303.jpeg
2 PNEUMONIA/person831_bacteria_2742.jpeg
2 PNEUMONIA/person1571_bacteria_4108.jpeg
2 PNEUMONIA/person1310_bacteria_3300.jpeg
【问题讨论】:
-
您可以编写自己的自定义数据生成器,但如果您不需要任何特殊的扩充或类似的东西,您可以使用 Keras 的
ImageDataGenerator类。flow_from_directory方法是您要搜索的方法(循环子目录,将每个子目录视为不同的类)。 link_to_documentation -
这看起来很适合创建一个完整的图像数据集!完成此操作后,我需要创建一个用于训练、验证和测试的数据集,其中包含 .txt 文件中指定的图像。如何读取数据集,将其链接到 .txt 文件并创建一个新文件?
-
3个选项:(1)如果你想使用这个类,你可以使用“validation_split”参数来设置要设置为验证集的数据量。 (2)但是如果您已经选择了自己的拆分并想使用它,您可以使用
flow_from_dataframe方法,但您需要自己创建data_frame(3)自己保存测试和训练图像在不同的位置(并保持每个标签的子目录),并为每个数据角色创建不同的生成器。
标签: python tensorflow keras deep-learning conv-neural-network