В TensorFlow.js модели, созданные с помощью API
tf.LayersModel, могут быть сохранены для дальнейшего
использования. Это позволяет не обучать модель повторно при каждом
запуске приложения и обеспечивает переносимость между проектами. Метод
save предоставляет гибкие возможности для сохранения модели
как на стороне клиента, так и на сервере.
saveМетод save применяется к объекту
tf.LayersModel и имеет следующую сигнатуру:
model.save(handlerOrURL, config);
IOHandler), которая управляет
процессом сохранения.{includeOptimizer: true}.Метод возвращает Promise, который разрешается в объект с информацией о сохранённой модели:
{
modelArtifactsInfo: {
dateSaved: '2026-03-07T12:34:56.789Z',
modelTopologyType: 'JSON',
modelTopologyBytes: 12345,
weightSpecsBytes: 67890,
weightDataBytes: 67890
}
}
Для Node.js доступна файловая система как место хранения:
await model.save('file://./my-model');
При этом создаются файлы:
my-model.json — структура сети и метаданные.my-model.weights.bin — бинарные веса модели.Файл .json содержит ссылки на .bin, что
позволяет легко загружать модель обратно через
tf.loadLayersModel.
IndexedDB предоставляет возможность хранить модель прямо в браузере:
await model.save('indexeddb://my-model');
indexeddb:// указывает, что данные сохраняются в
локальной базе IndexedDB.Пример загрузки обратно:
const loadedModel = await tf.loadLayersModel('indexeddb://my-model');
Модели могут быть сохранены пользователем в виде файлов через
downloads://:
await model.save('downloads://my-model');
После вызова этого метода браузер предложит сохранить
my-model.json и соответствующий бинарный файл весов.
Параметры конфигурации позволяют управлять деталями сохранения:
true. Определяет, сохраняются ли состояния оптимизатора
(например, моментум, адаптивные коэффициенты). Если модель будет
использоваться только для инференса, можно указать false,
чтобы уменьшить размер файлов.await model.save('localstorage://my-model', { includeOptimizer: false });
TensorFlow.js позволяет создавать собственные IOHandler
для сохранения модели в нестандартные хранилища, например, на сервер
через HTTP POST:
const myHandler = {
save: async function(modelArtifacts) {
await fetch('https://myserver.com/upload', {
method: 'POST',
body: JSON.stringify(modelArtifacts)
});
return {
modelArtifactsInfo: {
dateSaved: new Date(),
modelTopologyType: 'JSON',
modelTopologyBytes: modelArtifacts.modelTopology
? JSON.stringify(modelArtifacts.modelTopology).length
: 0,
weightSpecsBytes: modelArtifacts.weightSpecs.length,
weightDataBytes: modelArtifacts.weightData.byteLength
}
};
}
};
await model.save(myHandler);
Такой подход позволяет интегрировать TensorFlow.js с облачными хранилищами или собственными серверами, обеспечивая гибкость в развертывании моделей.
tf.loadLayersModel для проверки
целостности и совместимости.С помощью tf.LayersModel.save управление моделями
становится предсказуемым, гибким и полностью интегрированным с
различными средами выполнения, от браузера до Node.js. Многообразие
способов сохранения и возможность создания пользовательских обработчиков
делают этот метод ключевым инструментом при работе с TensorFlow.js.