Descrição
Este repositório do GitHub, locuslab/convmixer, hospeda a implementação do ConvMixer, uma arquitetura de rede neural detalhada no artigo da ICLR 2022 intitulado "Patches Are All You Need? 🤷" por Asher Trockman e Zico Kolter. O código principal para o modelo ConvMixer está localizado em `convmixer.py`. O projeto utiliza o framework `pytorch-image-models` (timm) para treinamento e inclui modificações neste framework para suportar ConvMixers.
Ler mais
As principais modificações dentro do framework `pytorch-image-models` incluem a adição de `timm/models/convmixer.py`, atualizações em `timm/models/__init__.py` e a integração de um cronograma de taxa de aprendizado "OneCycle" com os arquivos de agendamento correspondentes. Embora o cronograma OneCycle seja notado, os autores sugerem que cronogramas cosenos padrão também poderiam ser eficazes para treinar ConvMixers.
O repositório oferece pesos de modelo pré-treinados para várias variantes do ConvMixer, incluindo ConvMixer-1536/20, ConvMixer-768/32 e ConvMixer-1024/20, com detalhes sobre seu tamanho de kernel, tamanho de patch e tamanho de arquivo. Instruções e comandos de exemplo são fornecidos para avaliar esses modelos em conjuntos de dados como ImageNet-1k, visando alta precisão. Por exemplo, espera-se que o ConvMixer-1536/20 atinja 81,37% de precisão na validação do ImageNet-1k.
O treinamento de ConvMixers também é detalhado, com um comando de exemplo para treinamento distribuído em uma configuração multi-GPU usando ImageNet-1k. O comando de treinamento especifica hiperparâmetros como tamanho do lote, número de workers, otimizador, épocas, cronograma de taxa de aprendizado, técnicas de aumento (por exemplo, RandAugment, CutMix, MixUp) e tamanho de entrada. O repositório também inclui uma versão simplificada e "tweetável" da arquitetura ConvMixer em Python.
Adicionalmente, um repositório separado para treinar ConvMixers no CIFAR-10 é vinculado, e conselhos são dados sobre o ajuste de parâmetros de treinamento como `--scale` para tamanhos de entrada menores. O projeto é de código aberto sob a licença MIT, incentivando a contribuição da comunidade e o desenvolvimento futuro.
- CategoriaModelos de IA e LLMs
- Modelo de preçosCódigo aberto
- ImplantaçãoNuvem, Auto-hospedado
- PlataformasWeb
Recursos principais de ConvMixer
Implementação da arquitetura de rede neural ConvMixer
Baseado no artigo de pesquisa "Patches Are All You Need? 🤷"
Inclui código para treinar ConvMixers
Fornece pesos de modelo pré-treinados para avaliação
Suporta treinamento nos conjuntos de dados ImageNet-1k e CIFAR-10
Utiliza o framework `pytorch-image-models` (timm)
Inclui uma implementação do agendador de taxa de aprendizado "OneCycle"
Oferece comandos de exemplo para avaliação de modelos
Inclui comandos de exemplo para treinamento distribuído
Contém uma versão simplificada e "tweetável" do modelo ConvMixer
Pesos de modelo disponíveis para download
Código aberto sob a licença MIT
Primeiros passos com ConvMixer
Acessar Modelo: Clone o repositório GitHub para sua máquina local.
Configurar Ambiente: Instale as bibliotecas Python necessárias, incluindo PyTorch e `pytorch-image-models`.
Carregar Modelo: Instancie um modelo ConvMixer usando os scripts Python fornecidos.
Avaliar Modelo: Use o script `validate.py` com os pesos baixados e um conjunto de dados de validação.
Treinar Modelo: Execute o script `distributed_train.sh` com os caminhos do conjunto de dados e parâmetros de treinamento especificados.
Integrar: Adapte o código `convmixer.py` para loops de treinamento personalizados ou pipelines de inferência.
Casos de uso de ConvMixer
- Classificação de Imagens
- Avaliação de Modelos
- Treinamento de Modelos Personalizados
- Pesquisa e Desenvolvimento
- Aprendizado por Transferência
- Benchmarking








