Synaptic — это библиотека для создания и обучения нейронных сетей на JavaScript. Она предоставляет гибкий API для построения различных архитектур сетей: от простых перцептронов до сложных многослойных сетей с обратным распространением ошибки. Для использования Synaptic в проекте существуют два основных способа подключения: через CDN и через npm.
CDN (Content Delivery Network) позволяет подключать библиотеку напрямую в веб-страницу без установки пакетов. Такой способ подходит для быстрых прототипов и небольших проектов.
Пример подключения:
<script src="https://cdn.jsdelivr.net/npm/synaptic@1.1.4/dist/synaptic.min.js"></script>
После добавления скрипта объект synaptic становится
доступен глобально:
const { Layer, Network, Trainer } = synaptic;
Преимущества подключения через CDN:
Недостатки:
Для проектов, использующих Node.js или современные сборщики (Webpack, Vite, Parcel), рекомендуется подключение Synaptic через npm.
Команда установки:
npm install synaptic
После установки библиотека импортируется как модуль:
import { Layer, Network, Trainer } from 'synaptic';
Или через CommonJS:
const synaptic = require('synaptic');
const { Layer, Network, Trainer } = synaptic;
Преимущества npm-подключения:
Особенности работы:
npm update synaptic.| Характеристика | CDN | npm |
|---|---|---|
| Простота подключения | Очень высокая | Требует установки и сборки |
| Управление версиями | Менее удобно | Удобное через package.json |
| Использование в модульной системе | Ограничено | Полная поддержка модулей |
| Доступность в оффлайн | Нет, требуется интернет | Да, после установки пакета |
| Совместимость с Node.js | Нет | Полная |
Создание простой нейронной сети через CDN:
<script src="https://cdn.jsdelivr.net/npm/synaptic@1.1.4/dist/synaptic.min.js"></script>
<script>
const { Layer, Network, Trainer } = synaptic;
const inputLayer = new Layer(2);
const hiddenLayer = new Layer(3);
const outputLayer = new Layer(1);
inputLayer.project(hiddenLayer);
hiddenLayer.project(outputLayer);
const myNetwork = new Network({
input: inputLayer,
hidden: [hiddenLayer],
output: outputLayer
});
const trainer = new Trainer(myNetwork);
trainer.train([
{ input: [0, 0], output: [0] },
{ input: [0, 1], output: [1] },
{ input: [1, 0], output: [1] },
{ input: [1, 1], output: [0] }
]);
</script>
Создание той же сети через npm (Node.js):
import { Layer, Network, Trainer } from 'synaptic';
const inputLayer = new Layer(2);
const hiddenLayer = new Layer(3);
const outputLayer = new Layer(1);
inputLayer.project(hiddenLayer);
hiddenLayer.project(outputLayer);
const myNetwork = new Network({
input: inputLayer,
hidden: [hiddenLayer],
output: outputLayer
});
const trainer = new Trainer(myNetwork);
trainer.train([
{ input: [0, 0], output: [0] },
{ input: [0, 1], output: [1] },
{ input: [1, 0], output: [1] },
{ input: [1, 1], output: [0] }
]);
Подключение Synaptic через CDN обеспечивает мгновенную доступность в браузере, а npm — надежное управление зависимостями и интеграцию в крупные проекты. Выбор метода зависит от масштабов проекта и требований к модульности.