Tutorial prático para iniciantes sobre como treinar e implantar redes neurais de classificação de imagens com Caffe e NVIDIA DIGITS, sem precisar de experiência prévia em IA.
itskonrad/tinymnist
Uma rede neural minimalista escrita em C puro que aprende a classificar dígitos manuscritos do MNIST em cerca de 250 linhas.
- Estrelas
- 1,287
- Forks
- 130
- Issues abertas
- 3
- Último commit
- há 25 dias
O que é?
tinymnist é uma pequena rede neural implementada em C puro que classifica dígitos manuscritos do conjunto de dados MNIST. O programa inteiro tem cerca de 250 linhas e depende apenas da biblioteca padrão do C.
O modelo é uma rede totalmente conectada com 784 entradas, uma camada oculta ReLU de 256 unidades e uma saída softmax com 10 classes, treinada com a função de perda cross-entropy e SGD com momentum. O conjunto de treinamento do MNIST está incluído no diretório data, então o programa pode ser compilado com gcc e executado diretamente.
O projeto relata uma acurácia de teste de cerca de 98% após 20 épocas, com cada época levando aproximadamente meio segundo. O treinamento usa 80% dos dados, e os 20% restantes ficam reservados para teste. Hiperparâmetros como tamanho da camada oculta, taxa de aprendizado, momentum, número de épocas e divisão entre treino e teste são definidos por constantes #define no início de main.c.
Recursos principais
- 01Implementação em C puro, sem dependências além da biblioteca padrão
- 02Rede totalmente conectada com duas camadas, ReLU e softmax
- 03Treina com a função de perda cross-entropy e SGD com momentum
- 04Inclui os dados de treinamento do MNIST, então funciona sem configuração adicional
- 05Hiperparâmetros ajustáveis por meio de constantes #define
Casos de uso
- Aprender como uma rede neural funciona em baixo nível
- Estudar as etapas forward e backward sem um framework de deep learning
- Usar como baseline compacto em experimentos de classificação do MNIST
Início rápido
- 1
Compile o programa com gcc
gcc -O3 -march=native -ffast-math -o main main.c -lm - 2
Execute a rede treinada do zero (os dados do MNIST estão incluídos em data/)
./main
Antes de usar
- É apenas um modelo didático minúsculo, não um classificador de dígitos prático para uso real.
- Para alterar a configuração, é preciso editar as constantes #define em main.c e recompilar.
Em coleções
Tópicos
Perguntas frequentes
- O que é tinymnist?
- Uma rede neural minimalista escrita em C puro que aprende a classificar dígitos manuscritos do MNIST em cerca de 250 linhas. tinymnist é uma pequena rede neural implementada em C puro que classifica dígitos manuscritos do conjunto de dados MNIST. O programa inteiro tem cerca de 250 linhas e depende apenas da biblioteca padrão do C.
- tinymnist é gratuito? Qual é a licença?
- tinymnist é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- tinymnist ainda é mantido?
- Manutenção ativa. O último commit de tinymnist foi em 13 de out. de 2026.
- Para que posso usar tinymnist?
- Aprender como uma rede neural funciona em baixo nível Estudar as etapas forward e backward sem um framework de deep learning Usar como baseline compacto em experimentos de classificação do MNIST
- Como instalar tinymnist?
- Compile o programa com gcc: gcc -O3 -march=native -ffast-math -o main main.c -lm Execute a rede treinada do zero (os dados do MNIST estão incluídos em data/): ./main
- Onde consigo tinymnist?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/itskonrad/tinymnist
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma lista selecionada de bibliotecas, modelos, implementações, tutoriais e artigos relacionados ao PyTorch no GitHub.
Servidor de deep learning, pacote Python wheel e CLI para treinar e executar modelos com imagens, textos, dados tabulares e séries temporais por meio de uma API REST.
Uma plataforma open source completa para criar e implantar modelos de machine learning, com APIs para Python e C++.
Framework de deep learning para Python que oferece computação de tensores acelerada por GPU e redes neurais dinâmicas com base em autograd.
Framework minimalista de deep learning com API de tensores no estilo PyTorch, autograd, compilador e suporte a vários backends de aceleradores.