javascript - tensorflow js如何从另一个模型加载权重
问题描述
我有两个模型m1
,m2
我想将模型的权重更新m1
为m2
在带有 PyTorch 的 python 中,可以使用这行代码来完成:
m1.load_state_dict(m2.state_dict())
但我在互联网上找不到任何关于它的信息。
根据本文档,我发现的唯一内容: https ://www.tensorflow.org/js/guide/save_load
例如,通过本地存储保存m2
,然后将其完全加载到m1
,但我下载并再次保存它没有意义,以便我可以更新权重。
解决方案
加载另一个模型的权重。
如问题所示,这可以通过保存第一个模型然后将其加载为另一个模型来完成。
下载并再次保存它对我来说没有意义,只是为了更新权重。
如果两者不相同意味着它们具有相同的拓扑,则通过模型 1 的权重完全更新模型 2 是没有意义的。没有直接克隆模型并将其分配给另一个变量的方法。为此,需要将该模型作为另一个模型加载,或者将其权重复制并分配给具有相同拓扑的另一个模型。
model.getWeight
并且model.setWeights
可以使用
model2.setWeights(model1.getWeights());
如果要部分更新模型 2,即更新某些层的权重,则已在此处和此处的这些答案中进行了讨论
推荐阅读
- junit - 如何在spring JUnit中测试一个包含@Lazy @autowired bean的类
- java - Android 微调器不起作用
- javascript - 在返回承诺的函数中调用递归回调
- javascript - 如何在我的 table.js 页面中包含分页?
- javascript - XXX 不是 JavaScript 中的函数
- python - 如何在 python 中实现 API.AI 机器人?
- python - Python 2.7 Pyautogui.locateOnScreen 不工作
- jenkins - Jenkins - 如何将测试日志复制回工件目录以进行构建
- c# - 访问当前从 gmail 邮箱发送/接收的邮件
- c++ - C++ 和标准容器:成员的内存地址