耕地单目标语义分割实践——Pytorch网络过程实现理解

一、卷积操作

(一)普通卷积(Convolution)

(二)空洞卷积(Atrous Convolution)

        根据空洞卷积的定义,显然可以意识到空洞卷积可以提取到同一输入的不同尺度下的特征图,具有构建特征金字塔的基础。

(三)深度可分离卷积(Depthwise-Separable Convolution)

        在对深度可分离卷积具有一定的了解后,我产生了一种“既然模型参数大幅度减少了,那么该模型的运行时间应该也会大幅度缩减”的想法。可是,当我分别在GPU、CPU上进行实验时,我发现结果并不与我当初所想相同。后经过查阅资料[13][14]进一步加深了我对硬件计算优势以及深度可分离卷积的理解。(注:1)实际上,通常我们一层卷积之后都会加深特征图深度,但是我所设计的实验保持了原有深度前向计算。同时,一个卷积网络也应顾及到模型精确性适当使用DSC而非完全;2)参考资料[13]具有与我相同思想的不同模型之间的对比试验)

        适合GPU运算的运算类型有1)大量轻量级运算;2)高度并行运算:3)计算密集型:4)浮点型运算等。CPU擅长于串行运行。

(图源: 三分钟搞懂CPU, GPU, FPGA计算能力 - 知乎)

        针对DSC有可能出现模型参数大幅度减少,但模型运行时间却不下降的现象,可能存在以下原因:

        1)许多深度学习加速器和库(如CUDA和cuDNN),对深度可分离卷积的优化可能不够;

        2)尽管深度可分离卷积需要的乘、加运算较少,但与普通卷积相比,它可能需要更多的内存访问操作,这在GPU上可能导致效率降低;

        3)受限于自身设备的显存容量。

(四)转置卷积(Transpose Convolution)

          转置卷积是一种卷积,它将输入和核进行了重新排列,同卷积一般是做下采样不同,它通常用作上采样。如果卷积将输入从(h,w)变成了(h‘,w'),同样超参数下转置卷积将(h‘,w')变成(h,w)。

       转置卷积可以变为对应核的矩阵乘法。转置卷积是一种变化了输入和核的卷积,来得到上采样的目的,其并不等同于数学上的反卷积概念。在深度学习中,反卷积神经网络指用了转置卷积的神经网络。

二、池化操作

        池化操作主要的作用为1)减少网络计算量与内存消耗;2)增加感受野大小;3)增加平移不变性(即较小的特征偏移也不影响特征输出)。从某种角度上来说,Pooling操作是一种对现存硬件计算能力和存储设备的妥协,其在某些卷积神经网络(如Resnet)可以被忽略。

三、数据归一化操作

        数据归一化操作中(以BatchNormal为例),β和γ参数是需要计算梯度更新的学习参数,数据归一化行为在Train、Test过程中是不一样的。在Train过程中,我们需要不断计算反向梯度更新β、γ参数,而在Test过程中我们是会固定前面学习得到的β、γ参数(Pytorch中测试调用net.eval())。

        批量归一化的主要作用:

        1)控制传入下一层的特征图数据,有效减少梯度爆炸和梯度消失的可能;

        2)减少对参数初始化的依赖;

        3)便于应用更高的学习率,实现更快的收敛。

四、深度学习中的Batch、Epoch

        反向梯度计算以更新模型权值等参数发生于一个Batch迭代后。初期训练时,我认为足够的Batch样本数对于模型的快速收敛较为重要。那么,如果受限于自身GPU显存限制,我们可以进一步权衡在CPU上训练更多样本数的Batch,而放宽训练时间这一要求。

        在合理范围内,增大Batch_Size具有以下优点[11]:

        1)内存利用率提高了,大矩阵乘法的并行化效率提高;

        2)跑完一次epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快;

        3)在一定范围内,一般来说Batch Size越大,其确定的下降方向越可能对准极值低点,训练引起损失震荡越小。

(图源: 【深度学习训练之Batch】_深度学习batch_哈哈哈哈海的博客-CSDN博客)

五、在.ipynb文件中调用不同路径位置文件的方法

(1)首先被引.ipynb文件转换为.py文件,然后在.ipynb文件中头部添加sys.path.insert(0,r"绝对路径")或sys.path.append(r“绝对路径”)[17]。

(2)编写.ipynb解析文件置于同一文件夹下[16]。

Pytorch参考资料:

[1] 在CV/NLP/DL领域中,有哪些修改一行代码或者几行代码提升性能的算法? - 圈圈的回答 - 知乎

https://www.zhihu.com/question/427088601/answer/1544199551.

[2]在CV/NLP/DL领域中,有哪些修改一行代码或者几行代码提升性能的算法? - 陀飞轮的回答 - 知乎 https://www.zhihu.com/question/427088601/answer/1587333057

[3]PyTorch 中文文档

[4]课时61 什么是卷积-1_哔哩哔哩_bilibili

[5]PyTorch Forums

[6]https://en.wikipedia.org/wiki/Convolutional_neural_network

[7]数字图像处理:第四版/(美)拉斐尔C.冈萨雷斯(Rafael C.Gonzalez),(美)理查德E.伍兹(Richard E.Woods)著;阮秋琦等译.——北京:电子工业出版社,2020.5.

[8]深入理解空洞卷积 - 知乎

[9]演示分组,深度,深度可分离卷积|3D卷积神经网络_哔哩哔哩_bilibili

[10]卷积神经网络之深度可分离卷积(Depthwise Separable Convolution) - 知乎

[11]谈谈深度学习中的 Batch_Size_机器学习batch size作用_ycheng_sjtu的博客-CSDN博客

[12]pytorch统计模型参数量并输出_pytorch输出模型参数量_xidaoliang123的博客-CSDN博客

[13]薰风读论文:MobileNet 详解深度可分离卷积,它真的又好又快吗? - 知乎

[14]三分钟搞懂CPU, GPU, FPGA计算能力 - 知乎

Python参考资料:

[15]Python:为什么类中的私有属性可以在外部赋值并访问_python 类外访问私有属性_Ding Jiaxiong的博客-CSDN博客

[16]调用jupyter notebook文件内的函数一种简单方法_AlexInML的博客-CSDN博客

[17]Jupyter Notebook引入外部的py文件中的方法_dirtyboy6666的博客-CSDN博客

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

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

相关文章

Excel/PowerPoint条形图改变顺序

条形图是从下往上排的,很多时候不是我们想要的效果 解决方案 选择坐标轴,双击,按下图顺序点击 效果

dockerfile编写LNMP

目录 1. 项目环境 2. 服务器环境 二、部署nginx(容器IP为192.168.158.26) 1、整个Dockerfile文件内容 ​编辑 2、配置nginx.conf文件 3、构建镜像 三、部署mysql 1、整个Docker文件内容 3、生成镜像 4、启动镜像容器 5、验证mysql 四、PHP部署 1…

【STM32CubeMX】低功耗模式

前言 本文讲解STM32F10X的低功耗模式,部分资料参考自STM32手册。STM32F10X提供了三种低功耗模式:睡眠模式(Sleep mode)、停机模式(Stop mode)和待机模式(Standby mode)。这些低功耗模…

Yarn介绍及快速安装 - Debian/Ubuntu Linux

1.Yarn介绍 Yarn 是一个用于管理 JavaScript 包的快速、可靠和安全的包管理器。它是由 Facebook、Google、Exponent 和 Tilde 团队共同开发的,旨在提供比 npm 更快速、可靠的包管理体验。 以下是 Yarn 的一些主要特点和优势: 快速安装:Yarn…

推荐三款Scrum敏捷项目管理工具/敏捷管理实践

免费版敏捷工具推荐: Leangoo领歌 Leangoo领歌是ScrumCN(scrum.cn)旗下的一款永久免费的专业敏捷开发管理工具,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、进展跟踪、缺陷管理、统计度量等。包括小…

管理类联考——逻辑——真题篇——按知识分类——汇总篇——一、形式逻辑——假言——第六节 真假话题

文章目录 第六节 假言命题-真假话题-①建模;②公式化处理;③找矛盾(易找且唯一确定):A→B的矛盾命题:A且非B(真假判断,必一真一假);④包含,⑤定其余。真题(2011-50)-假言-真假-①建模;②公式化处理;③找矛盾(易找且唯一确定):A→B的矛盾命题:A且非B(真假判…

2023国赛数学建模A题思路模型代码汇总 高教社杯

本次比赛我们将会全程更新思路模型及代码,大家查看文末名片获取 之前国赛相关的资料和助攻可以查看 2022数学建模国赛C题思路分析_2022国赛c题matlab_UST数模社_的博客-CSDN博客 2022国赛数学建模A题B题C题D题资料思路汇总 高教社杯_2022国赛c题matlab_UST数模社…

如何使用CSS实现一个瀑布流布局?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用CSS实现瀑布流布局⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚…

Kafka单节点部署

🎈 作者:互联网-小啊宇 🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

高速、稳定、安全:4G工业路由器在户外环境下的组网优势

能够在无人值守的户外环境下实现组网和远程监控功能的4G工业路由器!工业级路由器具备防尘、防水、耐高温等特性,适用应用在恶劣的户外及工业场景中,如远程农田监测、驾考科目二/科目三、智能交通系统、环境监控、煤矿数据采集、水利远程管理等…

C++——oo的魅力之多态

文章目录 多态的概念多态的定义和实现多态的构成条件虚函数重写的两个例外协变(基类和派生类虚函数返回值类型不同)析构函数的重写(基类和派生类析构函数名字不同) c11 override 和 final关键字 重载,重写(覆盖), 隐藏(重定义)对比抽象类(纯虚函数)多态的…

搭建:基于nginx的上传功能

搭建:基于nginx的上传功能 文章目录 搭建:基于nginx的上传功能一、准备二、安装nginx1.1 解压nginx和nginx插件1.2 编译并安装nginx 三、启动一个python后台服务,用于上传到临时路径文件,转移到正式路径四、添加nginx配置&#xf…

5-重定向和路由的反向引用

重定向 和 反向引用 1. 重定向-redirect: 有两次响应 (1) 302状态码 Location (2) 返回location请求地址内容 2. 反向引用-url_for 路由中定义endpoint 参数,使用 url_for(函数名)进行反向引用 import jsonfrom flask import Flask, url_for, redirectimport settingsap…

List 分批处理

1.Google Guava <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>31.0.1-jre</version></dependency>List<String> tempList Arrays.asList("水星","金星&qu…

excel vba 将多张数据表的内容合并到一张数据表

功能描述&#xff1a; 一个Excel文件有很多个 样式相同 的数据表&#xff0c; 需要将多张数据表的内容合并到一张数据表里。 vba实现代码如下&#xff1a; Attribute VB_Name "NewMacros" Option Explicit Public Const Const_OutSheetName As String "V…

SOLIDWORKS基准面介绍

SOLIDWORKS是一款广泛应用于机械设计领域的三维建模软件&#xff0c;其中基准面是在建模过程中必不可少的要素。本文将介绍什么是SOLIDWORKS基准面&#xff0c;以及它在设计中的作用。 SOLIDWORKS基准面是指在设计过程中用来确定草图绘制、特征创建的参考平面。 SOLIDWORKS基…

天锐绿盾安全U盘系统

安全U盘系统 01 简介 天锐绿盾安全U盘系统&#xff0c;是一款致力于保障U盘数据内容安全的产品。通过严格身份认证、便捷安全的密保机制、智能的U盘锁定或自毁设置、详细的文件操作日志、文件粉碎、设置还原等&#xff0c;天锐绿盾安全U盘系统为您U盘的数据保驾护航&#xff0…

WPF入门到精通:4.页面增删改查及调用接口(待完善)

在WPF中&#xff0c;页面的增删改查可以通过使用DataGrid等控件来实现。接口的调用可以使用HttpClient或RestSharp等网络库来完成。 1.页面增删改查 使用DataGrid控件来展示数据&#xff0c;并通过绑定数据源来实现数据的增删改查操作。示例代码如下&#xff1a; XAML代码&a…

45、TCP的几个常用选项

前面用两节内容的篇幅介绍了TCP协议首部格式&#xff0c;TCP的基本功能都是靠其首部这些字段的支持。那么在固定首部之后&#xff0c;还有长度可变的选项字段&#xff0c;可以提供一些附加功能。既然是长度可变&#xff0c;说明选项肯定不止一个&#xff0c;这里面有些比较重要…

python 打印一个条形堆积图

背景 今天介绍一个不使用 matplot&#xff0c;通过 DebugInfo模块打印条形堆积图 的方法。 引入模块 pip install DebugInfo打印销售转化数据 下面的代码构建了两个销售团队&#xff0c;团队A 和团队B&#xff1b;两个团队的销售数据构成了公司总的销售成果。以条形堆积图的…