Я запускаю TensorFlow.JS на NODE, и я хотел бы иметь возможность сохранить модель в процессе обучения в определенный момент.
Я пытался просто скопировать фактическую модель в глобальную переменную, но объект JavaScript копируется по ссылке, и в конце глобальная переменная имеет ту же модель, что и в прошлую эпоху обучения.
Iзатем использовал много разных методов JavaScript для глубокого клонирования (включая глубокое клонирование lodash), но я получаю ошибки в копируемой модели, например функции, которые в конечном итоге отсутствуют (например, model.evaluate).
Интересно, единственный лиЯ могу сохранить определенную контрольную точку напрямую, используя model.save () или если есть какой-либо другой способ просто скопировать (по значению, а не по ссылке) объект модели в глобальное или классовое свойство.
Спасибо заadvane!
** ОБНОВЛЕНИЕ **
Сейчас самое лучшее решение, которое мне помогло, - это создать копию модели:
const copyModel = (model) => {
const copy = tf.sequential();
model.layers.forEach(layer => {
copy.add(layer);
});
copy.compile({ loss: model.loss, optimizer: model.optimizer });
return copy;
}
- Учтите, что вам может потребоваться скопировать некоторые другие параметры из исходной модели в новую (копию).