当前位置: 首页 > news >正文

Pytorch如何判断两个模型的权重是否相同(比较权重差异/参数字典)

  参考资料:

  GPT-4o mini的回答

  第一种方法是使用md5sum这个命令(Linux上),但是由于环境的不同,哪怕是load之后转存似乎都会有差,所以效果不大。

  第二种方法是使用代码比较,这段代码是我找GPT要的,感觉非常不错。

from safetensors.torch import load_fileA = load_file("/data1/chaishang.cs/Tryon/hf_DATA/almmtryon-refinpaintxl-v0-1/unet/diffusion_pytorch_model.safetensors")
B = load_file("/data1/chaishang.cs/Tryon/datasets_and_weights/exps/refinpaintXL_v1_36cate_batch1_itagged_task1fulltask2partly_bz2_a100/2024-08-14T21-26-40/22000/unet/diffusion_pytorch_model.safetensors")weight_changes = {}# 遍历模型的所有参数
for (name, initial_param), (_, trained_param) in zip(A.items(), B.items()):# 计算权重变化change = torch.norm(trained_param - initial_param)  # 计算 L2 范数weight_changes[name] = change.item()  # 存储变化量# 打印每层权重的变化
for layer_name, change in weight_changes.items():print(f"Layer: {layer_name}, Change: {change:.6f}")

  如果参数是内存中的state_dict,对A和B进行替换即可。输出结果如下:


http://www.mrgr.cn/news/1384.html

相关文章:

  • 【Oracle篇】统计信息和动态采样的深度剖析(第一篇,总共六篇)
  • Unity引擎基础知识
  • Linux系统-系统信息网络目录文件的相关命令
  • 【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(九)
  • Web 3 一些常见术语
  • 自动化智能立体库验收报告
  • shapefile文件解析-shp解析
  • Manim的一个用于数学动画的 Python 库中渲染代码的功能。
  • 【layUI】只能选某个特定区间的日历
  • LeetCode 第三十天2024.8.15
  • Vue 和 React 各自的背景和特点
  • logback配置文件-入门
  • 揭秘五大无线领夹麦克风常见智商税:选购时务必多注意!
  • 集师知识付费小程序开发
  • React概念理解
  • Linux:进程替换
  • Linux:CentOS配置
  • LinuX下ETCD安装、配置、命令
  • Redis分布式锁
  • Kubernetes的快速安装