1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-Tinn

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Tinn (Tiny Neural Network) — это библиотека нейронной сети на 200 строках кода, написанная на C99 и не имеющая зависимостей.

Для демонстрации обучения распознаванию рукописных цифр получите данные для тренировки:

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

make; ./test

Тренировочные данные включают рукописные цифры, записанные как медленно, так и быстро. Каждая строка данных представляет собой одну рукописную цифру размером 16x16 пикселей, что составляет 256 входов для нейронной сети.

Каждый набор данных заканчивается десятью цифрами, указывающими на конкретную рукописную цифру:

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% для других цифр.

Возможности

  • Портативность — работает там, где есть компилятор C99 или C++98.

  • Активация сигмоидой.

  • Одно скрытое слой.

Советы

  • Tinn никогда не будет использовать больше стандартной библиотеки C.

  • Tinn отлично подходит для встроенных систем. Обучите модель на мощном рабочем столе и загрузите её на микроконтроллер, используйте аналогово-цифровой конвертер для прогнозирования реальных событий в режиме реального времени.

  • Исходный код Tinn всегда будет меньше 200 строк. Внешние функции, объявленные в заголовочном файле Tinn, защищены пространством имён _xt_, что означает "внешние Tinn".

  • Tinn легко может быть многопоточным с некоторым изобретательством, но основная ветка останется однопоточной для помощи в развитии для встроенных систем.

  • Tinn не инициализирует генератор случайных чисел. Не забудьте сделать это самостоятельно.

  • Всегда перемешивайте ваши входные данные. Перемешивайте снова после каждого цикла обучения.

  • Увеличьте точность обучения аннеалированием скорости обучения. Например, умножьте вашу скорость обучения на 0.99 каждый цикл обучения. Это позволит найти хорошее минимум обучаемости.

Отказ от ответственности

Tinn является примером минимализма.

Tinn не является полнофункциональной библиотекой нейронной сети на C, такой как Kann или Genann:

Портации

Другое

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Tinn — это библиотека миниатюрной нейронной сети, написанная на C99, которая содержит всего 200 строк кода, не зависит от других библиотек и имеет небольшой размер. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-Tinn.git
git@api.gitlife.ru:oschina-mirror/mirrors-Tinn.git
oschina-mirror
mirrors-Tinn
mirrors-Tinn
master