Практическое руководство для начинающих по обучению и развертыванию нейросетей для классификации изображений с Caffe и NVIDIA DIGITS — без опыта в ИИ.
itskonrad/tinymnist
Минимальная нейросеть на чистом C, которая примерно за 250 строк учится распознавать рукописные цифры MNIST.
- Звёзды
- 1,287
- Форки
- 130
- Открытые issues
- 3
- Последний коммит
- 25 дней назад
Что это?
tinymnist — небольшая нейросеть на чистом C для распознавания рукописных цифр из датасета MNIST. Вся программа занимает около 250 строк и использует только стандартную библиотеку C.
Модель — полносвязная сеть с 784 входами, скрытым слоем ReLU на 256 нейронов и выходным слоем softmax на 10 классов. Обучение идёт с функцией потерь cross-entropy и методом SGD с momentum. Обучающая выборка MNIST включена в каталог data, поэтому программу можно скомпилировать с помощью gcc и сразу запустить.
По данным проекта, после 20 эпох точность на тестовой выборке составляет около 98%, а одна эпоха занимает примерно полсекунды. Для обучения используется 80% данных, оставшиеся 20% отложены для тестирования. Гиперпараметры — такие как размер скрытого слоя, скорость обучения, momentum, число эпох и доля данных для обучения — задаются константами #define в начале main.c.
Ключевые возможности
- 01Реализация на чистом C без зависимостей, кроме стандартной библиотеки
- 02Двухслойная полносвязная сеть с ReLU и softmax
- 03Обучение с функцией потерь cross-entropy и методом SGD с momentum
- 04Обучающая выборка MNIST уже включена — программа готова к запуску
- 05Гиперпараметры настраиваются с помощью констант #define
Сценарии использования
- Изучение устройства нейросети на самом низком уровне
- Изучение прямого и обратного проходов без фреймворка для глубокого обучения
- Компактная базовая модель для экспериментов по классификации MNIST
Быстрый старт
- 1
Скомпилируйте программу с помощью gcc
gcc -O3 -march=native -ffast-math -o main main.c -lm - 2
Запустите сеть, обученную с нуля (данные MNIST включены в data/)
./main
Что важно знать
- Это лишь крошечная учебная модель, а не практический классификатор цифр для реального использования.
- Чтобы изменить конфигурацию, нужно отредактировать константы #define в main.c и заново скомпилировать программу.
В подборках
Темы
Частые вопросы
- Что такое tinymnist?
- Минимальная нейросеть на чистом C, которая примерно за 250 строк учится распознавать рукописные цифры MNIST. tinymnist — небольшая нейросеть на чистом C для распознавания рукописных цифр из датасета MNIST. Вся программа занимает около 250 строк и использует только стандартную библиотеку C.
- tinymnist можно использовать бесплатно? Какая у него лицензия?
- tinymnist распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- tinymnist всё ещё поддерживается?
- Активно поддерживается. Последний коммит в tinymnist — 13 окт. 2026 г..
- Для чего можно использовать tinymnist?
- Изучение устройства нейросети на самом низком уровне Изучение прямого и обратного проходов без фреймворка для глубокого обучения Компактная базовая модель для экспериментов по классификации MNIST
- Как установить tinymnist?
- Скомпилируйте программу с помощью gcc: gcc -O3 -march=native -ffast-math -o main main.c -lm Запустите сеть, обученную с нуля (данные MNIST включены в data/): ./main
- Где скачать tinymnist?
- Исходный код и инструкции по установке — на GitHub: https://github.com/itskonrad/tinymnist
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Подборка библиотек, моделей, реализаций, руководств и статей по PyTorch на GitHub.
Сервер глубокого обучения, Python wheel и CLI для обучения моделей и запуска инференса на изображениях, текстах, табличных данных и временных рядах через REST API.
Open source-платформа для полного цикла разработки и развёртывания моделей машинного обучения с API для Python и C++.
Фреймворк глубокого обучения на Python с ускоренными на GPU вычислениями над тензорами и динамическими нейросетями на основе autograd.
Минималистичный фреймворк для глубокого обучения с API тензоров в стиле PyTorch, autograd, компилятором и поддержкой множества ускорителей.