PyTorch中怎么进行梯度计算和反向传播

1949idc 2年前 (2024-09-18) 阅读数 423 #深度学习

在PyTorch中,可以通过torch.autograd模块来进行梯度计算和反向传播。以下是一个简单的示例代码:

import torch

# 创建一个张量并设置requires_grad=True来追踪其计算历史
x = torch.tensor([2.0], requires_grad=True)
y = torch.tensor([3.0], requires_grad=True)

# 定义一个计算图
z = x * y

# 计算z相对于x和y的梯度
z.backward()

# 访问x和y的梯度
print(x.grad)  # 输出tensor([3.])
print(y.grad)  # 输出tensor([2.])

在这个示例中,我们首先创建了两个张量xy,并设置requires_grad=True来追踪它们的计算历史。然后我们定义了一个计算图z = x * y,然后调用z.backward()来计算z相对于xy的梯度。最后我们可以通过访问x.grady.grad来获取梯度值。

版权声明

本文内容由互联网用户自发贡献,该文观点仅代表作者本人
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

© 2010 首途云安 & 厦门硕顿信息技术有限公司 & 闽ICP备11016866号  增值电信业务经营许可证:B1-20203020 地址:福建厦门思明区嘉禾路297号1806
高新技术企业
软件产品证书
计算机软件著作权
ISO认证
国家3A企业