[PyTorch][chapter 33][卷积神经网络]
前言
参考: 《数字图像处理与机器视觉》 第五章 空间域图像增强,
图像卷积: 空间域图像增强
图像增强是根据特定需要突出一副图像中的某些信息,同时削弱或去除
某些不需要信息的处理方法,其主要目的是是的处理后的图像对某种特定的应用来说
比原始图像更适用。因此这类处理时为例某种特殊应用,去改善图像的质量,处理
的结果更适合于人的观察或机器的识别系统

目录
1: 卷积
2: LeNet-5
3: Conv2d
一 卷积
卷积神经网络的核心是卷积层
1.1 卷积定义
对图像的每一个点(x,y)执行以下操作
1: 对预先定义的以(x,y)为中心点的领域内的像素运算
2: 将1中的运算结果作为(x,y)点新的响应
用数学公式来表示
图像
卷积核
如 下图

1.2 卷积网络中的卷积
在 传统的 数字图像处理里面,卷积核权重系数大小是固定的,
深度学习里面需要预先定义一下,通过训练得到里面权重系数
| kernel channel | 卷积核的个数 |
| kernel size | 卷积核大小 |
| stride | 滑动的步伐,决定滑动多少步可以到图像边缘 |
| padding | 填充系数,填0 或边缘像素的扩展,总长能被步长整除。 |
1.3 input
| N | 图片的个数 |
| channel | 图片的通道,如RGB c=3, 灰度图 c=1 |
| width | 图片的宽度 |
| height | 图片的高度 |
例:

二 LeNet-5

输入
[1,1,28,28]
| 1 | 1 | 28 | 28 |
| 图像个数 | 网络输入的通道数,灰度图=1 | 图像宽 | 图像高 |
LeNet-5 共包含 8 层
C1 卷积层
[6,1,5,5]
| m=6 | channel=1 | width=5 | height=5 |
| 网络输出的通道数: 卷积核个数 | 网络输入的通道数:图像的通道 | 卷积核的宽 | 卷积核的高 |
卷积核的channel 数必须和输入的channel 一致
偏置 bias: 每个卷积核对应一个bias,共6个
输出6张28*28特征图
C1 有 156 个可训练参数(每个滤波器 5x5=25 个 bunit 参数和一个 bias 参数,一共 6 个滤波器,共(5x5+1)x6=156个参数,共 156x(28x28)=122,304个连接。
S2 采样层
有 6 个 14x14 的特征图。特征图中的每个单元与 C1 中相对应特征图的 2x2 邻域相连接。S2层每个单元的 4 个输入相加,乘以一个可训练参数,再加上一个可训练偏置。每个单元的 2x2 感受野并不重叠,因此 S2 中每个特征图的大小是 C1 中特征图大小的 1/4(行和列各 1/2)。
2*2池化层
输出 6个14*14 特征图
S2 层有 12个(6x(1+1)=12)个可训练参数和 5880(14x14 (2 2+1) 6=5880)个连接。
C3 卷积层
卷积核
| m=16 | channel=1 | width=5 | height=5 |
| 输出的通道数 | 输入的通道数 | 卷积核的宽 | 卷积核的高 |
输出 16个10*10的feature map
S4 下采样层
由 16 个 5x5 大小的特征图构成。特征图中的每个单元与 C3 中相应特征图的 2x2 邻域相连接,跟 C1 和 S2 之间的连接一样。S4 层有 32 个可训练参数(每个特征图1个因子和一个偏置16x(1+1)=32)和 2000(16 (2 2+1)x5 x5=2000)个连接。
C5 卷积层
卷积核
| m=120 | channel=1 | width=1 | height=1 |
| 卷积核个数 | 图像的通道 | 卷积核的宽 | 卷积核的高 |
输出 有 120 。由于 S4 层特征图的大小也为 5x5 (同滤波器一样),故 C5 特征图的大小为 1x1(5-5+1=1),这构成了 S4 和 C5 之间的全连接。
F6 全连接层
有 84 个单元(之所以选这个数字的原因来自于输出层的设计)
,与 C5 层全相连。有 10164(84x(120x(1x1)+1)=10164)个可训练参数。如同经典神经网络,F6 层计算输入向量和权重向量之间的点积,再加上一个偏置。然后将其传递给 sigmoid 函数产生单元i的一个状态。
最后,输出层由欧式径向基函数(Euclidean Radial Basis Function)单元组成,每类一个单元,每个有 84 个输入。
三 Conv2d函数详解
def __init__(self,in_channels: int,out_channels: int,kernel_size: _size_2_t,stride: _size_2_t = 1,padding: _size_2_t = 0,dilation: _size_2_t = 1,groups: int = 1,bias: bool = True,padding_mode: str = 'zeros' # TODO: refine this type):
| 参数 | 意义 |
| in_channels | 网络输入的通道数,RGB =3 |
| out_channels | 网络输出的通道数, 卷积核的个数 |
| kernel_size | 卷积核的大小 |
| stride | 是卷积过程中移动的步长。默认情况下是1。一般卷积核在输入图像上的移动是自左至右,自上至下 |
| padding | 填充,默认是0填充 |
| dilation | dilation:扩张。一般情况下,卷积核与输入图像对应的位置之间的计算是相同尺寸的,也就是说卷积核的大小是3X3,那么它在输入图像上每次作用的区域是3X3,这种情况下dilation=0。当dilation=1时,表示的是下图这种情况 |
| groups | 分组。指的是对输入通道进行分组,如果groups=1,那么输入就一组,输出也为一组。如果groups=2,那么就将输入分为两组,那么相应的输出也是两组。另外需要注意的是in_channels和out_channels必须能整除groups。 |
| bias | 偏置参数,该参数是一个bool类型的,当bias=True时,表示在后向反馈中学习到的参数b被应用 |
| padding_mode | 填充模式, padding_mode=‘zeros’表示的是0填充 |

例
# -*- coding: utf-8 -*-
"""
Created on Mon May 15 15:31:26 2023@author: chengxf2
"""import torch
import torch.nn as nndef main():img = torch.randn(10,3,28,28)conv = nn.Conv2d(3,16,4,stride=2,padding=0)output = conv(img)print(output.shape)
main()
===============
out: torch.Size([10, 16, 13, 13])
输入:
10张RGB 图片,图片大小28*28
[10,3,28,28]
卷积核
[16,3,4,4]
输出
输出图像的宽度,高度利用下面的公式


= 13
torch 里面通过F 函数提供另一种,更加直接的方式定义了 卷积核的shape

参考:
卷积神经网络简介
卷积神经网络基础知识
CNN中的stride、kernel、padding计算 - 知乎
https://blog.csdn.net/jiaoyangwm/article/details/80011656/
Conv2d函数详解(Pytorch)_phil__naiping的博客-CSDN博客
相关文章:
[PyTorch][chapter 33][卷积神经网络]
前言 参考: 《数字图像处理与机器视觉》 第五章 空间域图像增强, 图像卷积: 空间域图像增强 图像增强是根据特定需要突出一副图像中的某些信息,同时削弱或去除 某些不需要信息的处理方法,其主要目的是是的处理后的图像对某种特定的…...
Lift, Splat, Shoot 论文学习
1. 解决了什么问题? LSS 在工业界具有非常重要的地位。自从 Tesla AI Day 上提出了 BEV 感知后,不少公司都进行了 BEV 工程化的探索。当前 BEV 下的感知方法大致分为两类: 自下而上:利用 transformer 的 query 机制,…...
【密码产品篇】动态口令系统密钥体系结构(SM3、SM4)
【密码产品篇】动态口令系统密钥体系结构(SM3、SM4) 动态口令是一种一次性口令机制,用户无须记忆口令,也无须手工更改口令。口令通过用户持有的客户端器件生成,并基于一定的算法与服务端形成同步,从而作为…...
PDF工具Adobe Arcrobat Pro DC下载安装教程
wx供重浩:创享日记 对话框发送:adobe 免费获取Adobe Arcrobat Pro DC安装包 Acrobat是一款PDF(Portable Document Format,便携式文档格式)编辑软件。借助它,您可以以PDF格式制作和保存你的文档 ,…...
大量从IT培训班出来的程序员们最后都怎样了?
在当今信息时代,IT行业越来越受到人们的关注。越来越多的年轻人选择进入IT行业学习编程技术,而IT培训班也因此应运而生。据统计,在中国,每年约有100万人通过各种途径进入IT行业。其中,通过IT培训班获得技能认证的人数也…...
【论文阅读笔记】Federated Unlearning with Knowledge Distillation
个人阅读笔记,如有错误欢迎指出 Arxiv 2022 [2201.09441] Federated Unlearning with Knowledge Distillation (arxiv.org) 问题: 法律要求客户端有随时要求将其贡献从训练中消除的权利 让全局模型忘记特定客户的贡献的一种简单方法是从头开始对模型进…...
常用MQ介绍与区别
RabbitMQ RabbitMQ是实现AMQP协议(0.9.1) 的消息中间件的一种,由RabbitMQ Technologies Ltd开发并且提供商业支持的,最初起源于金融系统,服务器端用Erlang语言编写,用于在分布式系统中存储转发消息,在易用性、扩展性、…...
今天面试招了个20K的人,从腾讯出来的果然都有两把刷子···
现在找个会自动化测试的人真是难呀,10个里面有8个写了会自动化,但一问就是三不知 公司前段时间缺人,也面了不少测试,前面一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在15-20k,面试的…...
加速度传感器的量程估算
下面推导过程中包含一个重要的错误:sinx/x1没有错,但是这里的x是 t,当x t时,位移并非sin(t),而是n*sin(t),我稍後修訂。 在测震动和噪声的场合,现有的加速度传感器,需要客户提供加…...
0601-指针的基础
内存 物理存储器和存储地址空间 物理存储器:实际存在的具体存储器芯片。比如:内存条、RAM芯片、ROM芯片。 存储地址空间:对存储器编码的范围。 编码:对每个物理存储单元(一个字节)分配一个号码寻址&…...
关于K8S库中高可用的锁机制详解
简介 对于无状态的组件来说,天然具备高可用特性,无非就是多开几个副本而已;而对于有状态组件来说,实现高可用则要麻烦很多,一般来说通过选主来达到同一时刻只能有一个组件在处理业务逻辑。 在Kubernetes中,…...
常用中外文献检索网站大盘点
一、常用中文文献检索权威网站: 1、知网:是全球最大的中文数据库。提供中国学术文献、外文文献、学位论文、报纸、会议、年鉴、工具书等各类资源,并提供在线阅读和下载服务。涵盖领域包括:基础科学、文史哲、工程科技、社会科学、…...
公司招了一个00后,以为是个小年轻,没想到人家是个卷王...
公司前段缺人,也面了不少测试,结果竟然没有一个合适的。一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资也不低,面试的人很多,但平均水平很让人失望。 令我印象最深的是一个00后测试员,…...
数字化转型难?怎么转?听听厂商、CIO、CEO怎么说
数字化转型已经成为当今商业领域中的热门话题。对于许多企业来说,数字化转型是一项重要而且必不可少的战略,以适应快速变化的市场环境并保持竞争力。然而,数字化转型并不是一项容易的任务,它涉及到许多方面,需要综合考虑技术、组织和文化等因素。那么,让我们来听听一些厂…...
C++面试题汇总
C面试题汇总 1. new/delete和malloc/free:2. delete和delete[]:3. 常引用:4. overload、override、overwrite的介绍5. C是不是类型安全的?6. main 函数执行以前,还会执行什么代码?7. 数组与指针的区别&…...
OpenAi编写基于Python+OpenCV的人脸识别实现带墨镜效果
要基于Python和OpenCV实现带墨镜效果的人脸识别,你可以按照以下步骤进行操作: 安装所需的库:确保你已经安装了Python和OpenCV库。你可以使用pip命令来安装OpenCV库:pip install opencv-python。 导入必要的库:在Pytho…...
安卓闲谈吹水
一、熟练掌握 Java 语言,面向对象分析设计能力,反射原理,自定义注解及泛型,多次采用设计模式重构项目 首先我们先了解什么是对象。 1.对象是由我们自己定义的类来创建出来的。 2.对象实际上就是类的具体实现。 (对象是类的一个实…...
测试类的使用
1.在pom文件中添加依赖 <dependencies> <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>compile</scope> </dependency> </dependencies>2.在s…...
【物联网技术对生活的影响与展望】
随着科技日新月异的发展,物联网(IoT)技术正在快速地影响着我们的生活。它是将各种设备和物品连接在一起,通过互联网使它们可以相互交流和传递数据的技术。它的应用范围广泛,可以涵盖从智能家居到工业网络的各个领域。 …...
MySQL数据库函数详解及示例
以下是一份按照常见MySQL数据库函数,并且包含函数示例: 字符串函数 字符串函数用于处理和操作文本数据。 CONCAT:将多个字符串连接为一个字符串。SUBSTRING:提取字符串的一部分。LENGTH:返回字符串的长度。REPLACE&…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统
Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...
STM32标准库-ADC数模转换器
文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...
拟合问题处理
在机器学习中,核心任务通常围绕模型训练和性能提升展开,但你提到的 “优化训练数据解决过拟合” 和 “提升泛化性能解决欠拟合” 需要结合更准确的概念进行梳理。以下是对机器学习核心任务的系统复习和修正: 一、机器学习的核心任务框架 机…...
