pytorch自动微分

  1. 一、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)
相关推荐
点云SLAM4 分钟前
Discrepancy 英文单词学习
人工智能·学习·英文单词学习·雅思备考·discrepancy·不一致、不协调·矛盾
百数平台5 分钟前
如何用数据看板实现实验室管理迭代?采购 / 巡检 / 培训数据可视化方案,适配合规政策要求
大数据·人工智能
haiyu_y10 分钟前
Day 27 通用机器学习流水线
人工智能·python·机器学习
青稞社区.11 分钟前
Fast-dLLM v2:高效训练推理的块扩散大语言模型框架
人工智能·语言模型·自然语言处理
wshzd11 分钟前
LLM之Agent(三十八)|AI Agents(七):Multi-Agent架构
人工智能·架构
Yuner200017 分钟前
Python深度学习:从入门到精通
人工智能·深度学习·机器学习
Silence_Jy18 分钟前
deepseek-R1技术报告解析
python·深度学习·transformer
LaughingZhu31 分钟前
Product Hunt 每日热榜 | 2025-12-06
大数据·人工智能·经验分享·搜索引擎·产品运营
沫儿笙39 分钟前
川崎焊接机器人保护气体省气
人工智能·机器人
测试人社区—527243 分钟前
你的单元测试真的“单元”吗?
前端·人工智能·git·测试工具·单元测试·自动化·log4j