Описание
Этот репозиторий на GitHub, locuslab/convmixer, содержит реализацию ConvMixer — нейронной сети, описанной в статье ICLR 2022 под названием "Patches Are All You Need? 🤷" Ашера Трокмана и Зико Колтера. Основной код модели ConvMixer находится в файле `convmixer.py`. Проект использует фреймворк `pytorch-image-models` (timm) для обучения и включает модификации этого фреймворка для поддержки ConvMixer.
Читать далее
Ключевые модификации в рамках фреймворка `pytorch-image-models` включают добавление файла `timm/models/convmixer.py`, обновления в `timm/models/__init__.py` и интеграцию планировщика скорости обучения "OneCycle" с соответствующими файлами планировщика. Хотя планировщик OneCycle отмечен, авторы предполагают, что стандартные косинусные планировщики также могут быть эффективны для обучения ConvMixer.
Репозиторий предлагает предварительно обученные веса моделей для нескольких вариантов ConvMixer, включая ConvMixer-1536/20, ConvMixer-768/32 и ConvMixer-1024/20, с подробной информацией об их размере ядра, размере патча и размере файла. Предоставлены инструкции и примеры команд для оценки этих моделей на таких наборах данных, как ImageNet-1k, с целью достижения высокой точности. Например, ожидается, что ConvMixer-1536/20 достигнет 81,37% точности на валидационном наборе ImageNet-1k.
Также подробно описано обучение ConvMixer с примером команды для распределенного обучения на многопроцессорной установке с использованием ImageNet-1k. Команда обучения указывает гиперпараметры, такие как размер пакета, количество рабочих, оптимизатор, эпохи, планировщик скорости обучения, методы аугментации (например, RandAugment, CutMix, MixUp) и размер входных данных. Репозиторий также включает упрощенную, «твитабельную» версию архитектуры ConvMixer на Python.
Кроме того, предоставлена ссылка на отдельный репозиторий для обучения ConvMixer на CIFAR-10, а также даны рекомендации по настройке параметров обучения, таких как `--scale`, для меньших размеров входных данных. Проект является открытым исходным кодом под лицензией MIT, что способствует участию сообщества и дальнейшему развитию.
- КатегорияИИ-модели и LLM
- Модель ценообразованияОткрытый код
- РазвёртываниеОблако, На своём сервере
- ПлатформыВеб
Основные функции ConvMixer
Реализация архитектуры нейронной сети ConvMixer
Основано на исследовательской статье "Patches Are All You Need? 🤷"
Включает код для обучения ConvMixer
Предоставляет предварительно обученные веса моделей для оценки
Поддерживает обучение на наборах данных ImageNet-1k и CIFAR-10
Использует фреймворк `pytorch-image-models` (timm)
Включает реализацию планировщика скорости обучения "OneCycle"
Предлагает примеры команд для оценки моделей
Включает примеры команд для распределенного обучения
Содержит упрощенную, «твитабельную» версию модели ConvMixer
Веса моделей доступны для скачивания
Открытый исходный код под лицензией MIT
Начало работы с ConvMixer
Доступ к модели: Клонируйте репозиторий GitHub на свой локальный компьютер.
Настройка среды: Установите необходимые библиотеки Python, включая PyTorch и `pytorch-image-models`.
Загрузка модели: Создайте экземпляр модели ConvMixer, используя предоставленные скрипты Python.
Оценка модели: Используйте скрипт `validate.py` с загруженными весами и валидационным набором данных.
Обучение модели: Выполните скрипт `distributed_train.sh` с указанными путями к наборам данных и параметрами обучения.
Интеграция: Адаптируйте код `convmixer.py` для пользовательских циклов обучения или конвейеров вывода.
Варианты использования ConvMixer
- Классификация изображений
- Оценка моделей
- Обучение пользовательских моделей
- Исследования и разработки
- Трансферное обучение
- Бенчмаркинг








