Библиотека ml5.js предоставляет удобные инструменты для работы с предобученными и собственными нейронными сетями в JavaScript. Одной из ключевых возможностей является сохранение и повторная загрузка моделей, что позволяет сохранять результаты обучения и использовать их без необходимости повторного тренинга.
Модель нейронной сети в ml5.js состоит из двух компонентов:
Для сохранения этих компонентов используется формат JSON для архитектуры и bin для весов. Файлы сохраняются локально или на сервере и могут быть загружены позднее для использования в веб-приложениях.
Метод сохранения доступен через объект
ml5.neuralNetwork. После завершения обучения модели
применяется метод:
// Пример сохранения модели
model.save('my-model');
При этом создаются два файла:
my-model.json – описание структуры сети.my-model.weights.bin – сохранённые веса нейронной
сети.Если требуется указать конкретный путь или имя для файлов, можно использовать:
model.save({
json: 'custom-model.json',
weights: 'custom-model.weights.bin'
});
Сохранение позволяет переносить модель между проектами или использовать её повторно без повторного обучения, что особенно важно при работе с большими датасетами.
Для повторного использования модели применяется метод
ml5.neuralNetwork.load, который принимает объект с путями к
файлам:
ml5.neuralNetwork.load({
model: 'my-model.json',
metadata: 'my-model.meta.json', // опционально, если есть метаданные
weights: 'my-model.weights.bin'
}).then((loadedModel) => {
// Использование загруженной модели
});
Особенности загрузки:
Promise или async/await..meta.json) включают информацию о типе
сети, параметрах обучения и используемых признаках.После загрузки модели можно выполнять предсказания на новых данных:
const inputData = { feature1: 0.5, feature2: 1.2 };
loadedModel.predict(inputData, (err, results) => {
if (err) {
console.error(err);
} else {
console.log(results);
}
});
Если требуется продолжить обучение на новых данных, можно
использовать метод train:
loadedModel.train({ inputs: newInputs, outputs: newOutputs }, trainingOptions, () => {
console.log('Дополнительное обучение завершено');
});
Таким образом, сохранённая модель полностью сохраняет свои возможности, включая архитектуру, веса и параметры обучения.
.meta.json, особенно если модель будет использоваться в
разных проектах.В веб-приложениях файлы модели можно загружать:
file input
пользователя.Сохранение и загрузка моделей в ml5.js обеспечивает гибкость при разработке веб-приложений, снижает нагрузку на обучение и позволяет использовать одну и ту же модель в разных проектах без потери качества предсказаний.