+18888889999
诚信为本:市场永远在变,诚信永远不变。

神经网络修改后,如何加载之前预训练模型的优化器参数?

你的位置: 首页 > 门徒平台资讯

神经网络修改后,如何加载之前预训练模型的优化器参数?

2024-08-26 05:32:38

更新:一开始没有意识到修改神经网络是在结构上进行的。比如 fine-tuning 的时候通常重新调整 output dimension,所以最后的 fc layer 也会变。这样原来的 fc layer 的 values 就要都扔掉了。

optimizer 的 load_state_dict 和 model 的很相似,都是把 checkpoint 中的数据按顺序 load 进来,所以声明了 model_new 并声明了对应的 optimizer_new 之后,要手动修改 checkpoint 里的数据,把这里面你能 load 的数据放在合适的位置,然后在 optimizer_new 里新增的不能 load 的位置就留个空位。然后用 load_state_dict 就可以了。


需要保存的时候就保存下来

state={'state_dict': model.state_dict(),
         'optimizer' : optimizer.state_dict(),
         'other_things' : other_things
         }
torch.save(state, save_file_path)

然后就可以 load 进来了

checkpoint = torch.load(save_file_path)
optimizer.load_state_dict(checkpoint['optimizer'])

地址:海南省海口市玉沙路58号  电话:0898-66889888  手机:18888889999
Copyright © 2012-2018 门徒-门徒娱乐-注册登录站 版权所有 ICP备案编:琼ICP备88889999号 

平台注册入口