【python】pytorch包(第二章)API使用与介绍
1> nn.Module (用于构建模型的底层逻辑)
介绍
nn.Module 是 torch.nn 中的一个类,是pytorch中自定义网络的基类
__init__需要调用super方法,继承父类属性和方法forward方法必须实现,用来定义网络的向前计算的过程
例:y = w*x + b 的拟合模型
构建
from torch import nn
class Lr(nn.Module): #构建模型逻辑def __init__(self): #定义该层super(Lr,self).__init__() #继承父类的init参数self.linear = nn.Linear( aa , bb ) #该层网络的输入数据的维度为aa,输出数据的维度为bbdef forward(self,x): #即 如何由输入的数据x得到输出的结果outout = self.linear(x)return out
使用
#实例化模型
model = Lr()
#传入数据,计算结果
pred_y = model(x)
2> 优化器类 optimizer
介绍
优化器是torch为我们封装的用来更新参数的方法
设定优化器
-
torch.optim.SGD(参数, lr=学习率)
SGD(stochastic gradient descent, 随机梯度下降)
”参数“指: 模型中需要被更新的参数;
”参数“一般用model.parameters()函数来获取,会获取所有requires_grad=True的参数
”学习率“:默认为0.001 -
torch.optim.Adam(参数, lr=学习率)
使用优化器
1. 步骤:
step 1. 优化器实例化
step 2. 将所有参数的梯度的值,初始化为0
step 3. 反向传播,更新梯度的值
step 4. 参数值被更新
2. 代码样例:
import optim from torch
#step 1. 优化器实例化
optimizer = optim.SGD(model.parameters(),lr=1e-3)
#待更新参数为model.parameters()
#学习率learning rate = 1e-3
#step 2. 将所有参数的梯度的值,初始化为0
optimizer.zero_grad() #参数归零函数
#step 3. 反向传播,更新梯度的值
loss.backward()
#step 4. 更新参数值
optimizer.step()
优化器的算法介绍
1> 梯度下降法
(1) BGD 梯度下降法 (batch gradient descent)
每次迭代都将所有样本送入,将全局样本的均值作为参考。
简称为:全局优化
缺点: 每次都要跑全部样本,速度慢
(2) SGD 随机梯度下降法(Stochastic gradient descent)
每次从所有样本中,随机抽取一个样本进行学习
优点: 解决了BGD算法 速度慢的问题
缺点: 可能被某个单个异常数据点影响
Python的torch包中的API调用方法: torch.optim.SGD()
(3) MBGD 小批量梯度下降法(Mini-batch gradient descent)
介于(1)和(2)之间的算法,每次选取一组样本进行学习
梯度下降法的劣势:
过于依赖于合适的学习率。
学习率较小时,会导致收敛速度慢;
学习率较大时,会导致有可能跳过最优解,在最值点左右摆动幅度较大
2> AdaGrad
采取动态调整学习率的方法,解决梯度下降法的劣势
【个人理解:就是把 爬山算法 换成了 模拟退火算法 】
3> 动量法 和 RMSProp算法
采取动态调整梯度的移动指数,解决梯度下降法的劣势
【个人理解:也是把 爬山算法 换成了 模拟退火算法 】
4> Adam算法
相当于 AdaGrad法 和 RMSProp法 的结合
优势 更快达到最优解
劣势 有可能学习得更慢(因为最优解很难找到,而前面的算法不一定会找到最优解,而是误差较大的最优解)
Python的torch包中的API调用方法: torch.optim.Adam()
这下就可以看懂第一章的线性回归代码的意思是什么了
相关文章:
【python】pytorch包(第二章)API使用与介绍
1> nn.Module (用于构建模型的底层逻辑) 介绍 nn.Module 是 torch.nn 中的一个类,是pytorch中自定义网络的基类 __init__需要调用super方法,继承父类属性和方法forward方法必须实现,用来定义网络的向前计算的过程…...
Linux驱动基础(SR501人体感应模块)
文章目录 前言一、SR501模块介绍二、设备树编写三、驱动编写1.确定主设备号2.编写file_operations结构体3.注册file_operations结构体4.出口函数编写5.probe函数和remove函数编写6.中断编写7.测试程序编写8.全部驱动程序 总结 前言 本篇文章将给大家介绍一下SR501驱动程序的编…...
Android Studio Flamingo (火烈鸟) 升级踩坑记录
由于想要验证Compose最新的debug特性,而我目前使用的版本(Dolphin 小海豚)不支持,查看官网说明需要最新版本,所以不得已进行了一下Android Studio版本升级,过程中遇到一些问题,本文仅做记录。&a…...
【JAVA凝气】异常篇
哈喽~大家好呀,这篇来看看JAVA异常篇。 目录 一、前言 二、Exception 异常 1、Java 的非检查性异常 2、Java 检查性异常类 三、Error 错误 四、捕获异常 五、多重捕获块 六、throws/throw 关键字 七、自定义异常类 八、图书推荐 一、前言 异常是程序中的一…...
C++中的函数模板
目录 1. 什么是函数模板? 2. 如何定义函数模板? 3. 如何使用函数模板? 4. 函数模板与函数重载的区别是什么? 5. 函数模板与类模板有何异同点? 1. 什么是函数模板? - 函数模板是一种通用的函数描述&…...
MapReduce【Shuffle-Combiner】
概述 Conbiner在MapReduce的Shuffle阶段起作用,它负责局部数据的聚合,我们可以看到,对于大数据量,如果没有Combiner,将会在磁盘上写入多个文件等待ReduceTask来拉取,但是如果有Combiner组件,我们…...
postman接口自动化测试
Postman除了前面介绍的一些功能,还有其他一些小功能在日常接口测试或许用得上。今天,我们就来盘点一下,如下所示: 1.数据驱动 想要批量执行接口用例,我们一般会将对应的接口用例放在同一个Collection中…...
历经70+场面试,我发现了大厂面试的套路都是···
今年的金三银四刚刚过去,我又想起了我在去年春招时面试了50余家,加上暑期实习面试了20余家,加起来也面试了70余场的面试场景了。 基本把国内有名的互联网公司都面了一遍,不敢说自己的面试经验很丰富,但也是不差的。 …...
可视区域兼容性问题的思考及方法封装
今日在复习可视化尺寸获取时突发奇想,为什么要在怪异模式下使用document.body.clientWidth,在标准模式下使用document.documentElement.clientWidth?以及是否在IE8及以下的版本中其中一个获取方式将返回undefined或0。 出于该问题的思考&am…...
安全工具 | CMSeeK [指纹识别]
0x00 免责声明 本文仅限于学习讨论与技术知识的分享,不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担…...
Android新logcat使用技巧
Android新logcat使用技巧 logcat新UI出现后,我常困惑于怎么过滤log,和以前的UI差异比较大,新UI界面结构如下: 这个新的 logcat 的问题是如何过滤信息并不是很明显。 获取应用的日志信息 要获取我们当前调试应用的日志信息&…...
使用Makefile笔记总结
文章目录 一、简单了解Makefile1.1 Makefile示例1.2 基本规则1.3 make是如何工作的1.4 使用变量1.5 make自动推导 二、变量2.1 变量的定义和引用2.2 变量的两种高级用法2.3 override 和 define 关键字2.4 环境变量与目标变量2.5 自动变量 三、Makefile规则3.1 通配符3.2 目标依…...
npm下载依赖项目跑不起来--解决方案
code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: vue-element-admin4.4.0 npm ERR! Found: webpack4.46.0 npm ERR! node_modules/webpack npm ERR! webpack“^4.23.0” from the root project npm ERR! npm ERR! Coul…...
SolVES模型生态系统服务功能社会价值评估
查看原文>>>SolVES 模型生态系统服务功能社会价值评估(基于多源环境QGIS、PostgreSQL、ArcGIS、Maxent、R语言) 目录 第一章、理论基础与研究热点 第二章、SolVES 4.0 模型运行环境配置 第三章、SolVES 4.0 模型运行 第四章、数据获取与入…...
Godot引擎 4.0 文档 - 入门介绍 - 学习新功能
本文为Google Translate英译中结果,DrGraph在此基础上加了一些校正。英文原版页面: Learning new features — Godot Engine (stable) documentation in English 学习新功能 Godot 是一个功能丰富的游戏引擎。有很多关于它的知识。本页介绍了如何使用…...
如何进行MySQL漏洞扫描
MySQL是一款广泛使用的关系型数据库管理系统,但由于其复杂的结构和功能,也存在不少安全漏洞,容易被黑客攻击。为了解决这些安全问题,进行MySQL漏洞扫描是必要的。那么MySQL怎么进行漏洞扫描?如何进行漏洞扫描?接下来就让小编带大…...
C语言函数大全-- x 开头的函数(3)
C语言函数大全 本篇介绍C语言函数大全-- x 开头的函数 1. xdr_opaque 1.1 函数说明 函数声明函数功能bool_t xdr_opaque(XDR *xdrs, char *buf, u_int len);用于编码或解码任意长度的二进制数据 参数: xdrs : 指向 XDR 数据结构的指针,表…...
计算机图形学-GAMES101-12阴影
Shadow mapping 问题的提出 我们之前在进行着色时,对于每个物体仅考虑自己,而不考虑其他物体对它的影响。限定在光栅化中,如何解决阴影问题呢?阴影能被摄像机看到,但不能被光源所照亮。经典的Shadow mapping只能处理…...
iOS_Swift高阶函数
iOS_Swift高阶函数 #mermaid-svg-NxX1czIESDq47OQw {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-NxX1czIESDq47OQw .error-icon{fill:#552222;}#mermaid-svg-NxX1czIESDq47OQw .error-text{fill:#552222;stroke:#…...
探索Vue的组件世界-组件复用
目录 Mixin【混入】 缺陷 HOC(higher order component)【高阶组件】 相比较Mixin的优点: 不足: Renderless组件【函数式组件,无渲染组件,Vue社区使用比较多的一种业务复用模式】 优点: M…...
让B站缓存视频重获自由:一个简单实用的格式转换工具
让B站缓存视频重获自由:一个简单实用的格式转换工具 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 还记得那个周末的下午吗…...
XZ9971,60V,5A,NMOS 封装:SOT223
封装:SOT223类型:NVDS:60V VGS: 20V ID:5ARDS(ON):10V <50mΩRDS(ON):4.5V <60mΩ型号: XZ9971 封装:SOT223类型&…...
OpenClaw 源码解析(六):openclaw agent 如何触发一次 Agent 运行?
1. 本期要解决的问题 前几期我们已经从项目整体结构、CLI 命令体系、配置加载、Gateway 运行机制等角度理解了 OpenClaw 的基础框架。到了这一期,可以进一步进入 OpenClaw 最核心的使用动作:用户在终端中执行一条 openclaw agent --message "...&q…...
抖音批量下载神器:5分钟学会免费无水印视频下载
抖音批量下载神器:5分钟学会免费无水印视频下载 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖…...
Windows上直接安装APK文件:告别模拟器的轻量级安卓应用安装方案
Windows上直接安装APK文件:告别模拟器的轻量级安卓应用安装方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 还在为笨重的安卓模拟器烦恼吗?…...
多智能体协作系统:2026年企业级AI应用的核心架构范式
引言:AI Agent从单兵作战到团队协作的范式跃迁 2026年,人工智能领域正在经历一场深刻的架构变革。回想2024年,当ChatGPT、Claude等大语言模型横空出世时,我们惊叹于单个AI模型的强大能力。然而,随着企业级应用的深入,单一AI Agent的局限性日益凸显:它无法同时处理多领域…...
从‘调参苦手’到‘一击即中’:实战解读glmnet中lambda.min与lambda.1se到底怎么选
从‘调参苦手’到‘一击即中’:实战解读glmnet中lambda.min与lambda.1se到底怎么选 在机器学习的世界里,LASSO回归就像一位精明的裁缝,能够为数据量身定制最合身的模型。而glmnet包中的lambda.min和lambda.1se,则是这位裁缝手中的…...
项目文档:基于Multisim的四路带计分系统抢答器设计与仿真
摘要:本项目设计了一个四路带计分系统的智能抢答器,具有声光显示、计时和计分功能。使用Multisim 14.3进行电路设计 与仿真验证。项目简介本项目设计了一个基于Multisim的四路带计分系统智能抢答器,采用74系列数字逻辑芯片实现纯硬件电路设计…...
抖音下载神器终极指南:免费批量下载视频、直播回放和音乐原声
抖音下载神器终极指南:免费批量下载视频、直播回放和音乐原声 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallbac…...
成本优化秘籍:如何通过模型路由(Model Routing)降低 Agent 推理成本?
成本优化秘籍:如何通过模型路由(Model Routing)降低 Agent 推理成本? 1. 引入与连接:推理成本的"隐形黑洞"与破解之道 1.1 引人入胜的开场:一个真实的成本困境 让我们从一个真实故事开始。今年早些时候,我与一家知名科技创业公司的CTO进行了一次深入交流。…...
