Brain.js — это библиотека для нейронных сетей на JavaScript, предоставляющая удобные средства для обучения, сохранения и использования моделей. Одной из ключевых возможностей является возможность экспортировать и импортировать обученные модели, что позволяет передавать их между клиентом и сервером или между разными приложениями.
После обучения нейронной сети объект сети содержит внутренние веса и
конфигурацию. Для передачи модели используется метод
.toJSON(), который возвращает сериализованный объект,
пригодный для хранения или передачи через сеть.
Пример сериализации:
const brain = require('brain.js');
const net = new brain.NeuralNetwork();
net.train([
{ input: [0, 0], output: [0] },
{ input: [0, 1], output: [1] },
{ input: [1, 0], output: [1] },
{ input: [1, 1], output: [0] },
]);
const modelJSON = net.toJSON();
Полученный объект modelJSON можно превратить в строку с
помощью JSON.stringify() для отправки по сети:
const modelString = JSON.stringify(modelJSON);
Метод fetch позволяет передавать данные на сервер или
получать их с него. Для отправки модели используется POST-запрос с
заголовком Content-Type: application/json:
fetch('https://example.com/save-model', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: modelString
})
.then(response => response.json())
.then(data => console.log('Модель сохранена', data))
.catch(error => console.error('Ошибка при отправке модели', error));
Важно убедиться, что объект корректно сериализован и не содержит
функций или других несериализуемых данных, так как
JSON.stringify поддерживает только стандартные типы
JavaScript.
Для восстановления модели используется POST или GET-запрос к серверу,
возвращающий сохранённую модель в формате JSON. Полученный JSON
необходимо преобразовать обратно в объект и передать в метод
.fromJSON() нейронной сети.
Пример загрузки модели:
fetch('https://example.com/load-model')
.then(response => response.json())
.then(modelJSON => {
const net = new brain.NeuralNetwork();
net.fromJSON(modelJSON);
const output = net.run([1, 0]);
console.log('Результат работы сети:', output);
})
.catch(error => console.error('Ошибка при загрузке модели', error));
Метод fromJSON восстанавливает все внутренние веса и
структуру сети, позволяя сразу использовать её для предсказаний без
повторного обучения.
gzip.localStorage или IndexedDB), что позволяет
быстро загружать её без обращения к серверу..fromJSON() возможно продолжение обучения с
новыми данными. Это полезно для адаптивных систем, которые обновляют
веса без полной переобучения.toJSON и
отправляется клиенту. Клиент может использовать её для предсказаний без
повторного обучения.Передача моделей через fetch делает Brain.js гибким инструментом для распределённых приложений, где обучение и использование нейронной сети могут происходить в разных средах, а также обеспечивает удобные механизмы хранения и восстановления состояния сети.