Pytorch(5)-----梯度计算
一、问题
如何使用Pytorch计算样本张量的基本梯度呢?考虑一个样本数据集,且有两个展示变量,在给定初始权重的基础上,如何在每次迭代中计算梯度呢?
二、如何运行
假设有x_data 和 y_data 列表,计算两个列表需要计算损失函数,一个forward通道以及一个循环中的训练。
forward函数计算权重矩阵和输入张量的乘积。
from torch import FloatTensor
from torch.autograd import Variable # 引入Variable方法是为了计算变量的梯度
a = Variable(FloatTensor([5]))
weights = [Variable(FloatTensor([i]), requires_grad=True) for i in (12, 53, 91, 73)]w1, w2, w3, w4 = weights #权重赋值
b = w1 * a
c = w2 * a
d = w3 * b + w4 * c
Loss = (10 - d)
Loss.backward() #从loss 开始反向传播for index, weight in enumerate(weights, start=1):gradient, *_ = weight.grad.data #取出梯度print(f"Gradient of w{index} w.r.t to Loss: {gradient}")Gradient of w1 w.r.t to Loss: -455.0
Gradient of w2 w.r.t to Loss: -365.0
Gradient of w3 w.r.t to Loss: -60.0
Gradient of w4 w.r.t to Loss: -265.0# 使用forward
def forward(x):return x * w #forwar过程import torch
from torch.autograd import Variable
x_data = [11.0, 22.0, 33.0]
y_data = [21.0, 14.0, 64.0]w = Variable(torch.Tensor([1.0]), requires_grad=True) # 初始化为任意值;# 训练前打印
print("predict (before training)", 4, forward(4).data[0])
# 定义损失函数
def loss(x, y):y_pred = forward(x)return (y_pred - y) * (y_pred - y)
#运行训练循环
for epoch in range(10):for x_val, y_val in zip(x_data, y_data):l = loss(x_val, y_val)l.backward()print("\tgrad: ", x_val, y_val, w.grad.data[0])w.data = w.data - 0.01 * w.grad.data# 训练后,人工设置梯度为0,否则梯度会累加;w.grad.data.zero_()print("progress:", epoch, l.data[0])#结果
grad: 11.0 21.0 tensor(-220.)
grad: 22.0 14.0 tensor(2481.6001)
grad: 33.0 64.0 tensor(-51303.6484)progress: 0 tensor(604238.8125)
progress: 1 …………………………………………
………………………………………………………………………………
#训练后的预测 权重已更新
print("predict (after training)", 4, forward(4).data[0])#结果
predict (after training) 4 tensor(-9.2687e+24)
下面的程序展示了如何用Variable 变量从损失函数计算梯度:
a = Variable(FloatTensor([5]))
weights = [Variable(FloatTensor([i]), requires_grad=True) for i in (12, 53, 91, 73)]
w1, w2, w3, w4 = weights
b = w1 * a
c = w2 * a
d = w3 * b + w4 * c
Loss = (10 - d)
Loss.backward()
相关文章:
Pytorch(5)-----梯度计算
一、问题 如何使用Pytorch计算样本张量的基本梯度呢?考虑一个样本数据集,且有两个展示变量,在给定初始权重的基础上,如何在每次迭代中计算梯度呢? 二、如何运行 假设有x_data 和 y_data 列表,计算两个列表需…...
C#的膨胀之路:创新还是灭亡
开篇概述 C#,这门由微软推出的编程语言,自2000年诞生以来,以其简洁的语法、强大的功能和广泛的应用场景,赢得了我等程序员的热爱。它在.NET框架的加持下,展现出无与伦比的开发效率和性能。然而,随着时间的流…...
SpringBoot 过滤器和拦截器的区别
SpringBoot 过滤器和拦截器的区别 Spring拦截器(Interceptor)和过滤器(Filter)是Spring框架中用于处理请求的两种机制,虽然它们都可以在请求处理的不同阶段进行拦截和处理,但它们的工作原理和应用场景有所…...
协程执行顺序引发的问题
引言 在Golang中,因为协程执行的顺序是不固定的,如果不在代码里进行控制,可能就会导致预期外的输出。 本文通过分析一段代码的执行来介绍这种情况,以及可行的控制协程执行顺序的方法: sleep()waitGroup 实例分析 代…...
android webview调用js滚动到指定位置
一、activity import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.tencent.smtt.sdk.WebView import com.tencent.smtt.sdk.WebViewClientclass MainActivity : AppCompatActivity() {private lateinit var webView: WebViewoverride fun …...
WPF 深入理解一、基础知识介绍
基础知识 本系列文章是对个人 B站 up 微软系列技术教程 记录 视频地址 https://www.bilibili.com/video/BV1HC4y1b76v/?spm_id_from333.999.0.0&vd_source0748f94a553c71a2b0125078697617e3 winform 与 wpf 异同 1.winform 项目结构 编辑主要是在 Form1.cs(页面)&#…...
腾讯云点播ugc upload | lack signature 问题处理
我犯一个很傻的错误 参考腾讯云官方文档:云点播 Web 端上传 SDK-开发指南-文档中心-腾讯云 进行开发,但是却报错了,始终找不到问题,错误提示:ugc upload | lack signature,意思是缺少签名或者签名失败&…...
计算机视觉实验二:基于支持向量机和随机森林的分类(Part one: 编程实现基于支持向量机的人脸识别分类 )
目录 一、实验内容 二、实验目的 三、实验步骤 四、实验结果截图 五、实验完整代码 六、报错及解决方案 PS:实验的运行速度受电脑性能影响,如遇运行卡顿请耐心等待。 一、实验内容 编程实现基于支持向量机的人脸识别分类,基本功能包括:Labeled Faces in th…...
5.什么是C语言
什么是 C 语言? C语言是一种用于和计算机交流的高级语言, 它既具有高级语言的特点,又具有汇编语言的特点 非常接近自然语言程序的执行效率非常高 C语言是所有编程语言中的经典,很多高级语言都是从C语言中衍生出来的, 例如:C、C#、Object-C、…...
DINO-DETR
DINO-DETR DETR收敛慢的问题1. Contrastive DeNoising Training(对比方法降噪训练)2. Mixed Query Selection(混合查询选择方法对锚点进行初始化)3. Look Forward Twice(两次前向方法)==DINO模型的传播过程,以及部分模块的改进==DETR收敛慢的问题 PnP-DETR(ICCV 2021) 改进了…...
Representation RL:HarmonyDream: Task Harmonization Inside World Models
ICML2024 paper code Intro 基于状态表征的model-based强化学习方法一般需要学习状态转移模型以及奖励模型。现有方法都是将二者联合训练但普遍缺乏对如何平衡二者之间的比重进行研究。本文提出的HarmonyDream便是通过自动调整损失系数来维持任务间的和谐,即在世界…...
Centos7系统下Docker的安装与配置
文章目录 前言下载Docker安装yum库安装Docker启动和校验配置Docker镜像加速卸载Docker 前言 此博客的内容的为自己的学习笔记,如果需要更具体的内容,可查看Docker官网文档内容 注意:以下命令在root管理员用户下运行,如果在普通用…...
无人机校企合作
有没有想过,无人机和校企合作能碰撞出怎样的火花?🔥今天就来给大家揭秘一下这个神秘组合! 无人机,作为现代科技的代表,已经渗透到我们生活的方方面面。而校企合作,更是推动科技创新、培养人才的…...
八爪鱼现金流-028,个人网站访问数据统计分析,解决方案
个人网站访问数据统计分析,解决方案 调研 结论:使用百度统计 步骤 1.注册百度统计 2.获取安装代码 3.在项目中,页面代码添加如下片段 <script>var _hmt _hmt || [];(function() {var hm document.createElement("script&…...
大厂面试官问我:布隆过滤器有不能扩容和删除的缺陷,有没有可以替代的数据结构呢?【后端八股文二:布隆过滤器八股文合集】
往期内容: 面试官问我:Redis处理点赞,如果瞬时涌入大量用户点赞(千万级),应当如何进行处理?【后端八股文(1)】-CSDN博客 本文为【布隆过滤器八股文合集】初版,…...
PHP米表域名出售管理源码带后台
源码介绍 html5米表源码PHP域名销售程序安装方法: 本站已测试,各项功能正常,功能易用,不复杂,非常适合个人米表使用 1、所有文件传至网站目录 2、浏览器执行http://你的访问网址/install 3、输入mysql帐号及密码信息,提交安装 源码截图 源码下载 …...
【开发12年码农教你】Android端简单易用的SPI框架-——-SPA
Service(priority 1) public class APrinterService implements IPrinterService { Override public void print() { System.out.println(“this is a printer service.”); } } 复制代码 B模块 —— BPrinterService Service(path“b_printer”, priority 2) public class…...
以太坊==MetaMask获取测试币最新网址
估算分数https://community.infura.io/t/unable-to-receive-sepolia-eth-from-faucet/7715 Gitcoin Passport 水龙头地址,填入自己的测试地址 水龙头项目地址 GitHub - pk910/PoWFaucet: Modularized faucet for EVM chains with different protection methods (…...
军用FPGA软件 Verilog语言的编码准测之触发器、锁存器
军用FPGA软件 Verilog语言的编码准测之触发器、锁存器 语言 :Verilg HDL EDA工具:ISE、Vivado、Quartus II 军用FPGA软件 Verilog语言的编码准测之触发器、锁存器一、引言二、基本编程规范之触发器强制准则1---禁止在同一个 always 语句中混合使用有复位…...
智能汽车 UI 风格独具魅力
智能汽车 UI 风格独具魅力...
保姆级教程:在NVIDIA TX1上搞定万集WLR-716激光雷达的ROS驱动与RVIZ可视化
保姆级教程:在NVIDIA TX1上搞定万集WLR-716激光雷达的ROS驱动与RVIZ可视化 当机器人开发者第一次拿到万集WLR-716激光雷达和NVIDIA Jetson TX1开发板时,最迫切的需求就是快速搭建测试环境,验证硬件功能。本文将提供一份从零开始的详细指南&am…...
为OpenClaw智能体工作流配置Taotoken作为模型供应商的步骤
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为OpenClaw智能体工作流配置Taotoken作为模型供应商的步骤 1. 准备工作:获取必要的凭证与信息 在开始配置之前&#x…...
Nexus Mods App 终极指南:告别模组冲突,打造完美游戏体验
Nexus Mods App 终极指南:告别模组冲突,打造完美游戏体验 【免费下载链接】NexusMods.App Home of the development of the Nexus Mods App 项目地址: https://gitcode.com/gh_mirrors/ne/NexusMods.App 还在为模组冲突导致游戏崩溃而烦恼吗&…...
ROS导航避坑指南:搞清rviz里‘2D Pose Estimate’和‘2D Nav Goal’的区别与正确使用姿势
ROS导航避坑指南:rviz中‘2D Pose Estimate’与‘2D Nav Goal’的深度解析与实践技巧 在机器人操作系统(ROS)的导航栈开发中,rviz作为可视化调试的核心工具,其2D Pose Estimate和2D Nav Goal两个功能按钮看似简单&…...
具身智能涉及的交互技术及实施难点
在具身智能(Embodied Intelligence, EI)迈入规模化交付与产线落地的关键阶段 [临近时间验证, ,它与用户为中心交互系统工程(UCI-SE)的融合达到了前所未有的深度 。传统机器人的交互仅限于键盘或教导盒(Pend…...
ARM9E-S内存接口与中断机制深度解析
1. ARM9E-S内存接口架构解析 ARM9E-S处理器的内存接口采用高度流水线化设计,这种架构通过预广播机制显著提升了内存访问效率。在实际工程应用中,理解这一设计原理对构建高性能嵌入式系统至关重要。 1.1 流水线化数据接口工作原理 内存接口的流水线化体…...
Umi-OCR:完全免费开源的离线OCR神器,3分钟快速上手文字识别
Umi-OCR:完全免费开源的离线OCR神器,3分钟快速上手文字识别 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维…...
HS2-HF Patch:为《Honey Select 2》注入新生命的魔法补丁
HS2-HF Patch:为《Honey Select 2》注入新生命的魔法补丁 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是不是曾经打开《Honey Select 2》时&am…...
终极免费方案:3步轻松解锁QQ音乐加密文件,让音乐随处可听
终极免费方案:3步轻松解锁QQ音乐加密文件,让音乐随处可听 【免费下载链接】qmcflac2mp3 直接将qmcflac文件转换成mp3文件,突破QQ音乐的格式限制 项目地址: https://gitcode.com/gh_mirrors/qm/qmcflac2mp3 你是否曾遇到过这样的情况&a…...
告别黑盒:5分钟为你的自定义CNN模型集成Grad-CAM可视化(附常见错误排查)
告别黑盒:5分钟为你的自定义CNN模型集成Grad-CAM可视化(附常见错误排查) 在深度学习项目中,我们常常陷入一个尴尬境地:模型准确率很高,但完全不知道它究竟"看"了图像的哪些部分做出决策。这种黑盒…...
