【发布时间】:2019-06-30 12:54:23
【问题描述】:
我在 NODE 上运行 TensorFlow.JS,我希望能够在训练过程中的某个时间点保存模型。
我尝试将实际模型复制到全局变量,但 JavaScript 对象是通过引用复制的,最后全局变量具有与上一个训练时期相同的模型。
然后我使用许多不同的 JavaScript 方法进行深度克隆(包括 lodash 深度克隆),但我在复制的模型上遇到错误,例如最终丢失的函数(例如 model.evaluate)。
我想知道我可以保存某个检查点的唯一方法是直接使用 model.save() 还是有任何其他方法可以将模型对象复制(按值而不是引用)到全局或类属性。
非常感谢!
** 更新 **
目前对我来说最好的解决方案是创建模型的副本:
const copyModel = (model) => {
const copy = tf.sequential();
model.layers.forEach(layer => {
copy.add(layer);
});
copy.compile({ loss: model.loss, optimizer: model.optimizer });
return copy;
}
- 请考虑您可能需要将一些其他设置从原始模型复制到新模型(副本)。
【问题讨论】:
-
能否请您出示代码?
标签: neural-network tensorflow.js