TensorFlow.js предоставляет гибкие механизмы для сохранения и загрузки моделей машинного обучения. Работа с файловой системой особенно актуальна в Node.js, где доступ к локальным файлам позволяет управлять моделями вне браузера и организовывать долговременное хранение обученных сетей.
Модель в TensorFlow.js состоит из двух ключевых компонентов:
.bin),
содержащие параметры нейронной сети.Формат хранения позволяет сохранять модели как в одной папке с
отдельными файлами весов, так и объединять их в единый архив при
необходимости. В Node.js чаще всего используется метод
file:// для указания пути к файловой системе.
Сохранение модели осуществляется методом model.save().
Для сохранения в локальную файловую систему используется следующая
структура:
const tf = require('@tensorflow/tfjs-node');
async function saveModel(model, path) {
await model.save(`file://${path}`);
console.log(`Модель успешно сохранена в ${path}`);
}
Пояснения:
file:// указывает на работу с файловой системой.path должен быть абсолютным или относительным путем к
папке, где будут созданы файлы model.json и
.bin.save() возвращает промис, который завершится
после успешного сохранения.Важно создавать отдельную папку для каждой версии модели, чтобы избежать перезаписи файлов. Структура папки после сохранения обычно выглядит так:
/my-model
├─ model.json
├─ group1-shard1of1.bin
Для загрузки сохраненной модели используется функция
tf.loadLayersModel(). Пример:
const tf = require('@tensorflow/tfjs-node');
async function loadModel(path) {
const model = await tf.loadLayersModel(`file://${path}/model.json`);
console.log('Модель загружена');
return model;
}
Особенности загрузки:
model.json.model.json, должны
находиться в той же папке.При разработке проектов с большим количеством моделей рекомендуется структурировать директории следующим образом:
/models
├─ model_v1
│ ├─ model.json
│ └─ group1-shard1of1.bin
├─ model_v2
│ ├─ model.json
│ └─ group1-shard1of1.bin
Такой подход упрощает откат к предыдущей версии модели и позволяет хранить экспериментальные варианты без риска потери данных.
tfjs_layers_modelTensorFlow.js использует несколько форматов для сериализации моделей.
Наиболее распространённый — tfjs_layers_model, который
подходит для моделей, построенных через tf.Sequential или
tf.Model. Примеры:
Сохранение:
await model.save('file://./models/my_model');Загрузка:
const model = await tf.loadLayersModel('file://./models/my_model/model.json');Метод автоматически обрабатывает веса и архитектуру, обеспечивая совместимость между разными версиями TensorFlow.js.
@tensorflow/tfjs-node для ускорения операций с TensorFlow
через нативные библиотеки.С помощью этих механизмов управление моделями в TensorFlow.js становится структурированным, предсказуемым и безопасным, что особенно важно в долгосрочных проектах с регулярным обновлением нейронных сетей.