【Pytorch】Pytorch: Automatic Differentitation (二)

发布时间:2026/10/22 22:31:42
【Pytorch】Pytorch: Automatic Differentitation (二) 这部分是pytorch自动求导的部分#首先导入pytorch包importtorch# 构建一个全为1的tensor,同时设置需要进行梯度求导xtorch.ones(2,2,requires_gradTrue)print(x)tensor([[1., 1.], [1., 1.]], requires_gradTrue)# 做一个加法运算看到也是带有求梯度性质的yx2print(y)tensor([[3., 3.], [3., 3.]], grad_fnAddBackward0)print(y.grad_fn)AddBackward0 object at 0x7f9d17398668#在对y进行更多的操作zy*y*3#建议手写下这个计算过程后面求梯度的时候也得算一下outz.mean()print(z,out)tensor([[27., 27.], [27., 27.]], grad_fnMulBackward0) tensor(27., grad_fnMeanBackward0)# 我不明白为啥这段LZ没有输出啊。。。atorch.randn(2,2,requires_gradFalse)a((a*3)/(a-1))print(a.requires_grad)a.requires_grad_(True)print(a.requires_grad)b(a*a).sum()print(b.grad_fn)# 使用链式法则求解out对x的求导out.backward()print(x.grad)tensor([[4.5000, 4.5000], [4.5000, 4.5000]])#随机产生3个数xtorch.randn(3,requires_gradTrue)yx*2# 当其的平方和开跟小于1000结束循环whiley.data.norm()1000:yy*2print(y)tensor([-1348.8553, 58.7602, -407.5731], grad_fnMulBackward0)# 其实就是设置求导后不同维度的系数可以看到如果将结果除以对应的系数基本上都是一个数量级的如果想获得对应的求导结果可以将系数全部设置为1即可不然按照教程的说法是无法对向量直接求导的vtorch.tensor([0.1,1.0,0.0001],dtypetorch.float)y.backward(v)print(x.grad)tensor([1.0240e02, 1.0240e03, 1.0240e-01])print(x.requires_grad)print((x**2).requires_grad)#当将代码块封装在with这句代码中就可以组织autograd设置跟踪了#打印出来requires_grad为False了withtorch.no_grad():print((x**2).requires_grad)True True False参考地址:https://pytorch.org/tutorials/beginner/blitz/autograd_tutorial.html#sphx-glr-beginner-blitz-autograd-tutorial-py

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询