Реализация небольшого фрэймворка для нейронных сетей на языке C.
По большому счёту весь проект посвящен алгоритму backpropagation, написанному с оглядкой на использование сигмоиды в качестве функции активации.
В реализации есть пример, демонстрирующий работоспособность кода и способность нейронной сети к обучению. По крайней мере, на обучающей выборке наблюдается хороший уровень точности. Разделение на обучающую и тестовую выборки отсутствует, так как это не является ключевым аспектом решаемой задачи.В реализации есть пример, демонстрирующий работоспособность кода и способность нейронной сети к обучению. По крайней мере, на обучающей выборке наблюдается хороший уровень точности. Разделение на обучающую и тестовую выборки отсутствует, так как это не относится к сути решаемой задачи.
В примере обрабатывается датасет MNIST. Происходит итерация по эпохам, на каждой из которых выводится значение Loss-а. В конце выводятся правильные ответы и ответы нейронной сети для первых 10 записей в датасете.
- Сначала нужно открыть ./mnist/fetch_mnist.ipynb и выполнить все ячейки кода. Скачается файлик ./mnist/data.csv
- Затем откройте файл ./Network.c и в #define FILE_PATH укажите абсолютный путь до ./mnist/data.csv
- После этого можно запускать build.sh. Всё должно работать