Цель серии: Прохождение урока 1 курса глубокого обучения fast.ai

Курс глубокого обучения Fast.ai — один из лучших и бесплатных ресурсов для начала работы с глубоким обучением. Их цель — помочь нанять экспертов в предметной области, предпринимателей и других лиц для решения широкого круга проблем с использованием глубокого обучения.

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

Единственным предварительным условием является то, что у вас есть как минимум год опыта программирования и знакомство с python и некоторыми его библиотеками, такими как numpy, pandas и т. д.

Тем не менее, моя цель в этой серии статей — помочь любому, кто интересуется глубоким обучением, начать работу, не препятствуя глубокому пониманию предпосылок. Однако содержание здесь будет охватывать только библиотеку fastai, так как ее документация оставляет желать лучшего. Однако подробную информацию о командах python magic, операторах импорта, командах оболочки и т. д. можно найти с помощью быстрого поиска в Google.

Начнем вечеринку.

Архитектура

архив = resnet34

Это определяет архитектуру, которую мы планируем использовать для обучения нашей модели. Resnet34 — это предварительно обученная модель, которая использовалась для решения другой задачи. Эта модель была обучена на наборе данных ImageNet (1,2 миллиона изображений и 1000 классов). Это сверточная нейронная сеть, то есть тип нейронной сети, который используется для построения современных моделей компьютерного зрения. Это будет использоваться в качестве отправной точки нашей сети. Он доступен по адресу https://github.com/pytorch/vision/blob/master/torchvision/models/resnet.py.

data = ImageClassifierData.from_paths(PATH, tfms=tfms_from_model(arch, sz))

from_paths — это функция класса ImageClassifierData в https://github.com/fastai/fastai/blob/master/fastai/dataset.py

Этот метод выдает ошибку утверждения, если tfms не установлен.

---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-3-7332bb1b8ef8> in <module>()
----> 1 assert not(tfms[0] is None or tfms[1] is None), "please provide transformations for your train and validation sets"

AssertionError: please provide transformations for your train and validation sets

trn содержит кортеж из 3 элементов:

  • Список обучающих изображений
  • Ярлыки обучения
  • Ярлыки классов

Точно так же переменная val — это еще один кортеж, содержащий проверочные изображения, проверочные метки и метки класса.

Подготовка набора данных

Переменная "datasets" содержит список fastai.dataset.FilesIndexArrayDataset, который в конечном итоге расширяет torch.utils.data.Dataset.

Наконец, экземпляр класса ImageClassifierData с входными данными подготавливается, преобразуется и возвращается.

ConvLearner

learn = ConvLearner.pretrained(arch, data, precompute=False)

Класс, используемый для обучения выбранной поддерживаемой модели ковнета. Например. Реснет-34 и др.

Аргументы:

  • data: обучающие данные для модели.
  • модели: модели архитектуры для обучения
  • precompute: логическое значение для повторного использования предварительно вычисленных активаций.
  • **kwargs: параметры из класса Learner()

Подходит для модели

learn.fit(0,01, 3)

Наконец, модель подобрана с помощью

  • скорость обучения = 0,01
  • количество циклов = 3

Наша модель собак против кошек теперь обучена и дает самые современные результаты.

Если вам понравился пост или он оказался полезным, удерживайте значок аплодисментов столько, сколько хотите. Поделитесь им с друзьями, чтобы помочь им лучше понять курс. Основываясь на положительных отзывах, я буду мотивирован пройти весь курс fast.ai. А пока мир.