PyTorch基本使用-自动微分模块

学习目的:掌握自动微分模块的使用

训练神经网络时,最常用的算法就是反向传播。在该算法中,参数(模型权重)会根据损失函数关于对应参数的梯度进行调整。为了计算这些梯度,PyTorch 内置了名为 torch.autograd的微分引擎。它支持任意计算图的自动梯度计算:
在这里插入图片描述

接下来我们使用这个结构进行自动微分模块的介绍。我们使用 backward 方法、grad 属性来实现梯度的计算和访问。

  • 当X为标量时梯度的计算

    import torch
    # 1. 当X为标量时梯度的计算
    def test01():x = torch.tensor(5)# 目标值y = torch.tensor(0.)# 设置要更新的权重和偏置的初始值w = torch.tensor(1.0,requires_grad=True,dtype=torch.float32)b = torch.tensor(3.0,requires_grad=True,dtype=torch.float32)#设置网络的输出值z = x*w + b #矩阵乘法# 设置损失函数,并进行损失计算loss = torch.nn.MSELoss()loss = loss(z,y)# 自动微分loss.backward()# 打印w,b变量的梯度# backward 函数计算的梯度值会存储在张量的grad 变量中print('W的梯度:',w.grad)print('B的梯度:',b.grad)test01()
    

    输出结果:

    W的梯度: tensor(80.)
    B的梯度: tensor(16.)
    
  • 当X为多维张量时梯度计算

    import torch
    def test02():# 输入张量 2*5x = torch.ones(2,5)# 目标张量 2*3y = torch.zeros(2,3)# 设置要更新的权重和偏置的初始值w = torch.randn(5,3,requires_grad=True)b = torch.randn(3,requires_grad=True)#设置网络的输出值z = torch.matmul(x,w)+ b #矩阵乘法# 设置损失函数,并进行损失计算loss = torch.nn.MSELoss()loss = loss(z,y)# 自动微分loss.backward()# 打印w,b变量的梯度# backward 函数计算的梯度值会存储在张量的grad 变量中print('W的梯度:',w.grad)print('B的梯度:',b.grad)test02()
    

    输出结果:

    W的梯度: tensor([[-1.7502,  0.8537,  0.6175],[-1.7502,  0.8537,  0.6175],[-1.7502,  0.8537,  0.6175],[-1.7502,  0.8537,  0.6175],[-1.7502,  0.8537,  0.6175]])
    B的梯度: tensor([-1.7502,  0.8537,  0.6175])
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/490409.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用rust语言创建python模块(pyo3+maturin)

1. 首先使用conda创建python虚拟环境(已创建的可省略) >conda create --prefixE:\python_envs\rust_python python3.11 2. 激活python虚拟环境 conda activate rust_python 3. 安装maturin pip install maturin 4. 创建rust项目 >cd E:\py…

Linux 网络流量控制 - 实现概述

摘要 Linux 提供了一整套丰富的流量控制(traffic control)功能。本文档概述了相应的内核代码设计,描述了其结构,并通过描述一种新的排队策略来说明新元素的添加。 1 引言 最近的Linux内核提供了多种流量控制功能。Alexey Kuznetsov(kuznet…

哈希【C++实现】

目录 哈希1. unordered系列关联式容器2.unordered_map2.1unordered_map的文档介绍2.2unordered_map的接口介绍 3.unordered_set3.1unordered_set的文档介绍3.2unordered_set的接口 4.相关OJ题5.两种容器的区别5.1性能区别 6.底层结构(重要!!!…

文件包含漏洞下 日志文件的利用 session文件竞争

普及 日志文件记录了一下登录者的信息 访问者ip:127.0.0.1 访问日期 请求方式:GET 请求链接:/dvwa/phpinfo.php 请求参数:PHPE9568F34-D428-11d2-A769-00AA001ACF42 HTTP协议:HTTP/1.1 返回转态码:200 返…

动态规划子序列问题系列一>最长数对链

题目&#xff1a; 解析&#xff1a; 代码&#xff1a; public int findLongestChain(int[][] pairs) {Arrays.sort(pairs, (a,b)->(a[0]-b[0]));int n pairs.length;int[] dp new int[n];for(int i 0; i < n; i) dp[i] 1;int ret 1;for(int i 1; i < n; i){f…

uni-app创建微信小程序

UniApp 是一个基于 Vue.js 语法的跨平台开发框架&#xff0c;它允许开发者使用一套代码构建适用于 iOS 、 Android 、 Web 以及各种小程序和快应用的应用程序 一、环境搭建 安装使用教程&#xff1a;https://blog.csdn.net/YuanFudao/article/details/132384692 二、项目基本…

如何快速搭建若依管理系统?

1、下载若依管理系统前后端分离版代码至本地&#xff08;当前版本为RuoYi v3.8.8&#xff09;&#xff1a; RuoYi-Vue: &#x1f389; 基于SpringBoot&#xff0c;Spring Security&#xff0c;JWT&#xff0c;Vue & Element 的前后端分离权限管理系统&#xff0c;同时提供…

6.2 MapReduce工作原理

MapReduce工作原理涉及将大数据集分割成小块并行处理。Map任务读取数据块并输出中间键值对&#xff0c;而Reduce任务则处理这些排序后的数据以生成最终结果。MapTask工作包括读取数据、应用Map函数、收集输出、内存溢出时写入磁盘以及可选的Combiner局部聚合。ReduceTask工作则…

金融分析-Transformer模型(基础理论)

Transformer模型 1.基本原理 transformer的core是注意力机制&#xff0c;其本质就是编码器-解码器。他可以通过多个编码器进行编码&#xff0c;再把编码完的结果输出给解码器进行解码&#xff0c;然后得到最终的output。 1.1编码器 数据在编码器中会经过一个self-attention的…

创建vue3项目步骤以及安装第三方插件步骤【保姆级教程】

&#x1f399;座右铭&#xff1a;得之坦然&#xff0c;失之淡然。 &#x1f48e;擅长领域&#xff1a;前端 是的&#xff0c;我需要您的&#xff1a; &#x1f9e1;点赞❤️关注&#x1f499;收藏&#x1f49b; 是我持续下去的动力&#xff01; 目录 一. 简单汇总一下创建…

大模型底座 Transformer 的核心技术解析

1. 引言 说明目标 在深度学习领域&#xff0c;Transformer架构已成为近年来最重要的技术突破之一。它最早由Vaswani等人在2017年的论文《Attention is All You Need》中提出&#xff0c;迅速成为自然语言处理&#xff08;NLP&#xff09;和其他序列建模任务的核心工具。传统方法…

利用git上传项目到GitHub

GitHub是基于git实现的代码托管。git是目前最好用的版本控制系统了&#xff0c;非常受欢迎&#xff0c;比之svn更好。 GitHub可以免费使用&#xff0c;并且快速稳定。 利用GitHub&#xff0c;你可以将项目存档&#xff0c;与其他人分享交流&#xff0c;并让其他开发者帮助你一…

联网功耗电流波形

飞行模式下&#xff0c;Wifi 可连接或不可连接的条件对比&#xff1a; 1. 基电流为 3.5 mA 的环境下, 网络不可连接时,会产生一个持续0.72s,平均电流为 54.8 mA 的电流波形 2. 基电流为 6.8 mA 的环境下, 网络可连接时,会产生一个持续4.64s,平均电流为 73.63 mA 的电流波形 …

【Sql优化】数据库优化方法、Explain使用

文章目录 一、金字塔优化模型二、SQL优化的利器&#xff1a;Explain工具1. Explain 的作用2. Explain 的用法 三、SQL优化方法&#xff08;后续文章细讲&#xff09;1. 创建索引减少扫描量2. 调整索引减少计算量3. 索引覆盖4. 干预执行计划5. SQL改写 四、通过 Explain 优化案例…

从〇开始深度学习(番外)——下载包

从〇开始深度学习(番外)——下载包 文章目录 从〇开始深度学习(番外)——下载包写在前面正文 写在前面 《从〇开始深度学习&#xff08;番外&#xff09;》系列主要记录一些细碎知识点和技能&#xff0c;与主线并不冲突。如果主线笔记中用得到番外篇的知识或技能&#xff0c;会…

Stream– ESP8266物联网应用,(客户端向服务器发送数据信息 客户端向服务器请求数据信息)

Stream– ESP8266物联网应用 Stream对于ESP8266-Arduino语言来说指的是数据序列。请留意&#xff1a;在C编程中Stream常被翻译作“流”。我们认为将Stream称为数据序列更加直观。因为数据序列这一概念有两个很关键特点。 第一个特点是“序”&#xff0c;即数据序列不能是杂乱…

ubantu安装Mysql

官方文档 MySQL :: MySQL 8.4 Reference Manual :: 2.5.2 Installing MySQL on Linux Using the MySQL APT Repository 1、下载发布包 下载之后就是如下文件&#xff0c;直接拖拽到shell上&#xff08;如果没有安装rz&#xff0c;需要先安装rz&#xff09; ll命令查看 2、安装…

i18n数据自动转化工具

效果&#xff1a; 代码&#xff1a; <template><div id"app"><buttonstyle"margin-top: 20px;width: 100px;height: 50px;background-color: #41b883;color: #fff;border: none;border-radius: 4px;font-size: 16px;"click"handleCli…

【经验分享】搭建本地训练环境知识点及方法

最近忙于备考没关注&#xff0c;有次点进某小黄鱼发现首页出现了我的笔记还被人收费了 虽然我也卖了一些资源&#xff0c;但我以交流、交换为主&#xff0c;笔记都是免费给别人看的 由于当时刚刚接触写的并不成熟&#xff0c;为了避免更多人花没必要的钱&#xff0c;所以决定公…

【html网页页面012】html+css制作品牌主题宏宝莱网页含视频、留言表单(7页面附效果及源码)

品牌主题宏宝莱网页制作 &#x1f964;1、写在前面&#x1f367;2、涉及知识&#x1f333;3、网页效果完整效果(7页)&#xff1a;代码目录结构&#xff1a;page1、首页page2、衍生品page3、包装设计page4、视频介绍page5、留言板page6、联系我们page7、详情页&#xff08;三层页…