All Projects → glouw → Tinn

glouw / Tinn

Licence: mit
A tiny neural network library

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to Tinn

Genann
simple neural network library in ANSI C
Stars: ✭ 1,088 (-44.03%)
Mutual labels:  tiny, neural, ansi
Jeelizar
JavaScript object detection lightweight library for augmented reality (WebXR demos included). It uses convolutional neural networks running on the GPU with WebGL.
Stars: ✭ 296 (-84.77%)
Mutual labels:  neural, network
Naivecnn
A naive (very simple!) implementation of a convolutional neural network
Stars: ✭ 18 (-99.07%)
Mutual labels:  neural, network
kolorist
A tiny utility to colorize stdin/stdout
Stars: ✭ 160 (-91.77%)
Mutual labels:  ansi, tiny
Emojiintelligence
Neural Network built in Apple Playground using Swift
Stars: ✭ 1,323 (-31.94%)
Mutual labels:  neural, network
Pytorch Forecasting
Time series forecasting with PyTorch
Stars: ✭ 849 (-56.33%)
Mutual labels:  neural, network
Tensorflow Cifar 10
Cifar-10 CNN implementation using TensorFlow library with 20% error.
Stars: ✭ 85 (-95.63%)
Mutual labels:  neural, network
Neural Api
CAI NEURAL API - Pascal based neural network API optimized for AVX, AVX2 and AVX512 instruction sets plus OpenCL capable devices including AMD, Intel and NVIDIA.
Stars: ✭ 94 (-95.16%)
Mutual labels:  neural, network
Potatso
Potatso is an iOS client that implements Shadowsocks proxy with the leverage of NetworkExtension framework. ***This project is unmaintained, try taking a look at this fork https://github.com/shadowcoel/shadowcoel instead.
Stars: ✭ 1,925 (-0.98%)
Mutual labels:  network
Busker
An extremely simple web framework.
Stars: ✭ 161 (-91.72%)
Mutual labels:  tiny
Wormholy
iOS network debugging, like a wizard 🧙‍♂️
Stars: ✭ 2,010 (+3.4%)
Mutual labels:  network
Go Perceptron Go
A single / multi layer / recurrent neural network written in Golang.
Stars: ✭ 159 (-91.82%)
Mutual labels:  neural
Nettop
Utility to show network traffic (both TCP and UDP v4 and v6) split by process and remote host
Stars: ✭ 162 (-91.67%)
Mutual labels:  network
Planetxamarin
We are an aggregator of content from Xamarin Community members. Why subscribe individually when you can subscribe to one convenient RSS feed, to see all the content generated by the community members in you news reader.
Stars: ✭ 158 (-91.87%)
Mutual labels:  feed
Litenetlib
Lite reliable UDP library for Mono and .NET
Stars: ✭ 2,179 (+12.09%)
Mutual labels:  network
Sriov Network Device Plugin
SRIOV network device plugin for Kubernetes
Stars: ✭ 157 (-91.92%)
Mutual labels:  network
Feedparser
feedparser gem - (universal) web feed parser and normalizer (XML w/ Atom or RSS, JSON Feed, HTML w/ Microformats e.g. h-entry/h-feed or Feed.HTML, Feed.TXT w/ YAML, JSON or INI & Markdown, etc.)
Stars: ✭ 156 (-91.98%)
Mutual labels:  feed
Mrboom Libretro
Mr.Boom is an 8 player Bomberman clone for RetroArch/Libretro
Stars: ✭ 162 (-91.67%)
Mutual labels:  network
Pycat
Python network tool, similar to Netcat with custom features.
Stars: ✭ 162 (-91.67%)
Mutual labels:  network
React Native Network Logger
An HTTP network request monitor for React Native with in-app interface for iOS and Android with no native code
Stars: ✭ 161 (-91.72%)
Mutual labels:  network

Tinn (Tiny Neural Network) is a 200 line dependency free neural network library written in C99.

For a demo on how to learn hand written digits, get some training data:

wget http://archive.ics.uci.edu/ml/machine-learning-databases/semeion/semeion.data

make; ./test

The training data consists of hand written digits written both slowly and quickly. Each line in the data set corresponds to one handwritten digit. Each digit is 16x16 pixels in size giving 256 inputs to the neural network.

At the end of the line 10 digits signify the hand written digit:

0: 1 0 0 0 0 0 0 0 0 0
1: 0 1 0 0 0 0 0 0 0 0
2: 0 0 1 0 0 0 0 0 0 0
3: 0 0 0 1 0 0 0 0 0 0
4: 0 0 0 0 1 0 0 0 0 0
...
9: 0 0 0 0 0 0 0 0 0 1

This gives 10 outputs to the neural network. The test program will output the accuracy for each digit. Expect above 99% accuracy for the correct digit, and less that 0.1% accuracy for the other digits.

Features

  • Portable - Runs where a C99 or C++98 compiler is present.

  • Sigmoidal activation.

  • One hidden layer.

Tips

  • Tinn will never use more than the C standard library.

  • Tinn is great for embedded systems. Train a model on your powerful desktop and load it onto a microcontroller and use the analog to digital converter to predict real time events.

  • The Tinn source code will always be less than 200 lines. Functions externed in the Tinn header are protected with the xt namespace standing for externed tinn.

  • Tinn can easily be multi-threaded with a bit of ingenuity but the master branch will remain single threaded to aid development for embedded systems.

  • Tinn does not seed the random number generator. Do not forget to do so yourself.

  • Always shuffle your input data. Shuffle again after every training iteration.

  • Get greater training accuracy by annealing your learning rate. For instance, multiply your learning rate by 0.99 every training iteration. This will zero in on a good learning minima.

Disclaimer

Tinn is a practice in minimalism.

Tinn is not a fully featured neural network C library like Kann, or Genann:

https://github.com/attractivechaos/kann

https://github.com/codeplea/genann

Ports

Rust: https://github.com/dvdplm/rustinn

Other

A Tutorial using Tinn NN and CTypes

Tiny Neural Network Library in 200 Lines of Code

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].