Наконец-то я закончил свой выпускной проект! Так что у меня появилось время заняться некоторыми проектами с node.js.

Так что в течение следующих нескольких недель я собираюсь выпускать проект по крайней мере раз в месяц в этой серии.

Итак, мы собираемся работать с нейронными сетями в этом проекте и прогнозировать некоторые результаты.

В этом проекте мы будем использовать библиотеку javascript, чтобы упростить нашу работу.

Давайте создадим папку

Во-первых, нам нужна папка для хранения нашего кода. Создайте его любым удобным для вас способом.

mkdir savagemodels
cd savagemodels
npm start
touch index.js
npm install @king__somto/savage

В этой папке у нас будет файл package.json и файл index.js. Файл index.js будет содержать ваш основной код, а package.json — подробную информацию о вашем проекте. Итак, давайте тестировать.

В вашем типе файла index.js

const message = 'hello word!!!'
console.log(`${message}`)
///// hello word

Так что теперь удивительно, давайте перейдем к фактическому проекту.

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

Таким образом, следующим этапом будет предварительная обработка наших данных, поэтому из нашего определения проблемы здесь мы должны получить набор данных, который представляет число в его двоичной форме в качестве входных данных, а выход должен быть либо «1» для представления четного, либо « 0» для представления нечетных чисел.

Приведенная выше функция возвращает наш пользовательский набор данных, который представляет собой двоичное представление чисел и цель, которая говорит 1 или 0 для четного или нечетного.

Хорошо, теперь это наша модель, теперь давайте посмотрим на код блок за блоком.

const {Savage_model} =  require('@king__somto/savage')
const mod = new Savage_model()

Здесь мы импортируем нашу необходимую библиотеку и инициируем экземпляр нашего класса с именем mod.

const {inputs,targets} = createDataSet(30)

Здесь мы получаем наши входные данные и цели из нашей ранее определенной функции.

mod.addDense({  
  'output':3,    
  'input':10,  
  'activation':'sigmoid'
}) 
mod.addDense({
'output':1,
'activation':'sigmoid'
})

Итак, это основная часть кода, здесь мы определяем нашу модель с помощью Savage Net Builder.

Наша сеть использует 3 слоя (1 скрытый, 1 вход и 1 выход) (3,10,1). И мы прикрепляем нашу функцию активации к каждому слою, кроме входного слоя.

let itterations = 10000
let lr = 0.52 
mod.run(inputs,targets,itterations,lr)
mod.modelSave('model.txt')
mod.predict(turnToBinary(29))

Наконец, нам нужно запустить наш алгоритм обучения, поэтому мы вводим наши гиперпараметры (скорость обучения и количество итераций).

Наша библиотека позволяет нам сохранять нашу модель с помощью функции modelSave().

node index.js

Вы должны получить вывод, похожий на

savage model initialized
model loaded into object!
[ 0.02160938812988407 ]

Мы только что создали и сохранили нашу модель в файле с именем model.txt, мы должны иметь возможность перезагрузить наш файл и использовать его для прогнозирования. Итак, теперь давайте создадим новый файл для проверки нашей сохраненной модели.

touch testSaved.js

Это создаст новый файл с именем testSaved.js. Теперь вставьте следующее

const {Savage_model} =  require('@king__somto/savage')
const model = new Savage_model()
model.loadModel('model.txt')
let ans = model.predict(turnToBinary(101))
console.log(ans);

Итак, теперь давайте подведем итоги того, что мы уже сделали.

  • Мы написали функцию для создания нашего набора данных
  • Мы импортировали нашу библиотеку машинного обучения (savage.io)
  • Мы разработали нейронную сеть
  • Мы обучили нашу сеть
  • Мы сохранили модель
  • И научился повторно использовать модель.

На этом пока все, нашим следующим уроком будет задача класса с несколькими выходами, так что следите за обновлениями.