【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…...
电商卖家工具:OpenClaw+Qwen3.5-9B-AWQ-4bit自动生成商品详情页
电商卖家工具:OpenClawQwen3.5-9B-AWQ-4bit自动生成商品详情页 1. 为什么需要自动化商品详情页生成 作为一名长期经营电商店铺的卖家,我深知制作商品详情页的痛苦。每次上新都需要经历:产品拍摄、图片处理、文案撰写、尺寸适配、多平台发布…...
translategemma-27b-it部署教程:Ollama模型缓存路径迁移与多用户共享配置
translategemma-27b-it部署教程:Ollama模型缓存路径迁移与多用户共享配置 1. 快速了解translategemma-27b-it translategemma-27b-it是一个基于Gemma 3架构的先进翻译模型,专门处理55种语言之间的翻译任务。这个模型不仅能翻译文字,还能看懂…...
DeOldify在档案修复中的应用:老照片数字化上色企业落地实战案例
DeOldify在档案修复中的应用:老照片数字化上色企业落地实战案例 1. 引言:当黑白记忆遇见彩色未来 想象一下,你手里有一张泛黄的黑白老照片,那是你爷爷年轻时的样子。照片里的他意气风发,但黑白影像总让人觉得少了点什…...
使用openclaw龙虾采集电商数据
最近openclaw养龙虾的热潮带动了skill的爆发,github上各种skill层出不穷,可以解决繁杂的办公自动化任务,比如生成ppt、运营媒体账号、审查代码等,skill已经成为ai时代的“万能软件”。 刚好有个朋友是做跨境3D打印业务࿰…...
国内AI招聘系统,如何才能选对系统的真实能力?
你有没有过这样的经历:看了一堆 AI 招聘系统的宣传,吹得天花乱坠,又是 “智能筛选” 又是 “AI 面试”,结果买回去发现根本不是那么回事 —— 简历筛选还是靠关键词匹配,AI 面试就是把预设问题念一遍,候选人…...
SSM学习之使用@ResquestBody注解处理json格式的请求参数
在学习ajax异步请求的时候,如果通过post请求发送json格式的请求参数,服务端是无法通过request.getParameter()方法获取请求参数的。那么在ssm学习过程中,我学到了一个处理json格式的请求参数的注解RequestBody。它的作用是将请求体中的内容和…...
在WinForms里用OpenTK+SkiaSharp画个会动的波形图(.NET 8环境保姆级教程)
在WinForms里用OpenTKSkiaSharp画个会动的波形图(.NET 8环境保姆级教程) 最近在开发一个实时音频分析工具时,遇到了一个有趣的挑战:如何在Windows Forms应用中高效渲染动态波形图。经过多次尝试,我发现结合OpenTK的Ope…...
嵌入式CLI框架:轻量级树形命令行调试系统
1. 项目概述debug-cli是一个专为嵌入式系统设计的轻量级、模块化、面向对象的调试命令行接口(CLI)框架。它不依赖标准C库的stdio或动态内存分配,完全适配资源受限的MCU环境(如 Cortex-M0/M3/M4、RISC-V 32位内核)&…...
企业网络架构设计:如何选择核心交换机、汇聚交换机和接入交换机(含真实案例)
企业网络架构设计实战:核心层、汇聚层与接入层交换机选型指南 当一家200人规模的制造企业决定升级网络基础设施时,IT负责人发现市场上交换机的型号多达上千种,价格从几百元到几十万元不等。核心交换机是否必须选用思科Catalyst 9500系列&…...
超越目标空间:多模态多目标优化算法的决策空间评价指标深度解析
1. 为什么我们需要关注决策空间的评价指标? 在传统的多目标优化问题中,我们通常只关注目标空间的性能表现。比如常见的IGD(反转世代距离)和HV(超体积)指标,它们能够很好地衡量解集在目标空间的分…...
