克隆 Tensorflow.js 加载的模型

Clone Tensorflow.js Loaded Model

我有一个模型,hand-shape,它是顺序的和有状态的。 这意味着在每一个推理中,它都依序依赖于前一个推理的输出。

我想运行这个模型的左右手,独立。

我目前的工作解决方案是:

leftModel = await tf.loadLayersModel('hand-shape.json')
rightModel = await tf.loadLayersModel('hand-shape.json')

但是,这有一个缺陷,即从磁盘加载模型两次,而不是一次。

有没有办法加载模型,然后克隆它?

leftModel = await tf.loadLayersModel('hand-shape.json')
rightModel = cloneModelSomehow(leftModel) // don't reload from disk

我找到了 tfjs

的解决方案
// Load model from disk
leftModel = await tf.loadLayersModel('hand-shape.json');

// Clone model
const modelData = new Promise<ModelArtifacts>(resolve => leftModel.save({save: resolve as any}));
rightModel = await tf.loadLayersModel({load: () => modelData});