项目作者: RadioRedFox

项目描述 :
Simple neural network
高级语言: C++
项目地址: git://github.com/RadioRedFox/FoxNN.git
创建时间: 2019-01-07T16:39:30Z
项目社区:https://github.com/RadioRedFox/FoxNN

开源协议:Other

下载


FoxNN v1.0.134

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

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

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

  1. import foxnn

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Лицензия APACHE 2.0