一、卷积知识扩展

1. 二维卷积

单通道版本

对于单通道输入图像 III (尺寸 H×WH \times WH×W) 和卷积核 KKK (尺寸 F×FF \times FF×F),输出特征图 OOO 的计算公式为:

O(i,j)=∑m=0F−1∑n=0F−1I(i+m,j+n)⋅K(m,n)O(i,j) = \sum_{m=0}^{F-1} \sum_{n=0}^{F-1} I(i+m, j+n) \cdot K(m, n)O(i,j)=m=0F1n=0F1I(i+m,j+n)K(m,n)

计算过程示例

在这里插入图片描述

多通道版本

对于多通道输入 III (尺寸 H×W×CinH \times W \times C_{in}H×W×Cin) 和卷积核 KKK (尺寸 F×F×CinF \times F \times C_{in}F×F×Cin),输出特征图的计算公式为:

O(i,j)=∑c=0Cin−1∑m=0F−1∑n=0F−1Ic(i+m,j+n)⋅Kc(m,n)+bO(i,j) = \sum_{c=0}^{C_{in}-1} \sum_{m=0}^{F-1} \sum_{n=0}^{F-1} I_c(i+m, j+n) \cdot K_c(m, n) + bO(i,j)=c=0Cin1m=0F1n=0F1Ic(i+m,j+n)Kc(m,n)+b

其中 bbb 是偏置项,每个输出通道有独立的偏置。

在这里插入图片描述

在这里插入图片描述

2. 三维卷积

三维卷积用于处理时空数据(如视频、3D医学影像):

  • 输入维度:深度 × 高度 × 宽度 × 通道 (D×H×W×C)
  • 卷积核维度:时间/深度 × 高度 × 宽度 × 输入通道 × 输出通道 (T×F×F×C_in×C_out)
  • 输出计算:
    O(d,i,j)=∑t=0T−1∑c=0Cin−1∑m=0F−1∑n=0F−1Ic(d+t,i+m,j+n)⋅Kc,t(m,n)O(d,i,j) = \sum_{t=0}^{T-1} \sum_{c=0}^{C_{in}-1} \sum_{m=0}^{F-1} \sum_{n=0}^{F-1} I_c(d+t, i+m, j+n) \cdot K_{c,t}(m, n)O(d,i,j)=t=0T1c=0Cin1m=0F1n=0F1Ic(d+t,i+m,j+n)Kc,t(m,n)

在这里插入图片描述

应用场景

  • 视频动作识别
  • 3D医学图像分割
  • 气象数据分析

3. 反卷积(转置卷积)

反卷积用于上采样操作,常见于图像分割和生成模型:

计算过程

  1. 在输入特征图元素间插入零填充
  2. 应用标准卷积操作

在这里插入图片描述

数学表示
输入 XXX (尺寸 Hin×WinH_{in} \times W_{in}Hin×Win),输出 YYY (尺寸 Hout×WoutH_{out} \times W_{out}Hout×Wout):
KaTeX parse error: Expected 'EOF', got '_' at position 57: … + \text{kernel_̲size} - 2 \time…

底层计算
通过矩阵转置实现:

  • 标准卷积:Y=WXY = WXY=WX
  • 反卷积:X=WTYX = W^TYX=WTY

在这里插入图片描述

4. 膨胀卷积(空洞卷积)

膨胀卷积通过间隔采样扩大感受野:

  • 膨胀率 rrr:采样间隔
  • 实际感受野:F′=F+(F−1)(r−1)F' = F + (F-1)(r-1)F=F+(F1)(r1)

在这里插入图片描述

计算公式
O(i,j)=∑m=0F−1∑n=0F−1I(i+r⋅m,j+r⋅n)⋅K(m,n)O(i,j) = \sum_{m=0}^{F-1} \sum_{n=0}^{F-1} I(i + r \cdot m, j + r \cdot n) \cdot K(m, n)O(i,j)=m=0F1n=0F1I(i+rm,j+rn)K(m,n)

优势

  • 不增加参数量的情况下扩大感受野
  • 保持特征图分辨率
  • 适用于语义分割(如DeepLab)

5. 可分离卷积

空间可分离卷积

将大卷积核分解为小核乘积:
K3x3=K3x1×K1x3K_{3x3} = K_{3x1} \times K_{1x3}K3x3=K3x1×K1x3

原始3x3核:     分解后:
[a,b,c]         [a]   [x,y,z]
[d,e,f]   =>    [d] × [x,y,z]
[g,h,i]         [g]

优势:参数量从9减少到6(3+3)

图示:

在这里插入图片描述

深度可分离卷积

分为两步:

  1. 深度卷积:单通道卷积
    • 输入:H×W×CinH \times W \times C_{in}H×W×Cin
    • 输出:H×W×CinH \times W \times C_{in}H×W×Cin
  2. 逐点卷积:1×1卷积
    • 输入:H×W×CinH \times W \times C_{in}H×W×Cin
    • 输出:H×W×CoutH \times W \times C_{out}H×W×Cout

参数量对比

  • 标准卷积:F×F×Cin×CoutF \times F \times C_{in} \times C_{out}F×F×Cin×Cout
  • 深度可分离:(F×F×Cin)+(1×1×Cin×Cout)(F \times F \times C_{in}) + (1 \times 1 \times C_{in} \times C_{out})(F×F×Cin)+(1×1×Cin×Cout)

效率提升:MobileNet中可减少8-9倍计算量

图1:输入图的每一个通道,我们都使用了对应的卷积核进行卷积。 通道数量 = 卷积核个数,每个卷积核只有一个通道

在这里插入图片描述

图2:完成卷积后,对输出内容进行1x1的卷积

在这里插入图片描述

6. 分组卷积

将输入通道分为 GGG 组,每组独立卷积:

  • 标准卷积:所有输入通道→所有输出通道
  • 分组卷积:组内输入通道→组内输出通道

在这里插入图片描述

数学表达
Og(i,j)=∑c∈groupg∑m∑nIc(i+m,j+n)⋅Kg,c(m,n)O_g(i,j) = \sum_{c \in \text{group}_g} \sum_{m} \sum_{n} I_c(i+m,j+n) \cdot K_{g,c}(m,n)Og(i,j)=cgroupgmnIc(i+m,j+n)Kg,c(m,n)

优势

  • 减少参数量和计算量
  • 促进特征多样性学习
  • ResNeXt、ShuffleNet基础

7. 混洗分组卷积

在分组卷积后添加通道混洗操作:

  1. 分组卷积
  2. 重组通道:将不同组的特征混合

在这里插入图片描述

实现步骤

输入
分组卷积
通道混洗
输出

作用:增强组间信息交流,提升特征融合能力

8. 扁平卷积

使用1×1卷积核进行通道变换:

  • 数学运算:O(i,j,c)=∑k=0Cin−1I(i,j,k)⋅W(c,k)O(i,j,c) = \sum_{k=0}^{C_{in}-1} I(i,j,k) \cdot W(c,k)O(i,j,c)=k=0Cin1I(i,j,k)W(c,k)
  • 作用:
    • 降维/升维
    • 跨通道信息融合
    • 保持空间分辨率

在这里插入图片描述

二、感受野

1. 感受野的概念

感受野指卷积网络中单个神经元对应输入图像的区域大小。它反映了神经元能"看到"的原始输入范围。

计算示例

层1: 3x3卷积 → 感受野=3x3
层2: 3x3卷积 → 感受野=5x5 (考虑重叠)
层3: 3x3卷积 → 感受野=7x7

在这里插入图片描述

2. 感受野的作用

特征抽象层次
网络深度感受野大小特征抽象级别
浅层小 (3-7像素)边缘、纹理
中层中 (15-40像素)形状、部件
深层大 (>100像素)物体、场景
设计注意点
  1. 输入尺寸匹配:最终层感受野应大于目标物体
  2. 架构优化:通过膨胀卷积高效扩大感受野
  3. 多尺度融合:组合不同感受野的特征(如FPN)

计算公式
RFl=RFl−1+(kl−1)×∏i=1l−1siRF_{l} = RF_{l-1} + (k_l - 1) \times \prod_{i=1}^{l-1} s_iRFl=RFl1+(kl1)×i=1l1si
其中:

  • RFlRF_lRFl:第 lll 层的感受野
  • klk_lkl:第 lll 层卷积核大小
  • sis_isi:第 iii 层步长

三、卷积神经网络案例:CIFAR-10分类

1. 模型结构设计

输入 32x32x3
卷积64, 3x3
ReLU
最大池化 2x2
卷积128, 3x3
ReLU
最大池化 2x2
卷积256, 3x3
ReLU
全局平均池化
全连接10
Softmax

2. 网络模型定义

import torch.nn as nnclass CNN(nn.Module):def __init__(self):super(CNN, self).__init__()self.conv1 = nn.Conv2d(3, 64, 3, padding=1)self.pool = nn.MaxPool2d(2, 2)self.conv2 = nn.Conv2d(64, 128, 3, padding=1)self.conv3 = nn.Conv2d(128, 256, 3, padding=1)self.gap = nn.AdaptiveAvgPool2d(1)  # 全局平均池化self.fc = nn.Linear(256, 10)def forward(self, x):x = self.pool(F.relu(self.conv1(x)))x = self.pool(F.relu(self.conv2(x)))x = F.relu(self.conv3(x))x = self.gap(x)x = x.view(-1, 256)x = self.fc(x)return x

3. 核心模块解析

模块作用数学原理
卷积层特征提取y=W∗x+by = W \ast x + by=Wx+b
ReLU引入非线性f(x)=max⁡(0,x)f(x) = \max(0,x)f(x)=max(0,x)
最大池化降维y=max⁡(xi:i+k,j:j+k)y = \max(x_{i:i+k,j:j+k})y=max(xi:i+k,j:j+k)
全局平均池化空间信息聚合yc=1H×W∑i∑jxc,i,jy_c = \frac{1}{H \times W} \sum_i \sum_j x_{c,i,j}yc=H×W1ijxc,i,j
Softmax分类概率输出pc=ezc∑kezkp_c = \frac{e^{z_c}}{\sum_{k} e^{z_k}}pc=kezkezc

4. CIFAR-10数据集

  • 10类物体(飞机、汽车、鸟等)

  • 50,000训练图像 + 10,000测试图像

  • 分辨率32×32 RGB

  • 数据加载:

    transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
    ])trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)
    

5. 数据增强策略

train_transform = transforms.Compose([transforms.RandomHorizontalFlip(),  # 随机水平翻转transforms.RandomRotation(15),      # 随机旋转(-15°~15°)transforms.ColorJitter(             # 颜色调整brightness=0.2, contrast=0.2, saturation=0.2),transforms.RandomResizedCrop(32, scale=(0.8, 1.0)),  # 随机缩放裁剪transforms.ToTensor(),transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
])

6. 模型训练与保存

model = CNN().cuda()
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)for epoch in range(50):for inputs, labels in train_loader:inputs, labels = inputs.cuda(), labels.cuda()# 前向传播outputs = model(inputs)loss = criterion(outputs, labels)# 反向传播optimizer.zero_grad()loss.backward()optimizer.step()# 每10轮保存一次if epoch % 10 == 0:torch.save(model.state_dict(), f'model_epoch_{epoch}.pth')

7. 模型验证流程

model.load_state_dict(torch.load('best_model.pth'))
model.eval()  # 切换到评估模式correct = 0
total = 0with torch.no_grad():for images, labels in test_loader:images, labels = images.cuda(), labels.cuda()outputs = model(images)_, predicted = torch.max(outputs.data, 1)total += labels.size(0)correct += (predicted == labels).sum().item()print(f'准确率: {100 * correct / total}%')

8. 实时训练可视化

使用TensorBoard记录:

from torch.utils.tensorboard import SummaryWriterwriter = SummaryWriter()for epoch in range(epochs):# ...训练循环...writer.add_scalar('Loss/train', loss.item(), epoch)writer.add_scalar('Accuracy/train', acc, epoch)# 可视化卷积核if epoch % 5 == 0:for name, param in model.named_parameters():if 'conv' in name and 'weight' in name:writer.add_histogram(name, param, epoch)writer.add_images(f'{name}_kernels', param.data[:8].unsqueeze(1), epoch)

关键概念总结

卷积类型对比

卷积类型参数量计算量适用场景
标准卷积通用模型
深度可分离极低极低移动端模型
膨胀卷积不变不变语义分割
分组卷积减少减少高效模型
反卷积生成模型

感受野计算表

核大小步长感受野
Conv1313
Pool1224
Conv2318
Pool22212
Conv33120

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

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

相关文章

pyecharts可视化图表-pie:从入门到精通(进阶篇)

欢迎来到pyecharts饼图系列教程的进阶篇!在上一篇基础教程中,我们学习了饼图的基本概念和简单实现。在本文中,我们将深入探索pyecharts中饼图的六种高级用法和自定义选项,包括环形饼图、富文本标签饼图、滚动图例饼图、环形图、嵌…

【JAVA 核心编程】面向对象高级:类变量与方法 抽象类与接口

一、类变量与类方法(静态变量) 1)类变量 class Child{private String name;//定义一个变量count,是一个类变量(静态变量)static静态//该变量最大的特点就是会被Child 类的所有对象访问public static int co…

【Java基础面试题】数据类型

Java面试高频总结:基本数据类型深度解析 📊 八种基本数据类型详解数据类型关键字字节数位数默认值取值范围核心特性字节型byte180-128 ~ 127最小整数类型短整型short2160-32,768 ~ 32,767较少使用整型int4320-2 ~ 2-1 (约21亿)最常用整数类型长整型long8…

攻防世界—unseping(反序列化)

一.审题<?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function __destruct(){if (in_array($this->method, array("ping"))) {call_u…

AI热点周报(8.10~8.16):AI界“冰火两重天“,GPT-5陷入热议,DeepSeek R2模型训练受阻?

名人说&#xff1a;博观而约取&#xff0c;厚积而薄发。——苏轼《稼说送张琥》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录3分钟速览版&#xff1a;一张表看懂本周AI大事一、GPT-5&#xff1a;期待越高&#x…

Python_vue3_django旅拍在线婚纱摄影网站的设计与实现016023190_源码LW_讲解安装

目录前言-本系统介绍已开发项目效果实现截图开发技术详细介绍论文设计框架系统测试核心代码参考示例总结源码获取详细视频演示或者查看其他版本&#xff1a;文章底部获取博主联系方式&#xff01;前言-本系统介绍 利用Python语言、MySQL数据库&#xff0c;Django框架&#xff0…

Python爬虫-爬取政务网站的文档正文内容和附件数据

前言 本文是该专栏的第67篇,后面会持续分享python爬虫干货知识,记得关注。 本文,笔者以某政务网站为例子。基于Python爬虫采集某政务网站的文档正文内容和其关联的附件数据。 具体的实现思路以及完整实现代码逻辑,笔者将在正文进行详细介绍。废话不多说,跟着笔者直接往下…

Python:如何在Pycharm中显示geemap地图?

01 说明 或许在旧版本的python和jupyter中并不能成功. 作为参考&#xff0c;这里给出实验成功的版本&#xff1a;名称版本通道geemap0.36.1conda-forgejupyter1.1.1conda-forgepycharm2024.1.4 (Professional Edition)nullpython3.11.13conda-forge此外&#xff0c;由于显示底图…

力扣3:无重复字符的最长子串

力扣3:无重复字符的最长子串题目思路代码题目 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长 子串 的长度。 思路 这道题的思路其实是很简单的&#xff0c;最后我们需要得到子串的长度所以我们可以定义两个变量即子串的左边界和右边界这样有了左右边界就…

Git登录配置的详细方法

Git登录绑定主要涉及配置用户信息和设置身份验证。以下是详细的配置方法&#xff1a; 1. 配置基本用户信息 # 全局配置用户名和邮箱 git config --global user.name "你的用户名" git config --global user.email "你的邮箱example.com"# 或者为单个仓库配…

测试工程师的AI转型指南:从工具使用到测试策略重构

测试工程师的AI转型指南&#xff1a;从工具使用到测试策略重构 测试工程师正站在职业转型的十字路口。当GitHub Copilot能自动生成测试用例&#xff0c;AI性能工具能预测系统瓶颈&#xff0c;传统“手动执行用例、人工分析结果”的工作模式正被颠覆。某互联网公司测试团队的调研…

3D打印——给开发板做外壳

3D打印——给开发板做外壳前言一、建立开发板3D模型根据开发板尺寸绘制草图绘制PCB草图&#xff08;手动&#xff09;绘制PCB草图&#xff08;导入&#xff09;拉伸PCB板下载零件3D模型装配零件二、建立外壳3D模型盒子盖子&#xff08;卡扣&#xff09;最终效果三、问题记录前言…

Spring AI架构分析

Spring AISpring AI开发框架提供对接应用与AI模型的集成开发能力&#xff0c;让开发者更加容易地开发智能体以及其他生成式人工智能的应用&#xff1a;模型&#xff08;Model&#xff09;AI模型是算法与数据的集合&#xff0c;用于处理信息以及生成信息&#xff0c;主要AI模型的…

Javar如何用RabbitMQ订单超时处理

RabbitMQ 订单超时处理方案 使用 RabbitMQ 的 TTL 死信队列&#xff08;DLX&#xff09; RabbitMQ 的 TTL&#xff08;Time-To-Live&#xff09; 和 死信队列&#xff08;Dead Letter Exchange&#xff09; 是处理订单超时的常见方案。核心思路是设置消息的过期时间&#xff0…

记录一下 StarRocks 点查的 Profile Metrics

背景 Starrocks 3.5 补充两个点查的 profile 一个是没有开启点查的情况&#xff0c;也就是SET enable_short_circuit false; 一个是开启点查的情况&#xff0c;也就是SET enable_short_circuit true; 其中建表语句如下&#xff1a; CREATE TABLE ac_account (id bigint(20) …

react echarts图表监听窗口变化window.addEventListener(‘resize’)与ResizeObserver()

发生问题场景 系统页面使用tabs标签页,当有多个组件&#xff0c;有使用eCharts图表的页面时&#xff0c;其中的一个页面或其他页面使用了F11的页面全屏&#xff0c;关闭全屏后图表会收缩起来(注:固定eCharts的width、height 的参数值是无影响&#xff0c;按照固定参数大小展示)…

Leaflet赋能:WebGIS视角下的省域区县天气可视化实战攻略

目录 前言 一、空间数据基础 1、省域空间检索 2、区县天气信息检索 二、天气数据简介 1、省域天气数据获取 2、区县名称不一致 三、SpringBoot后台实现 1、Java后台天气数据查询 2、控制层实现 四、WebGIS前端实现 1、气温颜色及图例初始化 2、气温数据展示实现 五…

《SeeClick: Harnessing GUI Grounding for Advanced Visual GUI Agents》论文精读笔记

前言 论文链接&#xff1a;[2401.10935] SeeClick: Harnessing GUI Grounding for Advanced Visual GUI Agents SeeClick是一种只依赖截图就能执行自动化任务的方法。 在这篇论文中&#xff0c;还提出了ScreenSpot数据集&#xff0c;涵盖移动端、桌面和Web环境的真实benchma…

校园综合数据分析可视化大屏 -Vue纯前端静态页面项目

最近一直在学习用vue来制作 一些 大屏报表的网站&#xff0c;今天就来分享一个我最近做的一个 关于校园综合数据分析可视化大屏的网站。 使用的技术是vue2 element-uiVue2&#xff1a;Element-UI&#xff1a;ECharts&#xff1a;Node版本 16.20 安装依赖&#xff1a;n…

【adb端口5555】烽火hg680-gy_烽火hg680-gc安卓9线刷烧录包 解决用一段时间就提示升级的问题

烽火hg680-gy_烽火hg680-gc安卓9线刷烧录包 解决提示升级的问题本固件可用于那些adb打不开或无法用U盘成功刷机的盒子&#xff1b;本固件需要准备一个TTL线哦&#xff1b;CH340型号的 可以网上自购&#xff1b;TTL链接点 参考下图&#xff1a;其他也没有特别需要说明了的&#…