【代码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)

运行结果

相关推荐
海边夕阳20064 小时前
【每天一个AI小知识】:什么是生成对抗网络?
人工智能·经验分享·深度学习·神经网络·机器学习·生成对抗网络
Nerd Nirvana8 小时前
VSCode配置及问题解决一览
ide·vscode·编辑器·嵌入式开发·配置管理·vscode-server
赵得C9 小时前
深度学习中的梯度问题与激活函数选择:从理论到实践
人工智能·深度学习
金融小师妹9 小时前
基于LSTM-GARCH混合模型:降息预期驱动金价攀升,白银刷新历史峰值的蒙特卡洛模拟验证
大数据·人工智能·深度学习·1024程序员节
晨非辰10 小时前
算法闯关日记 Episode :解锁链表「环形」迷局与「相交」奥秘
数据结构·c++·人工智能·后端·python·深度学习·神经网络
Aspect of twilight10 小时前
2D/3D bounding box计算方式详解
深度学习·算法题
仙女修炼史10 小时前
目标分割学习之U_net
人工智能·深度学习·学习
Dfreedom.11 小时前
机器学习模型误差深度解读:从三类来源到偏差-方差权衡
人工智能·深度学习·机器学习·误差·偏差方差权衡
MR_Colorful11 小时前
从零开始:Windows 深度学习GPU环境配置完整指南(以TensorFlow为例)
人工智能·深度学习
xwill*11 小时前
π0: A Vision-Language-Action Flow Model for General Robot Control
人工智能·深度学习