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

OSCHINA-MIRROR/hans_s-infers

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

infers

Библиотека машинного обучения и операций с матрицами на TypeScript.

Установка

Убедитесь, что установлен NPM, перейдите в директорию проекта, затем выполните следующую команду.

$ npm install infers@latest

Пример использования в проекте:

import { Matrix, BPNet } from 'infers'
```## Примеры
 Транспонирование матрицы:
 ```ts
 let m = new Matrix([
   [1, 5, 0],
   [2, 4, -1],
   [0, -2, 0]
 ])
 m.T.print()
 // Matrix 3x3 [
 //  1, 2, 0, 
 //  5, 4, -2, 
 //  0, -1, 0, 
 // ]

Пример сети BP для XOR, трехслойной сети:

let xs = new Matrix([[1, 0], [0, 1], [0, 0], [1, 1]])
let ys = new Matrix([[1], [1], [0], [0]])
let model = new BPNet([2, [6, 'Tanh'], [1, 'Sigmoid']], { rate: 0.1 })
model.fit(xs, ys, {
  epochs: 5000, onEpoch: (epoch, loss) => {
    if (epoch % 100 === 0) console.log('epoch:' + epoch, 'loss:', loss)
  }
})
model.predict(xs).print()
// Matrix 4x1 [
//  0.9862025352830867, 
//  0.986128496195502, 
//  0.01443800549676924, 
//  0.014425871504885788, 
// ]

Пример сети BP для сложения, четырехслойной сети:

let xs = new Matrix([[1, 4], [3, 2], [6, 5], [4, 7]])
let ys = new Matrix([[5], [5], [11], [11]])
let model = new BPNet([2, 6, 6, 1], { mode: 'bgd', rate: 0.01 })
model.fit(xs, ys, {
  epochs: 500, onEpoch: (epoch, loss) => {
    console.log('epoch:' + epoch, 'loss:', loss)
  }
})
let xs2 = new Matrix([[5, 8], [22, 6], [-5, 9], [-5, -4]])
model.predict(xs2).print()
// Matrix 4x1 [
//  12.994745740521667, 
//  27.99134620596921, 
//  3.9987224114576856, 
//  -9.000000644547901,
// ]

RNN: Пример рекуррентной нейронной сети:

let trainData = ['hello rnn', 'good morning', 'I love 🍎!', 'I eat 🍊!']
let net = new RNN({ trainData })
net.fit({
  epochs: 1500, onEpochs: (epoch, loss) => {
    if (epoch % 10 === 0) console.log('epoch: ', epoch, 'loss: ', loss)
  }
})
console.log(net.predict('I love'))
console.log(net.predict('I eat'))
console.log(net.predict('hel'))
console.log(net.predict('good'))
//  🍊!
//  🍎!
// lo rnn
//  morning

API

  • NetShape: [number, (number | [number, АктивационнаяФункция]), ... (number | [number, АктивационнаяФункция])[]] Иерархическая структура модели сети, включающая количество нейронов в каждом слое, тип активационной функции и общее число слоёв.
  • rate: число Обучающий темп, скорость обучения. Скорость обучения — это шаг обновления при каждом спуске градиента, обычно находится между 0 и 1.
  • epochs: число
    Все данные полного набора тренировочных данных проходят один цикл.
  • АктивационнаяФункция: 'Сигмоид' | 'ReLU' | 'TanH' | 'Softmax'
  • Режим: 'sgd' | 'bgd' | 'mbgd' Разные скорости обучения, итерации и формы сети требуются для решения различных задач, что необходимо настраивать в зависимости от функции стоимости. Оптимизация параметров также является процессом оптимизации модели.## Экспорт
  • класс Matrix
    • Математические операции над матрицами
    • сложение, умножение, транспонирование, детерминант, обратная матрица
  • класс BPNet
    • Полносвязная нейронная сеть
    • Многослойная модель сети
  • класс RNN
    • Возвратная нейронная сеть
    • Используется для обработки естественного языка

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

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

Введение

Машинное обучение и библиотека операций с матрицами на TypeScript. Развернуть Свернуть
TypeScript и 2 других языков
MIT
Отмена

Обновления

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

Участники

все

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

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