/FoxNN

Simple neural network

Primary LanguageC++OtherNOASSERTION

FoxNN v1.0.134

Данная библиотека представляет собой инструмент для быстрого и очень простого создания нейронной сети.

Инструкцию по установке и использованию вы можете найти здесь.

Библиотека работает как на Windows, так и на Linux. Есть api для использования библиотеки в Python.

import foxnn

Простая идея.

Сеть создаётся одной строчкой кода с указанием количества входных параметров, а затем с последовательным указанием числа нейронов в слоях.

nn = foxnn.neural_network([3, 5, 4, 2]) # 3 параметра на вход, 3 слоя, и 2 параметра на выход

Если взглянуть на рисунок, то можно как раз увидеть: сначала 3 входных параметра, затем слой с 5-ью нейронами, затем слой с 4-мя нейронами и, наконец, последний слой с 2-мя нейронами.

Иллюстрация полученной нейросети

Легко и понятно работать с обучающей выборкой. Первый массив - входные данные, второй массив - целевые значения.

# создаём тренировочные данные
train_data = foxnn.train_data()
# добавили 1 тест, [1, 2, 3] - входные данные, [1, 0] - то, что хотим получить на выход
train_data.add_data([1, 2, 3], [1, 0]) 

Запуск обучения

nn.train(data_for_train=train_data, speed=0.01, max_iteration=100, size_train_batch=98)

Получить выходное значение сети

nn.get_out([0, 1, 0.1]) #выметайся или дай значение сети =) 

Есть оптимизации Адама и Нестерова

nn.settings.set_mode("Adam")
nn.settings.set_mode("Nesterov")

Есть возможность рандомного изменения весов для моделирования эволюции:

nn.random_mutation(0.1) #  рандомное изменение весов
nn.smart_mutation(0.1)  #  изменение весов на величину, соизмеримую с исходным значением весов

Лицензия APACHE 2.0