трансферная практика обучения для различения кошек и собак - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь практиковать переводное обучение самостоятельно.

Я пытаюсь подсчитать количество файлов каждой кошки и собаки (каждые 12500 картинок для кошки и собаки с общим количеством 25000 картинок).

Вот мой код. Код

А вот мой путь к папке с изображениями введите описание изображения здесь .

IЯ думал, что это простой код, но все еще не мог понять, почему я продолжаю получать (0,0) в своем кодировании (должно быть (12500 файлов cat, 12500 файлов собак)): (.

1 Ответ

1 голос
/ 23 октября 2019

Используйте os.path.join() внутри glob.glob(). Кроме того, если все ваши изображения имеют определенное расширение (например, jpg ), вы можете заменить '*.*' на '*.jpg*', например.

Solution

import os, glob

files = glob.glob(os.path.join(path,'train/*.*'))

На самом деле, вы можете просто сделать следующее, используя только библиотеку os, так как вы не выбираете какой-либо конкретный тип расширения файла.

import os
files = os.listdir(os.path.join(path,'train'))

Некоторые объяснения

Метод os.path.join() здесь помогает вам объединить несколько папок вместе, чтобы создать путь. Это будет работать независимо от того, работаете ли вы в системе Windows / Mac / Linux. Но для окон разделитель пути равен \, а для Mac / Linux - /. Таким образом, отсутствие os.path.join() может создать неразрешимый путь для ОС. Я бы использовал glob.glob, когда я заинтересован в получении некоторых конкретных типов (расширений) файлов. Но glob.glob(path) требует правильного пути для работы. В моем решении os.path.join() создает этот путь из компонентов пути и передает его в glob.glob().

Для большей ясности предлагаю ознакомиться с документацией для os.path.join и glob.glob.

Также см. pathlib модуль для манипуляции путями в качестве альтернативы os.path.join().

...