-
一、torch.autograd.backward(tensors, grad_tensors=None, retain_graph=None, create_graph=False)功能:自动求取梯度
-
grad_tensors:多梯度权重
# 自动求取梯度 # import torch # w = torch.tensor([1.],requires_grad=True) # x = torch.tensor([2.],requires_grad=True) # a = torch.add(w, x) #逐位相加 # b = torch.add(w, 1) # y = torch.mul(a, b)# 逐位相乘 # # c = y.backward(retain_graph = True) # print(c) -
create_graph:创建导数计算图,用于高阶求导
-
retain_graph:保存计算图
-
tensors:用于求导的张量,如 loss
-
2、torch.autograd.grad(outputs, inputs, grad_outputs=None, retain_graph=None, create_graph=False)功能:求取梯度
- outputs:用于求导的张量,如 loss
- inputs:需要梯度的张量
- create_graph:创建导数计算图,用于高阶求导
- retain_graph:保存计算图
- grad_outputs:多梯度权重
# 求取梯度 # import torch # x = torch.tensor([3.],requires_grad=True) # y = torch.pow(x, 2) # grad_1 = torch.autograd.grad(y, x, create_graph = True) # grad_2 = torch.autograd.grad(grad_1[0],x) # print(grad_2)- 实例
# 实例,求y=x方的一阶与二阶偏导 import torch x = torch.tensor([3.], requires_grad=True) y = torch.pow(x,2) #求取一阶导数 grad_1 =torch.autograd.grad(y,x,create_graph=True) #求取二阶导数 grad_2 = torch.autograd.grad(grad_1,x) #此处值x是确定的,开始给定了3 # 展示一阶倒数的结果 print(grad_1) #展示二阶导数结果 print(grad_2) # 求取y=x的立方的一阶二阶三阶导数 # 创建x的初值 import torch # 创建x,并赋予初值 x = torch.tensor([2],requires_grad = True) # 创建y y = torch.pow(x, 3) # 做一阶导数 grad_1 = torch.autograd.grad(y, x, create_graph=True) # 做二阶导数 grad_2 = torch.autograd.grad(grad_1[0], x, create_graph=True) # 做三阶导数 grad_3 = torch.autograd.grad(grad_2[0], x, create_graph=False) print(grad_1) print(grad_2) print(grad_3)
-
pytorch自动微分
Fiona.y2024-08-23 9:39
相关推荐
waterfeeling1 小时前
用 Context7 做一次点云配准的调研—测试—报告闭环:鲁棒 ICPData-Miner5 小时前
面对 AI 大模型智能涌现,如何从技术层面保护好隐私与数据安全?hpoenixf5 小时前
当 AI 开始谈“买什么”,研究助手离投顾和交易还有多远?大模型真好玩5 小时前
如何让视频模型对你言听计从?结构化提示词助你生成电影级画面zhang133830890756 小时前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案特立独行的猫a6 小时前
会说确认叫车才下单-启元机器人官方滴滴打车技能源码详解老金带你玩AI6 小时前
GPT-6.1 Terra上线:更便宜了,干活到底怎么样?会议咨询6 小时前
2027年电力电子、人工智能与大数据国际会议(PEABD 2027)Jsundoku6 小时前
第五章 深度学习 -- 卷积神经网络水如烟7 小时前
孤能子视角:SEP《人工智能的认识论》EIS读法·理解——理解幻觉与解压缩幻觉:同一缺口,两份报告