"RuntimeError: Найдено 0 файлов во вложенных папках" .. Ошибка о вложенной папке в Pytorch - PullRequest
0 голосов
/ 10 февраля 2019

В настоящее время я использую Window 10, Jupyter Notebook, Pytorch 1.0, Python 3.6.x.

Сначала я подтверждаю правильный путь к файлам, используя этот код: print(os.listdir('./Dataset/images/')).

и я могу проверить, что этот путь правильный.

но я встретил Ошибка :

RuntimeError: Найдено 0 файлов во вложенных папках: ./Набор данных / images / Поддерживаемые расширения: .jpg, .jpeg, .png, .ppm, .bmp, .pgm, .tif "

В чем дело? Не могли бы вы предложить решение?

Я пытался ./dataset/1/images, как этот метод, но результат был тот же ....

img_dir = './Dataset/images/'
img_data = torchvision.datasets.ImageFolder(os.path.join(img_dir), transforms.Compose([
            transforms.Scale(256),
            transforms.RandomResizedCrop(224),
            transforms.RandomHorizontalFlip(),
            transforms.ToTensor(),
            ]))
img_batch = data.DataLoader(img_data, batch_size=batch_size,
                               shuffle = True, drop_last=True)

Ответы [ 4 ]

0 голосов
/ 06 апреля 2019

Я столкнулся с той же проблемой при использовании celebA, включая 200 000 изображений.Как мы видим, есть много изображений.Но в небольшом примере ситуации (я попробовал 20 изображений), я проверил, ошибка не возникнет, что означает, что мы можем успешно читать изображения.Но когда число растет, мы должны использовать другие методы.

Я решил проблему в соответствии с этим сайтом.Благодаря QimingChen решение Github

Просто, добавление еще одной папки с именем 1 (/ train / ---> train / 1 /) вИсходная папка позволит нашей программе работать, без изменения пути.Это связано с тем, что при работе с большими наборами данных изображения следует сортировать в подпапках разных классов.

Оригинальный ответ на Github:

Допустим, я собираюсь использовать ImageFolder (" / train / ") для чтения файлов jpg в папке train.Структура файла: / train / - 1.jpg - 2.jpg - 3.jpg

Я не смог загрузить их, что привело к ошибкам: RuntimeError: Найдено 0 изображений во вложенных папках: ./dataПоддерживаемые расширения изображений: .jpg, .JPG, .jpeg, .JPEG, .png, .PNG, .ppm, .PPM, .bmp, .BMP

Я прочитал решение выше и пробовал десятки раз,Когда я изменил структуру на / train / 1 /

- 1.jpg - 2.jpg - 3.jpg

Но чтение в кодевсе еще - ImageFolder ("/ train /"), ЭТО РАБОТАЕТ.

Кажется, что программа имеет тенденцию рекурсивно читать файлы, что удобно в некоторых случаях.

Надеюсь, это поможет!!

0 голосов
/ 11 февраля 2019

Можете ли вы опубликовать структуру ваших файлов?В вашем случае это должно быть:

img_dir
|_class1
  |_a.jpg
  |_b.jpg
|_class2
  |_a.jpg
  |_b.jpg
...
0 голосов
/ 27 февраля 2019

В соответствии с правилами DataLoader в pytorch вы должны выбрать лучший путь к изображению.Это означает, что если ваши изображения находятся в './Dataset/images/', путь к загрузчику данных должен быть './Dataset'.Я надеюсь, что это может исправить вашу ошибку.

0 голосов
/ 10 февраля 2019

См. Документацию набора данных ImageFolder, чтобы увидеть, как этот класс набора данных ожидает организации изображений в подпапках в `./Dataset/images 'в соответствии с классами изображений.Убедитесь, что ваши изображения соответствуют этому порядку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...