深度学习基础——卷积神经网络(一)

news2025/7/10 7:22:36

卷积操作与自定义算子开发

卷积是卷积神经网络中的基本操作,对于图像的特征提取有着关键的作用,本文首先介绍卷积的基本原理与作用,然后通过编写程序实现卷积操作,并展示了均值、高斯与sobel等几种经典卷积核的卷积效果,接着调用MindSpore中的卷积算子Conv2d来实现卷积操作,最后介绍了MindSpore中pyfunc和TBE两种自定义算子实现方法。

卷积基本原理

1.1 卷积的概念

        卷积操作发展于信号处理领域,主要用于削弱原始信号中混入的噪声,典型的应用场景还有对于某个线性时不变的系统,给定输入信号和系统响应,来求系统的输出。

        卷积操作引入到深度学习领域后,卷积神经网络得到了极大的发展,卷积核中的所有权重都是随机初始化,而不是一开始确定的,网络每次更新法代都是为了寻找一个最会活的卷积核权重值。

        卷积与互相关有着千丝万缕的关系,对于二维卷积而言,将卷积核左右翻转、上下翻转,再将其与输入图片进行互相关运算,与直接卷积运算在输出结果上是等价的,目前各个深度学习框架的卷积层的API对于卷积运算的实现使用的是互相关运算。

1.2 卷积的计算过程

        二维卷积操作相当于将卷积核作为一个滑动窗口,将其在输入张量上从左至右、从上至下地滑动,每滑动一下便将卷积核与其相应位置计算出一个加权系数,作为输出张量对应位置上的像素值,其计算过程为:将输入的张量与卷积核进行卷积操作,得到输出矩阵并将其返回。
        步长为1的卷积过程如下图所示:

1.3 卷积的参数

        卷积的参数有步长stride、填充pad、卷积核大小、深度、数量等等。其中:

  • 步长表示卷积核在输入张量上每次滑动的步距,通过设置大于1的步长可以减少输出张量的大小。
  • 填充表示在输入张量的周围填补行或列的多少
  • 卷积核的深度与输入张量的深度相同,卷积核的数量决定了输出张量的深度

1.4 输出图片大小的计算公式 

输出图片大小的计算如下:

其中:
resh、resw为输出图片的高度与宽度
datah、dataw为输入图片的高度与宽度
padh、padw为高度与宽度方向上的补边
filterh、filterw为卷积核的高度与宽度
strideh、stridew为高度与宽度方向上的步长

1.5 卷积的作用

        卷积操作可以实现数据降维、特征提取等任务,通过设置不同的步长、补边与卷积核大小等参数,能够提取到图像不同的特征,完成不同的图像处理任务。
        在图像处理中,卷积核也称为滤波器,如常用的均值滤波与高斯滤波能够起到图像平滑和锐化的效果,而sobel算子和Laplace算子对于图像的边缘检测有较好的效果。

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

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

相关文章

HTML-介绍-MDN文档学习笔记

HTML-介绍 查看更多学习笔记:GitHub:LoveEmiliaForever MDN中文官网 HTML-简介 MDN 文档引用: 就其核心而言,HTML 是一种相当简单的、由不同元素组成的标记语言,它可以被应用于文本片段,使文本在文档中具…

Security6.2 中的SpEL 表达式应用(权限注解使用)

最近学习若依框架,里面的权限注解涉及到了SpEL表达式 PreAuthorize("ss.hasPermi(system:user:list)"),若依项目中用的是自己写的方法进行权限处理, 也可以只用security 来实现权限逻辑代码,下面写如何用security 实现。…

[计算机网络]---UDP协议

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、端口号…

HarmonyOS - 实现多设备协同开发实战教程~

前言 现在随着个人设备越来越多,越来越需要多个设备之间相互感知和连接,设备和设备之间可以相互联动,形成互联互通的场景,而搭载HarmonyOS的设备恰好可以满足这一点 。下面通过开发一个HarmonyOS的多端分布式表白应用来实现设备之…

STM32_ESP8266 连接阿里云 操作图解

一、烧录MQTT固件 ESP8266出厂时,默认是:AT固件。连接阿里云需要:MQTT固件。 因此,我们需要给8266重新烧录 MQTT固件。 针对“魔女开发板,ESP8266模块烧录MQTT固件,图解教程如下: ESP8266 烧录 …

代码随想录算法训练营|二叉树总结

二叉树的定义: struct TreeNode {int val;TreeNode* left;TreeNode* right;TreeNode():val(0),left(nullptr),right(nullptr){}TreeNode(int val):val(val),left(nullptr),right(nullptr){}TreeNode(int val,TreeNode* left,TreeNode* right):val(val),left(left),…

网工内推 | 证券公司急招网工,base上海,年薪50W

01 广发证券 招聘岗位:网络工程师 任职要求: 1、懂基础建设网络,虚拟化,或者服务器中任意一个都可以(需资深)2、985/211本硕 3、年龄最好35以下 薪资待遇: 1、工作时间9:00-17:00 2、根据资历…

思腾合力邀您共赴第二届世界元宇宙大会

由中国仿真学会、中国指挥与控制学会和北京理工大学共同主办,上海市嘉定区安亭镇人民政府和中国仿真学会元宇宙专业委员会承办的第二届世界元宇宙大会大会以“虚实相生、产业赋能”为主题,聚焦元宇宙关键技术发展的共性问题,交流元宇宙技术产…

Window系统GPT-SoVITS配置安装

GPT-SoVITS配置安装 GPT-SoVITS配置Python下载以及安装源文件安装依赖 运行整理在安装配置环境时遇到的报错总结 GPT-SoVITS配置 作者链接 Python下载以及安装 版本这里根据教程的版本走即可,这里不会安装python或者不会配置环境的参考我之前的文章 Python 3.9,…

C# GTS四轴运动控制器实例(固高科技步进电机不带编码器)

注:由于电机不带编码器,无法做home和当前位置信息读取! 功能: 三个轴的点位运动:前进后退,并分别显示每个轴的移动脉冲数(可以换算为距离)! 开发环境:VS2017 硬件设备:固…

编程笔记 Golang基础 007 第一个程序:hello world 使用Goland

编程笔记 Golang基础 007 第一个程序:hello world 使用Goland 步骤1:启动GoLand并创建新项目步骤2:创建主包和主函数步骤3:运行程序小结 开始在Goland环境中编程go语言代码啦。 步骤1:启动GoLand并创建新项目 打开GoL…

[word] word中图片衬于文字下方无法显示 #媒体#微信

word中图片衬于文字下方无法显示 1、如图,图片“衬于文字下方”,文字下方的图象看不见 2、光标这位到图片上这段文字中,点击“格式”-“边框和底纹”,切换到“底纹”选项卡。可发现这两段文字底纹被设置成“白色”了 …

【数学建模入门】

数学建模入门 数学建模需要的学科知识怎么学习数学模型如何读好一篇优秀论文数学建模赛题常见类别数学建模常见问题数学建模组队和分工数学建模准备工作 数学建模需要的学科知识 怎么学习数学模型 💦推荐阅读书籍: 《数学建模算法与应用》,…

OpenGL学习——17.模型

前情提要:本文代码源自Github上的学习文档“LearnOpenGL”,我仅在源码的基础上加上中文注释。本文章不以该学习文档做任何商业盈利活动,一切著作权归原作者所有,本文仅供学习交流,如有侵权,请联系我删除。L…

FlinkCDC详解

1、FlinkCDC是什么 1.1 CDC是什么 CDC是Chanage Data Capture(数据变更捕获)的简称。其核心原理就是监测并捕获数据库的变动(例如增删改),将这些变更按照发生顺序捕获,将捕获到的数据,写入数据…

Vue | (二)Vue组件化编程 | 尚硅谷Vue2.0+Vue3.0全套教程

文章目录 📚模块与组件、模块化与组件化📚非单文件组件🐇基本使用🐇关于组件的几个注意点🐇组件的嵌套 📚单文件组件🐇一个.vue 文件的组成🐇实例 学习链接:尚硅谷Vue2.0…

多线程、分布式运行用例

python多线程 threading模块 多线程实例 # -*- coding: utf-8 -*- # Time : 2024/2/7 15:50 # Author : 居里夫人吃橘子 # File : class01.py # Software: PyCharm import threading from time import sleepdef run(name):print(name 该起床了)sleep(2)print(name …

EXCEL使用VBA一键批量转换成PDF

EXCEL使用VBA一键批量转换成PDF 上图是给定转换路径 Sub 按钮1_Click() Dim a(1 To 1000) As String Dim a2 As String Dim myfile As String Dim wb As Workbook a2 Trim(Range("a2"))myfile Dir(a2 & "\" & "*.xls")k 0Do While m…

【LeetCode】树的BFS(层序遍历)精选6题

目录 1. N 叉树的层序遍历(中等) 2. 二叉树的锯齿形层序遍历(中等) 3. 二叉树的最大宽度(中等) 4. 在每个树行中找最大值(中等) 5. 找树左下角的值(中等&#xff09…

2024.2.20

使用多进程完成两个文件的拷贝&#xff0c;父进程拷贝前一半&#xff0c;子进程拷贝后一半&#xff0c;父进程回收子进程的资源 #include<myhead.h> int main(int argc, const char *argv[]) {char str[100]"";puts("please input str:");//从终端读…