栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pytorch得到梯度计算结果

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pytorch得到梯度计算结果

借助pytorch可以很方便的计算梯度,但需要明确的是:

    只有float类型的Tensor才可以只有最后是一个标量才可以求导,就是最后的值只有大小,不能自带方向

文章目录

逐步计算梯度完整代码参考文章

逐步计算梯度

首先构造一个Tensor

import torch

value_list = [1, 2, 3, 4]
x = torch.tensor(value_list, requires_grad=True, dtype=torch.float64)

判断能否求导:

x.requires_grad

对x做操作:

y = torch.pow(x, 2)
z = y * 3

然后求导:

p = torch.sum(y)
p.backward()
# 或下面的方法也可以
# z.backward(torch.ones_like(y))

这样就计算出了x在链式求导后的梯度值:

print(x.grad)

得到:

tensor([2., 4., 6., 8.], dtype=torch.float64)
完整代码
import torch

value_list = [1, 2, 3, 4]

x = torch.tensor(value_list, requires_grad=True, dtype=torch.float64)
y = torch.pow(x, 2)
z = y * 3
p = torch.sum(y)
p.backward()
# z.backward(torch.ones_like(y))

print(x.grad)
参考文章

如何使用pytorch自动求梯度:https://juejin.cn/post/6854573219807461383

Autograd:PyTorch中的梯度计算:https://zhuanlan.zhihu.com/p/29904755

pytorch的梯度计算以及backward方法:https://blog.csdn.net/f156207495/article/details/88727860

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/740119.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号