«Покемон» был одним из лучших и самых любимых мультсериалов начала 2000-х. Я ничем не отличаюсь и люблю покемонов, как и все остальные. С пандемией вируса Короны в действии, охватывающей всех в их домах. Старые шоу снова в действии, как и Pokemon, возвращая ностальгию моего детства. Брок использовал специальное устройство под названием Pokedox, которое раньше помогало идентифицировать покемонов , и теперь у меня в голове был проект кулинарии.

Почему Fastai ??

Fastai - это синоним передачи обучения и достижения отличных результатов за короткое время. Курс действительно оправдывает свое название. Трансферное обучение и экспериментализм - две ключевые идеи, которые Джереми Ховард постоянно подчеркивает, чтобы быть эффективными специалистами по машинному обучению.

Fastai позволяет нам работать над нашими идеями, а не тратить время на то, как мы это будем делать. Он использует подход сверху вниз, то есть начать играть в футбол, а затем изучить науку, лежащую в основе этого.

Давайте начнем!

Наш первый шаг - собрать данные для нашего классификатора. Вы можете использовать Kaggle для набора данных или создать его для себя вручную. Набор данных, который я использовал, содержит 7000+ изображений 150 различных покемонов, каждый из которых имеет 35-40 изображений в папке покемонов.

Наш первый шаг - просто импортировать все библиотеки, которые нам понадобятся, из библиотеки Fastai.

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

Это хранит каталог всех файлов в нашем наборе данных. Вкратце, эти 2 строки кода хранят все подкаталоги в папке пути и отображают их. Основное различие между обработкой наборов данных классификации изображений заключается в способе хранения меток. В этом конкретном наборе данных метки хранятся в самом имени папки. Нам нужно будет извлечь их, чтобы можно было классифицировать изображения по правильным категориям. К счастью, в библиотеке fastai есть удобная функция, созданная именно для этого, ImageDataBunch.from_folder. Я указал расположение набора данных с помощью * train = ”.” * И сделал набор проверки из 20% основной набор и размер изображения 128. Здесь библиотека Fastai Image автоматически предварительно обрабатывает изображение до размера 128.

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

Теперь приступим к обучению нашей модели. Мы будем использовать магистраль сверточной сети и полностью подключенную головку с одним скрытым слоем в качестве классификатора. Здесь мы будем использовать архитектуру Resnet18. Не знаете, что это значит? Не волнуйтесь, в следующих публикациях мы углубимся в подробности. На данный момент вам нужно знать, что мы строим модель, которая будет принимать изображения в качестве входных данных и выводить прогнозируемую вероятность для каждой из категорий (в этом случае у нее будет 150 выходных данных).

Мы используем LR Finder, который помогает нам определить лучшую скорость обучения для нашей модели на данный момент, и здесь, как вы видите, использование LRof 8e-3 даст лучший результат.

Мы пытаемся подогнать модель к набору из 5 эпох с LR 8e-3.

Мы размораживаем модель и обучаем всю модель, так как были больше сосредоточены на конечном результате, и это могло бы улучшить результаты без переобучения, и мы снова находим LR и используем LR для соответствия еще двум следующим циклам.

Замечательно! мы уже достигли точности 90% с этой небольшой моделью и за такой короткий промежуток времени.