当前位置: 首页 > article >正文

【代码pycharm】动手学深度学习v2-07 自动求导

老师上课用jupyter 我边听边用pycharm写的

import torch
print('1.自动梯度计算')
x=torch.arange(4.0,requires_grad=True)  # 1.将梯度附加到想要对其计算偏导数的变量
print('x:', x)
y=2*torch.dot(x,x) # 2.记录目标值的计算
print('y:', y)
y.backward()   # 3.执行它的反向传播函数
print('x.grad:',x.grad) # 4.访问得到的梯度
print('x.grad == 4*x:',x.grad==4*x)
print('2.计算另一个函数')
x.grad.zero_()
y=x.sum()
y.backward()
print('x.grad:',x.grad)
print('3.非标量变量的反向传播')
x.grad.zero_()
y=x*x
y.sum().backward()
print('x.grad:',x.grad)
print('4.将某些计算移动到记录的计算图之外')
x.grad.zero_()
y=x*x
u=y.detach()
z=u*x
z.sum().backward()
print('x.grad==u:',x.grad==u)
x.grad.zero_()
y.sum().backward()
print('x.grad==2*x:',x.grad==2*x)
print('5.Python控制流的梯度计算')
def f(a):
    b=a*2
    while b.norm()<1000:
        b=b*2
    if b.sum()>0:
        c=b
    else:
        c=100*b
    return c
a=torch.randn(size=(),requires_grad=True)
d=f(a)
d.backward()
print('6.a.grad==d/a',a.grad==d/a)

运行结果
在这里插入图片描述


http://www.kler.cn/a/409037.html

相关文章:

  • Spring Boot项目集成Redisson 原始依赖与 Spring Boot Starter 的流程
  • 【Ubuntu24.04】服务部署(Docker)
  • 递归算法专题一>Pow(x, n)
  • 数据集-目标检测系列- 牵牛花 检测数据集 morning_glory >> DataBall
  • NFS搭建
  • 实际工程里为什么不用面向过程编程而是用面向对象编程
  • C语言-详细讲解-P1217 [USACO1.5] 回文质数 Prime Palindromes
  • 【C++】list模拟实现(详解)
  • css:感觉稍微高级一点的布局
  • SpringBoot社团管理:安全与维护
  • 【系统架构设计师】真题论文: 论软件需求管理(包括解题思路和素材)
  • Redis 常用数据类型插入性能对比:循环插入 vs. 批量插入
  • 自主导航:机器人如何在复杂环境中找到自己的路?
  • 小程序免备案:快速部署与优化的全攻略
  • Java 查询最大最小值 详解
  • C语言教程指针笔记整理(三)
  • 如何选择服务器
  • C++之旅-set和map掌握篇
  • 深度优先搜索题目合集
  • Java语言程序设计 选填题知识点总结
  • Linux 正则表达式(basic and extened)
  • uiautomator案例
  • Excel中超链接打开文件时报错 “打开此文件的应用程序没有注册“ 的一个解决办法
  • C#构建一个简单的前馈神经网络
  • linux命令之openssl用法
  • 重绘重排、CSS树DOM树渲染树、动画加速 ✅