AI 배경지식이 없는 입문자를 위한 실습형 튜토리얼로, Caffe와 NVIDIA DIGITS를 사용해 이미지 분류 신경망을 학습하고 배포합니다.
itskonrad/tinymnist
순수 C로 작성된 약 250줄짜리 최소 신경망으로 손글씨 MNIST 숫자를 분류하도록 학습합니다.
- 스타
- 1,287
- 포크
- 130
- 열린 이슈
- 3
- 마지막 커밋
- 24일 전
어떤 프로젝트인가요?
tinymnist는 MNIST 데이터셋의 손글씨 숫자를 분류하는 순수 C 기반의 소형 신경망입니다. 프로그램 전체가 약 250줄이며 C 표준 라이브러리 외에는 의존성이 없습니다.
모델은 입력 784개, 유닛 256개로 구성된 ReLU 은닉층, 10개 클래스를 출력하는 softmax로 이루어진 완전 연결 네트워크이며, cross-entropy loss와 momentum을 적용한 SGD로 학습합니다. MNIST 학습 데이터가 data 디렉터리에 포함되어 있어 gcc로 컴파일한 뒤 바로 실행할 수 있습니다.
이 프로젝트는 20 epoch 학습 후 테스트 정확도가 약 98%이며, epoch당 소요 시간은 약 0.5초라고 보고합니다. 데이터의 80%는 학습에 사용하고 나머지 20%는 테스트용으로 따로 둡니다. 은닉층 크기, learning rate, momentum, epoch 수, 학습 데이터 비율 등의 하이퍼파라미터는 main.c 상단의 #define 상수로 설정합니다.
핵심 기능
- 01표준 라이브러리 외에 의존성이 없는 순수 C 구현
- 02ReLU와 softmax를 사용하는 2층 완전 연결 네트워크
- 03cross-entropy loss와 momentum을 적용한 SGD로 학습
- 04MNIST 학습 데이터가 포함되어 있어 별도 준비 없이 실행 가능
- 05#define 상수로 하이퍼파라미터 조정 가능
활용 사례
- 신경망이 가장 낮은 수준에서 어떻게 작동하는지 학습
- 딥러닝 프레임워크 없이 순전파와 역전파 살펴보기
- MNIST 분류 실험을 위한 간결한 기준 모델
빠른 시작
- 1
gcc로 프로그램을 컴파일합니다
gcc -O3 -march=native -ffast-math -o main main.c -lm - 2
처음부터 학습한 네트워크를 실행합니다(MNIST 데이터는 data/에 포함되어 있습니다)
./main
사용 전 알아둘 점
- 교육용 초소형 모델일 뿐, 실제 환경에서 사용할 수 있는 숫자 분류기는 아닙니다.
- 설정을 변경하려면 main.c의 #define 상수를 수정한 뒤 다시 컴파일해야 합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- tinymnist은(는) 무엇인가요?
- 순수 C로 작성된 약 250줄짜리 최소 신경망으로 손글씨 MNIST 숫자를 분류하도록 학습합니다. tinymnist는 MNIST 데이터셋의 손글씨 숫자를 분류하는 순수 C 기반의 소형 신경망입니다. 프로그램 전체가 약 250줄이며 C 표준 라이브러리 외에는 의존성이 없습니다.
- tinymnist은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- tinymnist은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- tinymnist은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. tinymnist의 마지막 커밋은 2026년 10월 13일입니다.
- 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를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
GitHub의 PyTorch 관련 라이브러리, 모델, 구현체, 튜토리얼과 논문을 모아 분류한 큐레이션 목록입니다.
REST API를 통해 이미지, 텍스트, 표 형식 및 시계열 데이터의 모델을 학습하고 실행하는 딥러닝 서버, Python wheel 및 CLI입니다.
Python 및 C++ API를 제공하는, 머신러닝 모델을 구축하고 배포하기 위한 엔드투엔드 오픈소스 플랫폼입니다.
autograd 기반 동적 신경망과 GPU 가속 텐서 연산을 제공하는 Python 딥러닝 프레임워크입니다.
PyTorch와 유사한 텐서 API, autograd, 컴파일러와 다양한 가속기 백엔드를 지원하는 경량 딥러닝 프레임워크입니다.