【问题标题】:Loading in your own Image data with tensorflow and tdfs.ImageFolder使用 tensorflow 和 tdfs.ImageFolder 加载您自己的图像数据
【发布时间】:2021-03-06 13:48:38
【问题描述】:

我想训练 GAN 并生成宠物小精灵的图像。我从互联网上抓取了大约 10000 张本地保存的图像。我的文件夹结构如下:

all_data:
    - train:
        -bulbasaur.png
        -45.png
        -....png
    - test:
        -bulbasaur.png
        -45.png
        -....png
     - validation:
        -bulbasaur.png
        -45.png
        -....png

我尝试通过以下方式加载它:

builder = tfds.ImageFolder(os.path.join(os.getcwd(), "all_data"))
print(builder.info)  # num examples, labels... are automatically calculated
ds = builder.as_dataset(split='train', shuffle_files=True)
tfds.show_examples(ds, builder.info)

但我得到以下错误: ValueError: Unrecognized split test. Subsplit API not yet supported for ImageFolder. Split name should be one of []. 我如何构建数据集有问题吗?从代码 sn-p 可以看出,不同的文件都有完全不同的名称(它们的英文名称或它们的 Pokedex 编号),这是一个问题吗?因为我不想对任何东西进行分类,所以我认为标签并不重要。

另外,如果它有助于从我为构建器获取的输出中拆分信息是空的。

tfds.core.DatasetInfo(
    ....
    supervised_keys=('image', 'label'),
    splits={
    },...
)

提前非常感谢!

【问题讨论】:

  • 检查图像目录的路径。在当前目录中找不到任何文件夹。

标签: python tensorflow tensorflow2.0 tensorflow-datasets generative-adversarial-network


【解决方案1】:

你的文件夹结构应该是这样的;

/content/image_dir/
  train/  
    cat/  
      cat_1.png
      cat_2.png
      cat_3.png
    dog/
      dog_1.png
      dog_2.png
      dog_3.png
  test/
      cat.png
      dog.png

以下代码适用于此结构化目录

import tensorflow as tf
import tensorflow_datasets as tfds

builder = tfds.ImageFolder('/content/image_dir/')
print(builder.info)  # num examples, labels... are automatically calculated
ds = builder.as_dataset(split='train', shuffle_files=True)
tfds.show_examples(ds, builder.info)  

【讨论】:

    猜你喜欢
    • 2018-08-06
    • 2018-05-03
    • 1970-01-01
    • 2020-11-16
    • 2017-08-27
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    • 2022-12-23
    相关资源
    最近更新 更多