Этот проект создан appxpy и brazenoptimist в образовательных целях в Высшей школе экономики в Москве. Цель проекта - создать простую нейронную сеть с нуля, используя C++17.
NNFS включает в себя библиотеку "NNFS" с открытым исходным кодом, которая позволяет пользователям создавать свои собственные нейронные сети для образовательных целей. Пользователи могут настраивать слои и функции активации в соответствии со своими потребностями.
Для начала работы с NNFS склонируйте репозиторий и его субмодули:
git clone --recursive https://github.com/appxpy/NNFS.git
- Компилятор с поддержкой C++17 (проверено с Clang 14 и GCC 12)
- CMake (версия 3.14 или выше)
Для сборки проекта перейдите в каталог проекта и создайте папку build:
cd NNFS
mkdir build
cd build
Затем соберите проект с помощью cmake:
cmake ..
make
Проект NNFS организован в следующие каталоги:
include/NNFS
: Содержит библиотеку с открытым исходным кодом, которая включает в себя слои, функции активации и функции потерь.tools
: Содержит исходный код для созданных исполняемых файлов для обучения и интерактивного тестирования рисования.tests
: Содержит тестовые случаи для ядра библиотеки с помощью фреймворка Google Test.external
: Содержит подмодули для библиотек Eigen и Google Test.
Полная документация для проекта NNFS находится на сайте appxpy.github.io/NNFS.
Проект NNFS зависит от следующих библиотек:
-
Eigen: Высокоуровневая библиотека на C++ для линейной алгебры, которая включена в качестве субмодуля в каталог external/eigen.
-
Google Test: Фреймворк для тестирования на C++, который включен в качестве субмодуля в каталог external/googletest.
Проект NNFS был протестирован с помощью Clang 14 и GCC 12.
Чтобы запустить тесты, перейдите в каталог build и выполните следующие команды:
cd tests
./nnfs_tests
Пример использования библиотеки NNFS для создания собственной нейронной сети можно найти в каталоге tools
под именем nnfs_example.cpp
.
Мы приветствуем всех, кто заинтересован в улучшении проекта NNFS. Если вы обнаружили ошибку или у вас есть идея для новой функции, пожалуйста, откройте issue в репозитории GitHub.
Если вы хотите внести свой вклад в проект, пожалуйста, выполните следующие шаги:
- Сделайте fork репозитория и клонируйте его на свой локальный компьютер.
- Создайте новую ветку для ваших изменений.
- Внесите свои изменения и тщательно их протестируйте.
- Закоммитьте свои изменения с ясным и описательным сообщением.
- Отправьте свои изменения в свой fork репозитория.
- Откройте pull request на репозитории GitHub.
Пожалуйста, обратите внимание, что все pull request'ы подлежат рассмотрению со стороны разработчиков проекта.
Этот проект распространяется под лицензией MIT. Пожалуйста, см. файл LICENSE для получения дополнительной информации.
made with ❤️ by appxpy & brazenoptimist