首页 > 其他分享 >日新月异 PyTorch - pytorch 基础: 自动求导

日新月异 PyTorch - pytorch 基础: 自动求导

时间:2024-09-24 15:01:46浏览次数:8  
标签:tensor requires torch PyTorch pytorch True 求导 backward grad

源码 https://github.com/webabcd/PytorchDemo
作者 webabcd

日新月异 PyTorch - pytorch 基础: 自动求导

示例如下:

basic\demo02.py

import torch
import math

# 自动求导的简单说明
def sample1():
    # requires_grad 用于表示是否需要自动求导
    k = torch.tensor(1.23, requires_grad=True)
    x = torch.tensor(4.56, requires_grad=True)
    b = torch.tensor(7.89, requires_grad=True)
    y = k*x + b
    # 反向传播以便自动计算梯度
    y.backward()
    # 获取 x 的导数(对于一次函数来说,x 的导数就是斜率 k)
    print(x.grad) # tensor(1.2300)

    x = torch.tensor(0., requires_grad=True)
    y = torch.sin(x)
    y.backward()
    # sin(x) 的导数是 cos(x)
    print(x.grad) # tensor(1.)

    x = torch.tensor([0, math.pi/2, math.pi, math.pi/2*3, math.pi*2], requires_grad=True)
    y = torch.sin(x)
    # 标量可以直接 backward()
    # 但是这里的 y 是个矢量,对于非标量来说,其在调用 backward() 时要传入相同形状的参数
    y.backward(torch.ones(5))
    # sin(x) 的导数是 cos(x)
    print(x.grad) # tensor([ 1.0000e+00, -4.3711e-08, -1.0000e+00,  1.1925e-08,  1.0000e+00])

    x = torch.tensor(1.11, requires_grad=True)
    y = x * 2
    y = y * 2
    y = y * 2
    y.backward()
    # 张量的所有梯度将会自动累加到​​.grad​​ 属性
    print(x.grad) # tensor(8.)
    

if __name__ == '__main__':
    # 自动求导的简单说明
    sample1()


源码 https://github.com/webabcd/PytorchDemo
作者 webabcd

标签:tensor,requires,torch,PyTorch,pytorch,True,求导,backward,grad
From: https://www.cnblogs.com/webabcd/p/18429169/pytorch_basic_demo02

相关文章

  • 日新月异 PyTorch - pytorch 基础: 通过卷积神经网络(Convolutional Neural Networks,
    源码https://github.com/webabcd/PytorchDemo作者webabcd日新月异PyTorch-pytorch基础:通过卷积神经网络(ConvolutionalNeuralNetworks,CNN)做图片分类-通过ResNet50做图片分类的学习(对cifar10数据集做训练和测试),保存训练后的模型,加载训练后的模型并评估指定的......
  • 基于卷积神经网络的布料、布匹原料识别系统,resnet50,mobilenet模型【pytorch框架+pytho
       更多目标检测和图像分类识别项目可看我主页其他文章功能演示:基于卷积神经网络的布料、布匹原料识别系统,resnet50,mobilenet【pytorch框架,python,tkinter】_哔哩哔哩_bilibili(一)简介基于卷积神经网络的布料、布匹原料识别系统是在pytorch框架下实现的,这是一个完整的项目......
  • ridcp_pytorch基于codebook先验知识的图像去雾模型
    RIDCP论文RIDCP:RevitalizingRealImageDehazingviaHigh-QualityCodebookPriorshttps://arxiv.org/pdf/2304.03994.pdf模型结构ridcp先使用Encoder对输入进行特征提取得到Z,特征Z流向Gvq以及G,流向Gvq的Z被替换(CHM方法)为码本中的特征Zvq,然后Zvq通过Gvq获取各个层的......
  • 使用Python的subprocess执行另外一个python文件(应用之一是Pytorch中如何让多个不同的
    文章目录subprocess基础使用subprocess高级使用subprocess多进程subprocess执行情况在深度学习中的应用话不多说了,直接看代码。subprocess基础使用假设我要运行一个名字叫helloworld.py的文件,在主程序如下运行即可。主程序importsubprocessp=subprocess.Pop......
  • 动手学深度学习8.7. 通过时间反向传播-笔记&练习(PyTorch)
    本节课程地址:本节无视频本节教材地址:8.7.通过时间反向传播—动手学深度学习2.0.0documentation(d2l.ai)本节开源代码:...>d2l-zh>pytorch>chapter_multilayer-perceptrons>bptt.ipynb通过时间反向传播到目前为止,我们已经反复提到像梯度爆炸或梯度消失,以及需要对循环......
  • PyTorch 模型调试与故障排除指南
    在当代深度学习领域,PyTorch已成为开发和训练神经网络的主要框架之一。然而随着模型复杂度的增加和数据规模的扩大,开发者常常面临各种调试和优化挑战。本文旨在为PyTorch开发者提供一个全面的调试指南,涵盖从基础概念到高级技术的广泛内容。本指南的目标读者包括:正在学习PyTo......
  • 【已解决 含代码调试分析】pytorch的维度,为什么计算loss是0维度的,0维度是是什么?作用是
    嘿,你能搜索到这个问题,说明你说一个认真学习的同学,这个问题的细节值得思考。欢迎收藏,会持续更新。请仔细看后面的调试界面。三维维度很好理解,就是只管的认为是长宽高,你能看出下面的计算结果吗?importtorchdim_3=torch.randn(1,2,3)dim_2=torch.randn(1,2)dim_1......
  • fastsam_pytorch图像分割算法模型
    FastSAM论文FastSegmentAnything模型结构以yolov8-seg的instancesegmentation为基础,检测时集成instancesegmentation分支,主要分为两步全实例分割(allinstanceSegmentation)和基于prompt的mask输出(Prompt-guidedSelection),仅使用了2%的SA-1B数据集便得到了差不多的......
  • 《深度学习》—— PyTorch的介绍及PyTorch的CPU版本安装
    文章目录一、PyTorch的简单介绍二、pytorch的CPU版本安装三、torch、torchvision、torchaudio三个库的介绍一、PyTorch的简单介绍PyTorch是一个由FacebookAI实验室开发的深度学习框架,它基于Python,并提供了高效的GPU加速和灵活的模型定义能力。1.PyTorch的基本特点......
  • GoogleNet模型原理及Pytorch实现
    GoogleNet模型,也被称为Inception-v1,是由Google团队在2014年提出的一种深度卷积神经网络架构,专门用于图像分类和特征提取任务。该模型在ILSVRC(ImageNetLargeScaleVisualRecognitionChallenge)比赛中取得了优异成绩,其创新的核心在于引入了“Inception”模块。以下是对Goog......