【Pytorch学习笔记】zero_grad梯度清零示例

文章目录

  • 前言
  • 一、分步示例代码
    • 1.引入库
    • 2.创建数据进行sgd梯度下降
    • 3.参数组,第一个参数(w1)的梯度
    • 4.执行zero_grad()之后,参数w1的梯度
  • 二、完整示例代码
  • 总结


前言

梯度清零示例,打印可视化。


提示:以下是本篇文章正文内容,下面案例可供参考

一、分步示例代码

1.引入库

代码如下(示例):

# coding: utf-8

import torch
import torch.optim as optim

2.创建数据进行sgd梯度下降

代码如下(示例):

w1 = torch.randn(2, 2)
w1.requires_grad = True

w2 = torch.randn(2, 2)
w2.requires_grad = True

optimizer = optim.SGD([w1, w2], lr=0.001, momentum=0.9)

optimizer.param_groups[0]['params'][0].grad = torch.randn(2, 2)

3.参数组,第一个参数(w1)的梯度

print('参数w1的梯度:')
print(optimizer.param_groups[0]['params'][0].grad, '\n')  # 参数组,第一个参数(w1)的梯度

4.执行zero_grad()之后,参数w1的梯度

optimizer.zero_grad()
print('执行zero_grad()之后,参数w1的梯度:')
print(optimizer.param_groups[0]['params'][0].grad)  # 参数组,第一个参数(w1)的梯度

二、完整示例代码

# coding: utf-8

import torch
import torch.optim as optim

# ----------------------------------- zero_grad

w1 = torch.randn(2, 2)
w1.requires_grad = True

w2 = torch.randn(2, 2)
w2.requires_grad = True

optimizer = optim.SGD([w1, w2], lr=0.001, momentum=0.9)

optimizer.param_groups[0]['params'][0].grad = torch.randn(2, 2)

print('参数w1的梯度:')
print(optimizer.param_groups[0]['params'][0].grad, '\n')  # 参数组,第一个参数(w1)的梯度

optimizer.zero_grad()
print('执行zero_grad()之后,参数w1的梯度:')
print(optimizer.param_groups[0]['params'][0].grad)  # 参数组,第一个参数(w1)的梯度


总结

以上就是今天要讲的内容,本文仅供学习参考!

你可能感兴趣的:(python,深度学习,pytorch,pytorch,学习,深度学习,人工智能,python)