pth文件数据修改
在調用github上下載的代碼后
model.load_state_dict(a.pth)編譯不過的情況
使用了 model.load_state_dict(a.pth,strict = False)依舊不能解決
后來通過分析模型發現,確實是某些層的參數量不匹配,但是這些層的參數其實通過復制成需要的大小就可以解決問題,所以有了以下的方法
1. 分析pth的結構
import torch fy=torch.load(路徑) for i in fy.keys()print(i+' '+str(list(fy[i].size())))2.單個數值的修改
a = torch.load("OldWeights.pth")a["layer1.0.coefficient"] = torch.FloatTensor([1.2]) a["layer1.1.coefficient"] = torch.FloatTensor([1.5])torch.save(a, "Weights.pth")3.某層數據修改
import numpy as np a = torch.load("OldWeights.pth") //t 為這層原本存的值 b = np.ones(shape=[64])*t a["layer1.0.coefficient"] = torch.FloatTensor(b)torch.save(a, "Weights.pth")總結
- 上一篇: Nginx反向代理与负载均衡应用实践(二
- 下一篇: 关于独立DFS和域DFS板书