
Tinn (Tiny Neural Network) - это библиотека для нейронной сети без зависимости в 200 линии, написанная в C99.
Для демонстрации того, как изучить ручные письменные цифры, получите несколько учебных данных:
wget http://archive.ics.uci.edu/ml/machine-learning-databases/semeion/semeion.data
make; ./test
Данные обучения состоит из ручных написанных цифр, написанных как медленно, так и быстро. Каждая строка в наборе данных соответствует одной рукописной цифре. Каждая цифра составляет 16x16 пикселей по размеру, давая 256 входов в нейронную сеть.
В конце строки 10 цифр обозначают ручную цифру:
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
Это дает 10 выходов в нейронную сеть. Программа тестирования выведет точность для каждой цифры. Ожидайте более 99% точности для правильной цифры, и меньше точки 0,1% для других цифр.
Portable - Запуск, где присутствует компилятор C99 или C ++ 98.
Сигмоидальная активация.
Один скрытый слой.
Tinn никогда не будет использовать больше, чем стандартная библиотека C.
Тинн отлично подходит для встроенных систем. Обучите модель на свой мощный рабочий стол и загрузите ее на микроконтроллер и используйте аналог для цифрового преобразователя для прогнозирования событий в реальном времени.
Исходный код Tinn всегда будет менее 200 строк. Функции, представленные в заголовке TINN, защищены пространством имен XT, стоящим для снабженного Tinn .
Тинн может легко быть многопоточным с небольшим количеством изобретательности, но главная ветвь останется однонаправленной, чтобы помочь разработке для встроенных систем.
Tinn не заселяет генератор случайных чисел. Не забудьте сделать это сами.
Всегда перемешайте свои входные данные. Снова перемешайте после каждой тренировочной итерации.
Получите большую точность обучения, отжигая уровень обучения. Например, умножьте скорость обучения на 0,99 каждую тренировочную итерацию. Это приведет к хорошим учебным минимумам.
Тинн является практикой в минимализме.
Tinn не полностью изготовленная библиотека Neural Network C, такая как Kann, или Genann:
https://github.com/attractivechaos/kann
https://github.com/codeplea/genann
Rust: https://github.com/dvdplm/rustinn
Учебник с использованием tinn nn и ctypes
Крошечная библиотека нейронной сети в 200 строках кода