Add KANN, a deep learning library in C #61
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
KANN is like a CPU-only mini-tensorflow, providing common components for deep learning. KANN implements automatic differentiation (autodiff; the foundation of general deep learning frameworks) in two files
kautodiff.{h,c}
and implements deep learning utilities in two additional files. So, if you need autodiff only, take two files; if you need deep learning, take all four files.I am fully aware that the rule is "libraries should use at most two files", but I also notice "exceptions will be allowed for good reasons". In case of KANN, "good reasons" include 1) autodiff is logically separated from deep learning and is more general; 2) the autodiff part of KANN is qualified for a two-file library; 3) KANN is already the smallest of its kind with most other frameworks many times larger.
I hope you may consider KANN as an exception, but if you prefer to reject this PR, I also fully understand. Thanks in advance.