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