pytorch神经网络及训练(一)

news2025/1/10 19:14:27

pytorch神经网络及训练(一)

随机梯度下降算法

随机梯度下降算法(SGD)是对梯度下降算法的一种改进。

直观上SG的方法可能效率上更优。考虑这样一个情况,我们的训练数据集合 是由小的数据 集合复制10份得到的。此时,对样本做batch训练,是对样本 做batch训练计算复杂度的10倍,效果却是一样的。与之相对,SGD的方法在 中随机抽取样本的概率和在中的概率是相同的。在实际上虽然没有这种,样本完全是复制的情况,但是真实的样本却是经常有大量冗余的情况,此时SGD的效率更高。

实际效果(Practical Motivation)
在这里插入图片描述

pytorch中的优化器

在pytorch中的optim模块,提供了多种可以直接使用的深度学习的优化器,包括了Adam、SGD、RMSprop等可以直接进行调用

算法名称
torch.optim.AdamAdam算法
torch.optim.SGDSGD算法
torch.optim.RMSpropRMSprop算法

以Adam算法为例介绍优化器中参数的使用情况

torch.optim.Adam(params,lr=0.001,betas(0.9,0.999),eps=le-08,weight_decay=0)

参数说明如下

  • param:待优化的iterable或定义了参数的dict
  • lr:算法学习率
  • betas:用于计梯度和梯度平方的系数
  • eps:增加数值稳定性的项
  • weight_decay权重衰减

pytorch中的损失函数

深度学习的优化算法可以直接作用的对象是损失函数,损失函数就是用来表示预测与实际数据之间的差异程度

pytorch中的nn模块提供了多种可以之间使用的深度学习损失函数——常用的有均方误差损失和交叉熵误差损失

pytorch中常见的损失函数(部分)

算法名称适用问题类型
torch.nn.L1Loss平均绝对值误差损失回归
torch.nn.MSELoss均方误差损失回归
torch.nn.CrossEntropyLoss交叉熵误差损失多分类

交叉熵损失
在这里插入图片描述

过拟合与防止过拟合

过拟合的简单概念:深度学习模型,在训练数据集上能够获得很高的识别精度(针对分类)或者很低的均方误差(针对回归)但是把训练模型应用到测试集时结果不是很理想

防止过拟合的几种简单方法

  1. 增加数据量
  2. 合理的数据切分
  3. 正则化方法
  4. Dropout
  5. 提前结束训练

网络参数初始化

nn模块下面的init模块下有常用的参数初始化类,包括了均匀分布和正态分布等

参数初始化方法应用示例:

conv1.weight可以获取conv1卷积层的初始化权重参数,torch.manual_seed(12)定义随机数初始化,便于torch.nn.init.normal()生成的随机数重复使用

  • conv1.weight:表示随机数用来替换张量的原始数据
  • mean=0 表示均值为0
  • std=1 表示标准差为1
conv1 = torch.nn.Conv2d(3,16,3)
torch.manual_seed(12)
torch.nn.init.normal_(conv1.weight,mean=0,std=1)

plt.figure(figsize=(8,6))
plt.hist(conv1.weight.data.numpy().reshape((-1,1)),bins= 30)

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java代码规范的重要性

目录 1 为什么需要代码规范1.1 不规范的案例1.1.1 就因为忘记加个分号,整个程序都崩溃了1.1.2 我为什么没写注释?1.1.3 谁动了我的代码?1.1.4 半小时写的代码,花两个小时调试 1.2 代码编写1.3 在项目架构1.4 数据库设计1.5 编写文…

openpnp - 软件版本的更新记录(机器翻译)

文章目录 openpnp - 软件版本的更新记录(机器翻译)概述openpnp更新历史记录机翻了一个版本, 大概齐参考一下.END openpnp - 软件版本的更新记录(机器翻译) 概述 卡在底部相机矫正上, 底部相机的硬件安装已经很精确了, 基本能排除是硬件问题. 现在问题定位, 大概率是openpnp软…

g++ -v 若显示g++不是内部或外部命令`

MinGW - Minimalist GNU for Windows Files下载地址 下载地址点这里https://sourceforge.net/projects/mingw/files/ . exe文件下载后建议安装在D盘下tools文件夹下(个人习惯) 此次安装在默认路径下,直接傻瓜式安装 安装: 1.…

2023年网络安全竞赛——网络安全应急响应Server2228

网络安全应急响应 任务环境说明: 服务器场景:Server2228(开放链接) 用户名:root,密码:pssw0rd123 1. 找出被黑客修改的系统别名,并将倒数第二个别名作为Flag值提交&#xff1b…

CTFshow-pwn入门-前置基础pwn13-pwn19

pwn13 题目说编译运行这个flag.c文件即可获得flag。那我们先把flag.c文件下载下来,然后托到虚拟机里使用gcc编译一下,运行看看是否能够拿到flag。 gcc -o flag -flag.c ./flagok,果然拿到了flag。flag为:ctfshow{hOw_t0_us3_GCC?…

前端小练-平台首页介绍+动画

文章目录 前言结构头部外部容器文字 主体小球动画打字机动画特效实现监控 完整代码总结 前言 时间飞逝,快大四了,刚好最近看不下去考研的,而且要准备这个毕设选题了,然后就想着怎么能够把自己所学的东西都用上,一开始…

Vue H5项目如何在PC端时布局居中展示,而不全屏拉伸

目录 1、场景再现:在PC端时 H5项目布局被拉伸2、代码实现3、最终效果图4、疑惑 1、场景再现:在PC端时 H5项目布局被拉伸 2、代码实现 在App.vue中的写入,vue2 的在mounted中写入,vue3的写在onMounted写入。 逻辑讲解&#xff1a…

Android 全局黑白化-模拟颜色空间

概述 平台: RK3568 Android 11在一些特殊的日子,如默哀日、灾难日,纪念日,哀悼日等,许多的APP、网页、海报等都开始使用黑白色主题。Android 的全局黑白实现方案,可以考虑使用模拟颜色空间的方法。 借助硬…

RabbitMQ高阶使用消息推送

目录 1 从打车开始说起1.1 需要解决的问题1.2 消息推送 2 消息推送2.1 什么是消息推送2.2 方案介绍2.2.1 ajax短轮询2.2.2 长轮询2.2.3 WebSocket 2.3 WS实现消息推送2.3.1 架构介绍2.3.2 暂存数据2.3.2.1 什么是MongoDB2.3.2.2 插入数据2.3.2.3 查询数据 2.4.1 轮询任务2.4.1.…

学生党暑假在家赚钱得方法,足不出户轻松赚取买鞋钱

很多学生党都想在暑假期间赚点零花钱,最好是能在家就赚钱。在家里赚零花钱有许多途径,今天我来和大家分享一些方法。 1、问答在各大平台上非常普遍。 我们可以在各大平台上找到各种各样的问答。 如今,问答平台越来越多,提供的奖…

平凯星辰重磅支持 2023 开放原子全球开源峰会,开源数据库分论坛成功召开

2023 年 6 月 11 日至 13 日,以“开源赋能,普惠未来”为主题的 2023 开放原子全球开源峰会开幕式暨高峰论坛在北京成功举办。企业级开源分布式数据库厂商平凯星辰联合创始人兼 CTO 黄东旭受邀出席峰会参与开源论道圆桌,担任开源数据库分论坛出…

吴恩达ChatGPT课爆火

点上方计算机视觉联盟获取更多干货 没想到时至今日,ChatGPT竟还会犯低级错误? 吴恩达大神最新开课就指出来了: ChatGPT不会反转单词! 比如让它反转下lollipop这个词,输出是pilollol,完全混乱。 哦豁&#…

C++14中返回类型推导的使用

使用C14中的auto返回类型,编译器将尝试自动推导(deduce)返回类型: namespace {int xx 1; auto f() { return xx; } // return type is int const auto& f3() { return xx; } // return type is const int&auto multiply(int a, int b) { return (a * b); …

【阅读论文】时间序列数据清洗:一项调查

文章目录 摘要一、引言A.问题陈述B.问题挑战C. 组织 二、基于平滑的清洗算法A.移动平均B.自动注册C.卡尔曼滤波模型D.总结和讨论 三、基于约束的混合算法A. 顺序依赖 (OD)B.序列相关性C.速度约束D.总结和讨论 四、基于统计的CLEANING算法A.最大似然B.马尔可夫模型C.二项抽样D.时…

基于51单片机设计的井下瓦斯监控系统

一、项目介绍 井下瓦斯监控系统是煤矿安全生产中非常重要的一部分,防止井下瓦斯爆炸事故的发生,保障煤矿工人的人身安全。由于地下环境特殊,需要特殊的监测系统来实时监测瓦斯浓度等关键指标,并及时报警以便采取措施进行处理。 瓦斯气体,又称沼气,是一种轻质烃类气体,…

基于的滤波器设计

一,带通滤波器设计指标。 1,中心频率。中心频率:通常定义为带通滤波器(或带阻滤波器)频率的几何平均值,在对数坐标下,即为两个3dB点之间的中点,一般用两个3dB点的算术平均来表示。滤波器通频带中间的频率&…

网工大题题型总结(1)-------网络安全方面考察

(1)2018年上半年 试题二 (3)常见的无线网络安全隐患有 IP 地址欺骗、数据泄露、(8)、(9)、双络通信被窃听等; 为保护核心业务数据区域的安全,网络管理员在设备①处部署(10)实现核心业务区域边界 防护;在设备②处部署…

C++11特性之左值引用和右值引用

3.1二者的对比之内置类型 内置类型的无名对象(右值)为纯右值,其值本身不可改变 int main() {int a10;const int b20;int& raa;//ok,左值引用const int& rbb;//ok,常性左值引用const int& crv30;//ok,也叫万能引用&a…

网络安全竞赛——综合靶机渗透测试ZHCS-2全过程解析教程

任务一:综合靶机渗透测试 任务环境说明: 服务器场景:ZHCS-2(关闭连接)服务器场景操作系统:版本不详扫描目标靶机将靶机开放的所有端口,当作flag提交(例:21,22,23) FLAG:22,80 扫描目标靶机将靶机的http服务版本信息当作flag提交(例:apache 2.3.4) FLAG: ligh…

Vue3 Hooks函数使用及封装思想

目录 一. 什么是hooks函数? 二、如何封装一个hooks函数 三、Hooks 常用 Demo (1)验证码倒计时 (2)防抖 (3)节流 一. 什么是hooks函数? 专业解释:Vue 3中的Hooks函数…