首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用image_dataset_from_directory函数加载所有图像?

如何使用image_dataset_from_directory函数加载所有图像?
EN

Data Science用户
提问于 2021-01-04 06:59:42
回答 1查看 4.2K关注 0票数 1

我正在处理一个多标签分类问题,并面临一些内存问题,因此我将使用Keras image_dataset_from_directory方法作为批处理加载所有图像。如何在此方法上应用多标签技术?

我有这些文件夹:

代码语言:javascript
代码运行次数:0
运行
复制
['Tomato_BacterialSpot', 'Tomato_EarlyBlight', 'Tomato_Healthy', 'Tomato_LateBlight']

我使用下面的代码生成类名。

这里是多标签的示例代码教程,但是他们没有使用image_dataset_from_directory技术。

代码语言:javascript
代码运行次数:0
运行
复制
 label = imagePath.split(os.path.sep)[-2].split("_")

我得到了以下结果,但我不知道如何使用image_dataset_from_directory方法来应用多标签?

  1. BacterialSpot
  2. EarlyBlight
  3. 健康
  4. LateBlight
  5. 番茄
EN

回答 1

Data Science用户

发布于 2021-01-04 10:45:48

你实际上不需要应用类标签,这些并不重要。Keras会自动为您检测到这些信息。它通过研究数据所在的目录来做到这一点。请确保指向所有数据所在的父文件夹。您的数据应采用以下格式:

代码语言:javascript
代码运行次数:0
运行
复制
my_data/
...BacterialSpot/
...EarlyBlight/
...Healthy/
...LateBlight/
...Tomato/

您需要指向的数据源是my_data。以下是一个实现:

代码语言:javascript
代码运行次数:0
运行
复制
train = tf.keras.preprocessing.image_dataset_from_directory(
  'my_data',
  validation_split=0.2,
  subset="training",
  image_size=(128, 128),
  batch_size=128)

val = tf.keras.preprocessing.image_dataset_from_directory(
  'my_data',
  validation_split=0.2,
  subset="validation",
  image_size=(128, 128),
  batch_size=128)

当你运行它时:

代码语言:javascript
代码运行次数:0
运行
复制
Found 3647 files belonging to 1 classes.
Using 2918 files for training.
Found 3647 files belonging to 1 classes.
Using 729 files for validation.

Keras为您自动检测到了这些类。在我的例子中,我只使用了一个类,所以您应该能够看到与您的5个类相关的内容。参见Google的一个示例实现:https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/tutorials/images/classification.ipynb#scrollTo=iscU3UoVJBXj

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/87469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档