Метод network.toJSON является ключевым инструментом
библиотеки Synaptic для сериализации нейронной сети. Он позволяет
преобразовать структуру сети, включая слои, нейроны, связи и веса, в
формат JSON, который можно хранить, передавать или использовать для
последующего восстановления сети методом
Network.fromJSON.
network.toJSON применяется для:
Метод возвращает объект JavaScript, полностью описывающий все элементы сети.
Объект JSON, полученный через network.toJSON, включает
несколько ключевых разделов:
neurons Список всех нейронов сети.
Каждый нейрон представлен объектом с набором параметров:
bias — смещение нейрона.layer — индекс слоя, к которому принадлежит
нейрон.squash — функция активации, используемая нейроном.activation — текущее значение активации.derivative — значение производной функции активации
(обычно используется при обучении).connections — список исходящих связей нейрона.Пример структуры нейрона:
{
"bias": 0.123,
"layer": 1,
"squash": "LOGISTIC",
"activation": 0.5,
"derivative": 0.25,
"connections": [...]
}connections Содержит информацию о
связях между нейронами:
from — индекс нейрона-источника.to — индекс нейрона-получателя.weight — текущий вес связи.gater — индекс нейрона, который контролирует связь
(если используется механизм gating).Пример:
{
"from": 0,
"to": 3,
"weight": 0.75,
"gater": null
}inputs и outputs
Списки индексов нейронов, относящихся к входному и выходному слоям
соответственно. Они позволяют правильно подать данные на вход сети и
получить результат на выходе.
layers Опциональный раздел, который
хранит информацию о каждом слое:
JSON-объект после вызова network.toJSON можно:
fs.writeFile (Node.js) или
localStorage (браузер).Network.fromJSON(json),
что гарантирует точное воспроизведение структуры и весов.LOGISTIC, TANH, RELU и
др.), а не их реализация. При восстановлении Synaptic подставляет
стандартные функции библиотеки.const synaptic = require('synaptic');
const { Layer, Network } = synaptic;
// Создание простой сети
let inputLayer = new Layer(2);
let hiddenLayer = new Layer(3);
let outputLayer = new Layer(1);
inputLayer.project(hiddenLayer);
hiddenLayer.project(outputLayer);
let myNetwork = new Network({
input: inputLayer,
hidden: [hiddenLayer],
output: outputLayer
});
// Получение JSON-представления сети
let networkJSON = myNetwork.toJSON();
console.log(JSON.stringify(networkJSON, null, 2));
В этом примере создается сеть с двумя входами, одним скрытым слоем из
трех нейронов и одним выходом. Метод toJSON позволяет
полностью экспортировать её структуру.
Метод network.toJSON является надежным и универсальным
способом хранения и обмена нейронными сетями в библиотеке Synaptic,
обеспечивая полное описание структуры и параметров сети для любых
дальнейших действий.