Ican is fast, basic neural network library. It's designed for experimental usages, not recommended to use commercial.
These instructions will give you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on deploying the project on a live system.
Requirements for the software and other tools to build, test and push
A step by step series of examples that tell you how to get a development environment running
Clone project
git clone https://github.com/omerfdmrl/ican ican
Run example network
make run SOURCE=./examples/and.c
End with an example of training of AND gate.
You can check examples/
folder.
About makefile;
make all
: create librarymake run
: run custom main.cmake clean
: delete library filemake fclean
: delete library file and object filesmake gtest
: run gdb testmake utest
: run custom test from test/ foldermake memcheck
: run valgrind for detect memory leaks
About folder hierarchy;
test/
: custom test functions and unity librarysrc/
: library functions and header fileexamples/
: examples usages of librarybuild/depends/
: dependencies of librarybuild/objs/
: stores object files while creating library (make all
)build/results/
: includes bin file (gdb test), output file (program) and library file
- Initializers
- Ones
- Random HeUniform
- Random Normal
- Random Uniform
- Random Xavier
- Zeros
- Activation
- Sigmoid
- Tanh
- Softmax
- Layers
- Activation
- Dense
- Dropout (exists, but have problems)
- Shuffle
- Max Pooling
- Min Pooling
- Mean Pooling
- Flatten
- RNN (still testing)
- GRU (under development)
- Models
- Sequential
- GAN
- Optimizers
- Finite Diff
- Gradient Descent
- Batch Gradient Descent
- Stochastic Gradient Descent
- Mini-Batch Gradient Descent
- Utils
- CSV
- IMG
- IO
- TODO
- Function for split test-train data
- 3D Layers
- 3D Models
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
We use Semantic Versioning for versioning. For the versions available, see the tags on this repository.
- Ömer Faruk Demirel - Main Developer - omerfdmrl
- Billie Thompson - Provided README Template - PurpleBooth
See also the list of contributors who participated in this project.
This project is licensed under the MIT Creative Commons License - see the LICENSE.md file for details