首页 > 解决方案 > tensorflow js如何从另一个模型加载权重

问题描述

我有两个模型m1m2

我想将模型的权重更新m1m2

在带有 PyTorch 的 python 中,可以使用这行代码来完成:

m1.load_state_dict(m2.state_dict())

但我在互联网上找不到任何关于它的信息。

根据本文档,我发现的唯一内容: https ://www.tensorflow.org/js/guide/save_load

例如,通过本地存储保存m2,然后将其完全加载到m1,但我下载并再次保存它没有意义,以便我可以更新权重。

标签: javascripttensorflowtensorflow.js

解决方案


加载另一个模型的权重。

如问题所示,这可以通过保存第一个模型然后将其加载为另一个模型来完成。

下载并再次保存它对我来说没有意义,只是为了更新权重。

如果两者不相同意味着它们具有相同的拓扑,则通过模型 1 的权重完全更新模型 2 是没有意义的。没有直接克隆模型并将其分配给另一个变量的方法。为此,需要将该模型作为另一个模型加载,或者将其权重复制并分配给具有相同拓扑的另一个模型。

model.getWeight并且model.setWeights可以使用

model2.setWeights(model1.getWeights());

如果要部分更新模型 2,即更新某些层的权重,则已在此处此处的这些答案中进行了讨论


推荐阅读