Skip to content

CrystSw/Simple-Neural-Network

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Simple-Neural-Network

概要

Sample of 2-layer categorization-neural-network(CNN).
This CNN consists of 2-layer(input-layer, output-layer). not exist hidden-layer.
2層カテゴリ分類ニューラルネットワークのサンプル.
入力層と出力層のみ.隠れ層はなし.


利用方法

このニューラルネットワークは,mnistと呼ばれる手書き数字データを学習・分類します.
実行する場合は,mnistのサイトから

  • train-images-idx3-ubyte.gz
  • train-labels-idx1-ubyte.gz
  • t10k-images-idx3-ubyte.gz
  • t10k-labels-idx1-ubyte.gz

の4つのファイルをダウンロードおよび解凍し,src/mnistの中へ入れてください.

Windows10 64bit(gcc 6.3.0)とCentOS6.10(gcc 4.4.7)で動作確認を行っています.

◎ver1.1以前(旧バージョン)
コンパイルを行うには次のコマンドを実行します.
gcc -lm snnet.c main.c -o snnet
最適化オプションを付けたほうが,動作は早くなります.

教師データを基に学習を行うには次のコマンドを実行します.
./snnet learn

テストデータを基に識別を行うには次のコマンドを実行します.
./snnet test

◎ver1.2以降(新バージョン)
コンパイルを行うには次のコマンドを実行します.
gcc -lm nnet.c util.c mnist.c main.c -o snnet
最適化オプションを付けたほうが,動作は早くなります.

教師データを基に学習を行うには次のコマンドを実行します.
./snnet -l

テストデータを基に識別を行うには次のコマンドを実行します.
./snnet -t


注意事項

このプログラムはエラー時処理が厳密に行われていません.
malloc関数やcalloc関数が失敗した場合は,意図しない動作が引き起こされる可能性があります.
(タスクマネージャで確認した限りでは100MB余裕があれば動くとは思います.)

About

Sample of 2-layer categorization-neural-network.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages