Мультиклассовая классификация изображений FastAI на основе TPU в PyTorch

машинное обучение глубокое обучение компьютерное зрение NLP

Автор | ПРУДХВИ ВАРМА Компилировать|ВКонтакте Источник | Аналитика Indiamag

Компьютерное зрение является одной из самых популярных областей искусственного интеллекта из-за его широкого спектра приложений. В некоторых областях они даже превосходят человеческий интеллект в быстром и точном распознавании изображений.

В этой статье мы продемонстрируем одно из самых популярных приложений компьютерного зрения — задачу мультиклассовой классификации изображений, используя библиотеку fastAI и TPU в качестве аппаратного ускорителя. TPU, или Tensor Processing Unit, может ускорить процесс обучения моделей глубокого обучения.

Темы, затронутые в этой статье:

  • Мультиклассовая классификация изображений

  • Часто используемые модели классификации изображений

  • Используйте TPU и реализуйте в PyTorch

Мультиклассовая классификация изображений

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

Общие модели классификации изображений

Мы можем использовать VGG-16/19, Resnet, Inception v1, v2, v3, Wideresnt, Resnext, DenseNet и т. д., которые являются расширенными вариантами сверточных нейронных сетей. Это популярные сети классификации изображений, которые используются в качестве основы многих современных алгоритмов обнаружения и сегментации объектов.

Классификация изображений на основе библиотеки FasAI и оборудования TPU

Мы проведем этот этап работы по следующим направлениям:

1. Выберите аппаратный ускоритель.

Здесь мы используем Google Colab для реализации. Чтобы использовать TPU в Google Colab, нам нужно открыть опцию редактирования и откройте настройки ноутбука и измените аппаратный ускоритель в TPU.

Вы можете проверить, использует ли ваш ноутбук TPU, запустив приведенный ниже фрагмент кода.

import os
assert os.environ['COLAB_TPU_ADDR']
Path = 'grpc://'+os.environ['COLAB_TPU_ADDR']
print('TPU Address:', Path)

2. Загрузите библиотеку FastAI

В приведенном ниже фрагменте кода мы импортируем библиотеку fastAI.

from fastai.vision import *

from fastai.metrics import error_rate, accuracy

3. Пользовательские наборы данных

В приведенном ниже фрагменте кода вы также можете поэкспериментировать с пользовательским набором данных.

PATH = '/content/images/dataset'

np.random.seed(24)

tfms = get_transforms(do_flip=True)

data = ImageDataBunch.from_folder(PATH, valid_pct=0.2, ds_tfms=tfms, size=299, bs=16).normalize(imagenet_stats)

data.show_batch(rows=4, figsize=(8, 8))

4. Загрузите предварительно обученную модель глубокого обучения

В приведенном ниже фрагменте кода мы импортируем модель batch_normalization VGG-19. Мы будем использовать это как пример модуля обучения компьютерному зрению fastAI.

learn = cnn_learner(data, models.vgg19_bn, metrics=accuracy)

5. Обучите модель

В приведенном ниже фрагменте кода мы пытаемся использовать эпоху.

learn.fit_one_cycle(1)

В выводе мы видим, что мы получили точность 0,99, и это заняло 1 минуту и ​​2 секунды.

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

con_matrix = ClassificationInterpretation.from_learner(learn)

con_matrix.plot_confusion_matrix()

6. Используйте модель, чтобы делать прогнозы

В приведенном ниже фрагменте кода мы можем протестировать собственное изображение, указав путь к изображению в test_your_image.

test_your_image='/content/images (3).jpg'

test = open_image(test_your_image)

test.show()

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

learn.predict(test)

Как мы видели в приведенном выше выводе, модель предсказала метку класса входного изображения, она принадлежит к категории «цветок».

в заключении

В приведенной выше демонстрации мы реализовали классификацию изображений с несколькими классами, используя библиотеку fastAI с TPU и предварительно обученную модель VGG-19. В этой задаче мы достигли точности 0,99 при классификации проверочного набора данных.

Оригинальная ссылка:

Добро пожаловать на сайт блога Panchuang AI:panchuang.net/

sklearn машинное обучение китайские официальные документы:sklearn123.com/

Добро пожаловать на станцию ​​сводки ресурсов блога Panchuang:docs.panchuang.net/