AIの事前知識がなくても始められる、CaffeとNVIDIA DIGITSを使った画像分類ニューラルネットワークの学習・デプロイを実践的に学ぶ入門チュートリアル。
itskonrad/tinymnist
約250行の純粋なCで書かれた最小構成のニューラルネットワークで、手書きのMNIST数字を分類します。
- スター
- 1,287
- フォーク
- 130
- 未解決の Issue
- 3
- 最終コミット
- 25 日前
これは何?
tinymnistは、純粋なCで実装された小規模なニューラルネットワークで、MNISTデータセットの手書き数字を分類します。プログラム全体は約250行で、依存するのはC標準ライブラリだけです。
モデルは、入力784個、256ユニットのReLU隠れ層、10クラスのsoftmax出力層で構成される全結合ネットワークです。交差エントロピー損失とモーメンタム付きSGDで学習します。MNISTの学習データがdataディレクトリに同梱されているため、gccでコンパイルすればそのまま実行できます。
このプロジェクトでは、20エポック後に約98%のテスト精度を達成し、各エポックの所要時間は約0.5秒とされています。データの80%を学習に使い、残りの20%をテスト用に確保します。隠れ層のサイズ、学習率、モーメンタム、エポック数、学習データの割合などのハイパーパラメータは、main.cの先頭にある#define定数で設定します。
主な機能
- 01標準ライブラリ以外の依存関係がない、純粋なCによる実装
- 02ReLUとsoftmaxを使った2層の全結合ネットワーク
- 03交差エントロピー損失とモーメンタム付き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 とは?
- 約250行の純粋なCで書かれた最小構成のニューラルネットワークで、手書きのMNIST数字を分類します。 tinymnistは、純粋なCで実装された小規模なニューラルネットワークで、MNISTデータセットの手書き数字を分類します。プログラム全体は約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 の数値は毎日更新されます。
関連プロジェクト
PyTorch関連のライブラリ、モデル、実装、チュートリアル、論文をまとめたGitHub上の厳選リンク集。
REST API経由で画像、テキスト、表形式データ、時系列データのモデルを学習・実行できる、ディープラーニングサーバー、Python wheel、CLI。
機械学習モデルの構築からデプロイまでを支える、Python APIとC++ APIを備えたオープンソースのエンドツーエンドプラットフォーム。
autogradを基盤とする動的ニューラルネットワークと、GPUアクセラレーション対応のテンソル計算を提供するPython深層学習フレームワーク。
PyTorch風のテンソルAPI、autograd、コンパイラを備え、多数のアクセラレータバックエンドに対応する最小構成のディープラーニングフレームワーク。