torch - 打印 model 梯度更新情况

打印所有参数(输出model下所有参数,一大串,眼花缭乱的)

train_loss =  lw[0] *  loss0 + lw[1] * loss1 + lw[2] * loss2 
# loss backward
for name, parms in model.named_parameters():	
   	print('\nBefore backward\n')
    print('-->name:', name)
    print('-->para:', parms)
    print('-->grad_requirs:',parms.requires_grad)
    print('-->grad_value:',parms.grad)
    print("===========================")
#
train_loss.backward()
#
for name, parms in model.named_parameters():	
    print('\nAfter backward\n')
    print('-->name:', name)
    print('-->para:', parms)
    print('-->grad_requirs:',parms.requires_grad)
    print('-->grad_value:',parms.grad)
    print("===========================")

打印第一层参数情况(torch的autograd 只有requires_grad = True的叶子节点在.backward()的过程中属性grad才会存储其梯度的值,也可通过retain_grad设置自定义)

train_loss =  lw[0] *  loss0 + lw[1] * loss1 + lw[2] * loss2 
# loss backward
for name, parms in model.named_parameters():	
    if name == 'module.invertible_model.operations.0.F.conv1.weight':
    	print('\nBefore backward\n')
        print('-->name:', name)
        # print('-->para:', parms)
        print('-->grad_requirs:',parms.requires_grad)
        print('-->grad_value:',parms.grad)
        print("===========================")
#
train_loss.backward()
#
for name, parms in model.named_parameters():	
    if name == 'module.invertible_model.operations.0.F.conv1.weight':
        print('\nAfter backward\n')
        print('-->name:', name)
        # print('-->para:', parms)
        print('-->grad_requirs:',parms.requires_grad)
        print('-->grad_value:',parms.grad)
        print("===========================")
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值