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

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

python 复制代码
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)

运行结果

相关推荐
小王2048 小时前
Day 35:DETR与检测Transformer — 目标检测的范式革命
人工智能·深度学习·transformer
明志数科8 小时前
机器人训练数据质量评估体系:核心维度与全流程质控方法
人工智能·深度学习·机器学习
月华路9 小时前
《模型不玄学》第25章 双头模型:共享底座 + 两个分支
人工智能·深度学习·机器学习
盼小辉丶9 小时前
PyTorch计算机视觉(9)——变分自编码器(VAE)详解与实现
人工智能·pytorch·深度学习·计算机视觉
高洁019 小时前
AI智能体落地价值:从工具赋能到产业重构,解锁企业降本增效新逻辑
人工智能·深度学习·机器学习·transformer·知识图谱
中科院提名者9 小时前
深度学习语音增强架构演进的具体原因,从DNN开始
深度学习·架构·dnn
程序员于老七11 小时前
漫话大模型:训练效率翻倍的秘密——Muon 优化器凭什么干翻 AdamW
深度学习·大模型·ai编程·优化器·muon
程序员良辰11 小时前
Eclipse Memory Analyzer(MAT)入门教程:从生成 Heap Dump 到定位 Java 内存问题
java·ide·eclipse·tomcat·idea
pjj1985412 小时前
Hadoop-python中使用大数据1
java·ide·eclipse