Keras.js предоставляет возможность загружать предобученные модели Keras и выполнять их инференс непосредственно в браузере на Javascript. Одной из ключевых возможностей, которая расширяет потенциал использования таких моделей, является дообучение на новых данных. Этот процесс позволяет адаптировать модель к конкретной задаче или новому набору данных без необходимости тренировать сеть с нуля.
Предварительно обученная модель экспортируется из Python с помощью формата JSON для структуры сети и бинарного формата HDF5 для весов. В Keras.js они загружаются следующим образом:
const KerasJS = require('keras-js');
const model = new KerasJS.Model({
filepaths: {
model: 'model.json',
weights: 'model_weights.buf',
},
gpu: true
});
model.json содержит архитектуру сети.model_weights.buf хранит параметры модели.gpu позволяет ускорить вычисления на
поддерживаемых устройствах.После загрузки важно убедиться, что модель готова к инференсу:
await model.ready();
Дообучение требует подготовки данных в том же формате, который использовался при исходной тренировке:
// Пример подготовки одного входного изображения
const inputData = new Float32Array([/* значения пикселей */]);
Следует учитывать, что Keras.js ориентирован на инференс, а полноценное обучение в браузере поддерживается частично и с ограничениями:
Для адаптации модели под новые данные можно использовать стратегию fine-tuning:
// Пример изменения весов верхнего слоя
const newWeights = new Float32Array([/* новые значения */]);
model.layers[layerIndex].setWeights(newWeights);
Keras.js позволяет работать с данными, полученными из веб-камер, Canvas, или загруженными через File API:
const canvas = document.getElementById('inputCanvas');
const context = canvas.getContext('2d');
const imageData = context.getImageData(0, 0, canvas.width, canvas.height);
const inputArray = new Float32Array(imageData.data.buffer);
Преобразование изображений в корректный формат модели является обязательным шагом перед обновлением весов.
После обновления весов важно провести тестирование модели на отложенных данных:
const output = await model.predict({input: inputArray});
console.log(output);
Сравнение результатов до и после дообучения позволяет оценить успешность адаптации модели к новым данным.
Дообучение в браузере сильно зависит от производительности устройства:
gpu: true при поддержке WebGL значительно
ускоряет операции.Дообучение моделей в Keras.js реализуется через частичное обновление весов и fine-tuning верхних слоёв, что позволяет адаптировать предобученные сети к новым данным прямо в браузере. Основные моменты успешного дообучения:
Эта методика делает Keras.js мощным инструментом для создания интерактивных веб-приложений с адаптивными нейросетями.