Подключение через CDN и npm

TensorFlow.js — это библиотека для машинного обучения на JavaScript, позволяющая создавать, обучать и использовать модели прямо в браузере или на сервере с Node.js. Доступ к библиотеке можно организовать двумя основными способами: через CDN или через пакетный менеджер npm. Каждый метод имеет свои особенности и области применения.


Подключение через CDN

CDN (Content Delivery Network) предоставляет возможность подключить TensorFlow.js напрямую через URL без необходимости локальной установки пакетов. Этот способ особенно удобен для быстрого прототипирования, работы с учебными примерами и небольших веб-приложений.

Основной синтаксис подключения:

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest/dist/tf.min.js"></script>
  • @latest автоматически подключает последнюю стабильную версию библиотеки.
  • tf.min.js — минимизированная версия библиотеки, что уменьшает размер загружаемых данных.

Особенности подключения через CDN:

  1. Моментальная доступность: библиотека загружается прямо в браузере и готова к использованию.
  2. Без локальной установки: отсутствует необходимость управлять зависимостями через npm.
  3. Версионный контроль: можно явно указать нужную версию, заменив latest на конкретное число, например @4.12.0.

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

<script>
  // Создание тензора
  const t = tf.tensor([1, 2, 3, 4]);
  t.print();

  // Простейшая операция
  const t2 = t.square();
  t2.print();
</script>

Такой способ позволяет моментально применять базовые функции TensorFlow.js без настройки сборщиков модулей.


Подключение через npm

Для крупных проектов, серверного выполнения или интеграции с современными сборщиками модулей (Webpack, Vite, Parcel) рекомендуется использовать npm. Это обеспечивает контроль версий, возможность работы с TypeScript и интеграцию с другими библиотеками.

Установка пакета:

npm install @tensorflow/tfjs

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

import * as tf from '@tensorflow/tfjs';

// Создание и вывод тензора
const t = tf.tensor([5, 6, 7, 8]);
t.print();

// Выполнение матричных операций
const a = tf.tensor([[1, 2], [3, 4]]);
const b = tf.tensor([[5, 6], [7, 8]]);
const result = tf.matMul(a, b);
result.print();

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

  1. Совместимость с сборщиками модулей: позволяет использовать tree shaking и оптимизацию размера бандла.
  2. Легкость управления зависимостями: версии фиксируются в package.json.
  3. Поддержка Node.js: можно запускать вычисления на сервере, использовать GPU через Node.js bindings.

Подключение дополнительных модулей:

TensorFlow.js имеет несколько специализированных пакетов:

  • @tensorflow/tfjs-node — ускорение вычислений на сервере с использованием C++ backend.
  • @tensorflow/tfjs-vis — визуализация данных и метрик обучения.
  • @tensorflow-models — готовые предобученные модели (например, @tensorflow-models/mobilenet).

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

npm install @tensorflow/tfjs-node
const tf = require('@tensorflow/tfjs-node');

// Тензор с вычислениями на серверном backend
const t = tf.tensor([10, 20, 30]);
t.print();

Отличия и рекомендации по выбору метода

Характеристика CDN npm
Установка Нет необходимости Обязательна
Контроль версий Да, через URL Да, через package.json
Поддержка сборщиков Ограничена Полная
Применение в браузере Прямое подключение Через сборщик
Поддержка Node.js Нет Да
Оптимизация и tree shaking Нет Да

Выбор метода зависит от целей проекта: CDN удобен для небольших демо и быстрых экспериментов, npm — для профессиональных приложений, требующих модульной структуры и производительности.


Резюме по подключению

  • CDN обеспечивает мгновенный доступ к TensorFlow.js в браузере без установки, удобен для учебных примеров и прототипов.
  • npm позволяет интегрировать библиотеку в полноценные проекты, работать с TypeScript и Node.js, использовать дополнительные модули и ускорение через tfjs-node.

Понимание этих подходов является фундаментом для построения любых проектов с TensorFlow.js, от простых демонстраций до сложных веб-приложений и серверных систем машинного обучения.