pytorch梯度调试以及模型的保存和加载


1、打印梯度

for name, param in model.named_parameters():
    if param.requires_grad:
        if param.grad is not None:
            print("{}, gradient: {}".format(name, param.grad.mean()))
        else:
            print("{} has not gradient".format(name))

 

2、保存模型和加载模型

# 保存模型到 filename
torch.save({
'epoch': epoch + 1, 'model': model.module.state_dict() if args.mGPUs else model.state_dict(), 'optimizer': optimizer.state_dict(), }, filename)
# 从 filename 加载模型
checkpoint = torch.load(filename)
start_epoch = checkpoint['epoch']
checkpoint['model'] = {k: v for k, v in chkpt['model'].items() if model.state_dict()[k].numel() == v.numel()}
model.load_state_dict(checkpoint['model'], strict=False)
optimizer.load_state_dict(checkpoint['optimizer'])

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM