Я был новичком в глубоком обучении и только что узнал о сверточных нейронных сетях. Будучи очень взволнованным, чтобы применить свои новые знания, я искал самые современные практики в области компьютерного зрения. Мое волнение достигло апогея, когда я узнал, что теперь трансформеры зрения превзошли CNN в компьютерном зрении.

Теперь я был в затруднительном положении, так как хотел применить свои знания о CNN, но также хотел работать над современной технологией, и именно тогда я обнаружил эту исследовательскую работу:

Конвнет на 2020-е годы

CVPR 2022· Чжуан Лю, Ханьцзы Мао, Чао-юань Ву, Кристоф Файхтенхофер, Тревор Даррелл, Сайнин Се



Papers with Code — ConvNet для 2020-х годов
«Бурные 20-е
визуального распознавания начались с появления Vision Transformers (ViTs), которые быстро… paperswithcode.com»



В этой статье они попытались изучить и пересмотреть эффективность CNN. ResNet-50 реконструируется и модифицируется в структуру, которая напоминает структуру Vision Transformer, но представляет собой чистую CNN. Модель дает компетентные результаты с преобразователями, сохраняя при этом простоту CNN.

Следовательно, эта модель идеально подходила для моих потребностей в обучении, и я решил запустить ее в своей системе.

Чтение и понимание статьи

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

Затем я нашел официальный репозиторий Github с кодом реализации из статьи.



Скачиваю репозиторий Github, пытаюсь запустить модель на своем устройстве

Официальный репозиторий Github содержит файл Install.md, в котором есть все инструкции, а также инструкции по установке для запуска модели. Итак, я провел настройку в соответствии с инструкциями, а затем запустил команду для обучения модели.



Команды для запуска модели доступны в файле Training.md.



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

Запуск на блокноте colab

Пытаясь запустить модель в системе и неоднократно просматривая репозиторий реализации, я нашел ссылку на демонстрацию модели Colab. Создатели представили демонстрацию тонкой настройки крошечной модели ConvNeXt на наборе данных CIFAR-10 в качестве ноутбука Colab. В этой демонстрации они также предоставляют доступ к Weights & Biases, удивительному сервису для документирования и хранения журналов ваших тренировок и тестовых прогонов.





Итак, наконец, я запустил демонстрационную записную книжку и получил точность около 95 процентов на наборе данных cifar-10 после обучения в течение 10 эпох.

Позже я точно настроил предварительно обученные модели ConvNeXt Imagenet 22k, а также модели small, base, big и xlarge. После 12 эпох все они дали первую точность около 96 процентов.

С ресурсами, которые поставляются с бесплатной версией Google Colab, можно запустить только крошечную и маленькую модель. Для обучения других моделей мне пришлось купить 100 дополнительных вычислительных блоков.

Что я узнал

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

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

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

Я считаю, что модели ConvNeXt являются отличной альтернативой преобразователям Vision, поскольку они обеспечивают эффективность преобразователя, сохраняя при этом простоту архитектуры CNN. Кроме того, CNN также требует меньше памяти для обучения, чем преобразователь, следовательно, более доступен для использования.

Я считаю, что над этими моделями будет проделана большая работа, и я с нетерпением жду новых реализаций этой статьи!