Привет! Надеюсь у тебя все хорошо. Сегодня я начал проект, используя Набор данных отвлеченного водителя Kaggle, и я собираюсь записать здесь свой ежедневный прогресс.

Я использую ноутбук Colab, поскольку он очень прост в настройке и ничем не отличается от Jupyter Notebook.

Получение данных из Kaggle

Сначала я попытался использовать Kaggle API в записной книжке, поскольку это был эффективный способ переноса данных в среду Colab. Это не сработало из-за некоторых проблем с путями, поэтому я загрузил файл .zip на свой локальный компьютер, а затем загрузил его на Google Диск.

Размещение данных в папках

Затем мне понадобились разархивированные данные, поэтому я использовал библиотеку zipfile, чтобы распаковать и распаковать все файлы в отдельные папки.

В конце концов, мое файловое дерево выглядело примерно так:

Получение путей к файлам изображений и соответствующих меток

Получение изображений

Это было самое интересное. Здесь я мог бы использовать flow_from_directory() из Keras (поскольку он делает то же самое лучше, чем мой код, и даже предварительно обрабатывает изображения), но я подумал о реализации этого самостоятельно. Хотя мой код не был таким кратким, как упомянутая функция, он помог мне построить собственную логику.

Сначала я получил путь к основному каталогу (поезд, как он назывался в моем случае). Затем я составил список всех имен классов и объединил их оба, чтобы получить пути к подпапкам.

После этого я создал функцию, которая принимает список каталогов и дает путь к каждому изображению в каталогах. Это дало мне все изображения в наборе поезда.

Получение этикеток

Получив пути к файлам изображений, получить их ярлыки оказалось несложно.

Я создал функцию, которая принимает весь путь и базовый путь (весь путь - «/content/imgs/train/c0/img_4037.jpg», а базовый путь - «/ content / imgs / train /») и удаляет базовый путь от всего пути. В результате получится: c0 / img_4037.jpg. Теперь я узнал индекс «/» и разрезал строку до этого индекса. Это привело к «c0».

Функционализация этого процесса

Для будущего использования я превратил весь процесс в функцию. По сути, это тот же процесс в том же порядке, но аккуратно, который можно использовать повторно. Это

Когда мы запускаем эту функцию, мы получаем это

Вывод

Чудесно! Теперь у нас выстроились наши ярлыки и изображения. Завтра я буду предварительно обрабатывать данные и преобразовывать их в форму, которую я могу использовать для моделирования.

Надеюсь, вам понравилось читать этот блог! Пока!