阅读笔记6——通道混洗

目标检测轻量化压缩 目标检测轻量化压缩 目标检测难点概述 目标检测是计算机视觉中一个重要问题,在行人跟踪、车牌识别、无人驾驶等领域都具有重要的研究价值。近年来,随着深度学习对图像分类准确度的大幅度提高,基于深度学习的目标检测算法逐渐成为主流。 自 2014 年以来,目标检测框架分为two-stage 和 one-stage 两大类,前者以经典方法 Faster R-CNN 为代表,后者以 YOLO 和 SSD 为主要... 阅读详情
AI摘要

文章介绍了深度学习网络中用于轻量化设计的逐点卷积和通道混洗技术。1×1卷积用于通道间的信息融合和维度调整,而通道混洗则进一步增强信息流通,提高特征表达能力,以降低计算量并优化模型性能。ShuffleNet通过通道混洗实现更有效的信息融合。

一、逐点卷积

  当前先进的轻量化网络大都使用深度可分离卷积或组卷积,以降低网络的计算量,但这两种操作都无法改变特征图的通道数,因此需要使用1×1的卷积。总体来说,逐点的1×1卷积有如下两点特性:

  • 可以促进通道之间的信息融合,改变通道至指定维度。

  • 轻量化网络中1×1卷积占据了大量的计算,并且致使通道之间充满约束,一定程度上降低了模型的精度。

  为了进一步降低计算量,ShuffleNet提出了通道混洗的操作,通过通道混洗也可以完成通道之间信息的融合。

二、通道混洗

1. 实现思想

在这里插入图片描述

图2-1 通道混洗操作示意图

  图2-1中a图代表了常规的两个组卷积操作,可以看到,如果没有逐点的1×1卷积或者通道混洗,最终输出的特征仅由一部分输入通道的特征计算得出,这种操作阻碍了信息的流通,进而降低了特征的表达能力。

  因此,我们希望在一个组卷积之后,能够将特征图之间的通道信息进行融合,类似于图2-1中b操作,将每一个组的特征分散到不同的组之后,再进行下一组卷积,这样输出的特征就能够包含每一个组的特征,而通道混洗恰好能够实现这个过程,如图2-1的c所示。

2. 实现过程

  通道混洗可以通过几个常规的张量操作巧妙地实现,如图2-2所示。为了更好地讲解实现过程,这里对输入通道做了1-12的编号,一共包含3个组,每个组包含4个通道。

在这里插入图片描述

图2-2 通道混洗的具体实现过程

  下面详细介绍混洗过程中使用到的3个操作:

  • Reshape:首先将输入通道的一个维度Reshape成两个维度,一个是卷积组数,一个是每个卷积包含的通道数。
  • Transpose:将扩展出的两维进行置换。
  • Flatten:将置换后的通道Flatten平展后即可完成最后的通道混洗。
3. 代码示例
def channel_shuffle(x, groups):
	batchsize, num_channels, height, width = x.data.size()
	channels_per_groups = num_channels // groups
	# Reshape操作,将通道扩展为两维
	x = x.view(batchsize, groups, channels_per_group, height, width)
	# Transpose操作,将组卷积两个维度进行置换
	x = torch.transpose(x, 1, 2).contiguous()
	# Flatten操作,两个维度平展成一个维度
	x = x.view(batchsize, -1, height, width)
	return x
一图说清ShuffleNet中的通道混洗(附两种pytorch实现) 0.看ShuffleNet的通道混洗没看明白,后来在大神博客:https://blog.youkuaiyun.com/u011974639/article/details/79200559上看明白了。把自己理解写在下面方便像我这样的小白更清晰理解。 1.上图:通道混洗就是打乱原特征图通道顺序。 上图说的够明白了吧。首先确定自己的特征图通道数多少,再确定组数多少,然后将通道分组后作为输入(input)就可以了。 最终的输出还是组的形式,再将其拼接就是和原来输入一样shape的特征图了。只不过通道被打乱了。 2 阅读详情

相关推荐

ShuffleNet:通道的打乱与混洗

因此,我们希望在一个组卷积之后,能够将特征图之间的通道信息进行融合,类似于图中b的操作,将每一个组的特征分散到不同的组之后,再进行下一个组卷积,这样输出的特征就能够包含每一个组的特征,而通道混洗恰好可以实现这个过程,如图的c图所示。图的b图则是基本的ShuffleNet基本单元,可以看到1×1卷积采用的是组卷积,然后进行通道的混洗,这两步可以取代1×1的逐点卷积,并且大大降低了计算量。图的a图是一个带有深度可分离卷积的残差模块,这里的1×1是逐点的卷积。相比深度可分离卷积,1×1计算量较大。

2401_89791727的博客 1243

通道混洗(Channel shuffle)

import torch #通道混洗(Channel shuffle) #目的:在不增加计算量的情况下,使通道充分融合 x = torch.randn(4,6,3,3) y = x.reshape(4,2,3,3,3) print(y.shape) z = y.permute(0,2,1,3,4) print(z.shape) v = z.reshape(4,6,3,3) print(v.shap...

wa1tzy的博客 5430

RK3588开发板DDR频率上不去?手把手教你用ddrbin_tool降频调优(附完整配置流程)

本文详细介绍了RK3588开发板DDR频率调优的完整解决方案,重点使用ddrbin_tool工具进行降频配置。从硬件原理分析到实战操作,包括参数导出、频率调整、二进制生成及烧录验证,帮助开发者解决DDR高频不稳定问题,提升系统可靠性。适用于嵌入式开发、工业控制等场景。

weixin_42713608的博客 544

不同方式卷积总结

卷积参数的计算方式,各种卷积的参数计算方式。

weixin_50277857的博客 3781

SDU CS 期末考回忆版合集

删除原有分散的版本,合订起来画个。包括:机器学习、算法、图形学、操作系统、编译原理、软件工程、大数据分析管理、计算机体系结构等。

https://github.com/ZhaoyungZhang 6648

VMware 15 虚拟机安装Ubuntu 18.04

这几年在自动化、计算机之间游来游去,最近又要做机器学习相关的课题,14年做的虚拟机实在不堪重用了,OK,我们重新开始。 VMware的安装就不再赘述了,目前最新版本是15.0.2,官方下载地址: https://my.vmware.com/en/web/vmware/info/slug/desktop_end_user_computing/vmware_workstation_pro/15_0...

略懂 2万+

论文阅读《Designing a Practical Degradation Model for Deep Blind Image Super-Resolution》2021

图片超分重建发展

qq_47415763的博客 518

基于立创EDA的8口全千兆POE交换机设计详解:RTL8370N芯片与90W大功率供电方案

本文详细解析了基于立创EDA设计的8口全千兆POE交换机方案,核心采用RTL8370N交换芯片与支持90W大功率供电的IEEE 802.3bt标准PD芯片。文章深入探讨了PSE/PD供电管理、电源架构设计、电路细节及关键散热方案,为DIY或学习POE交换机硬件设计提供了完整的开源实践指南。

weixin_29050829的博客 1万+

【论文阅读笔记】ALSS-YOLO | 无人机(UAVs)、热红外(TIR)、野生动物探测、小目标、轻量级探测器

ALSS-YOLO | 无人机(UAVs)、热红外(TIR)、野生动物探测、小目标、轻量级探测器

静谧、淡雅 2125

grafana 配置页面告警

Rate 下拉选择也可,保持默认也可。By label 选择一个比如选择filename。配置无数据或者错误数据的时候如何处理,这里选择 Normal (表示当做正常不会告警)单机 node_name 标签,选择一个主机,选好后单机 Show logs。单机 New floder,如果之前配置过,也可以选择。单机 Save contact point 保存即可。会跳出如下对话框(如果没有跳出就自己单机选择下)完成后会自动生成如下图,告警规则部分就配置好了。选择告警接收方式(这里选择企业微信 WeCon)

weixin_40548182的博客 3252

【100分】最长子字符串的长度

题目要求在一个环形字符串中找出字符 ‘o’ 出现了偶数次的最长子字符串长度。这里的字符串是一个环形的,即首尾相连。代码统计了字符串中字符 ‘o’ 的出现次数,并根据其奇偶性返回相应的最长子字符串长度。当 ‘o’ 的数量为偶数时,直接返回字符串长度;当 ‘o’ 的数量为奇数时,返回长度减去 1。给你一个字符串 s,字符串s首尾相连成一个环形 ,请你在环中找出 ‘o’ 字符出现了偶数次最长子字符串的长度。【最长子字符串的长度】

weixin_54707168的博客 896

【论文阅读】ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

ShuffleNet: An Extremely Efficient Convolutional Neural Network for MobileDevices 转载于:https://www.cnblogs.com/White-xzx/p/10324131.html

diejingbu1567的博客 295

Wi-Fi数据帧类别

QoS

1042484520@qq.com(邮箱) 3156

论文阅读笔记(十一):ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

论文地址:https://arxiv.org/pdf/1707.01083.pdf 项目复现地址:caffe——https://github.com/farmingyard/ShuffleNet tensorflow——https://github.com/MG2033/ShuffleNet Abstract 我们引入了一个名为ShuffleNet的极其计算效率的CNN架构,该架构专为...

887

GLM-4本地部署的实战教程

本文主要介绍了GLM-4-9B本地部署的实战教程,希望对学习和使用大模型的同学们有所帮助。 文章目录 1. 前言 2. 配置环境 2.1 安装虚拟环境 2.2 安装依赖库 2.3 下载模型文件 3. 运行glm-4-9b-chat

herosunly的博客 25万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

论文阅读笔记--JSI-GAN: GAN-Based Joint Super-Resolution and Inverse Tone-Mapping with UHD HDR video

Kim S Y , Oh J , Kim M . JSI-GAN: GAN-Based Joint Super-Resolution and Inverse Tone-Mapping with Pixel-Wise Task-Specific Filters for UHD HDR Video[J]. ECCV 2019. 摘要: 最近已经探索了对超分辨率(SR)和逆色调映射(ITM)的...

qq_25283239的博客 1266

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【个人笔记 | 卷积大礼包 | 整理中Ing】

五湖四海的卷积家人们欢聚一堂。

sinat_40759442的博客 677

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

腾讯开源1B参数轻量OCR模型:技术解析与实战部署指南

光学字符识别(OCR)技术旨在将图像中的文字转换为可编辑和可搜索的文本数据,其核心原理是通过深度学习模型提取视觉特征并解码为字符序列。这项技术的价值在于极大地提升了文档数字化、信息自动录入和内容分析的效率,广泛应用于金融票据处理、证件识别、办公自动化及工业视觉质检等场景。随着模型小型化与高效化成为工业界的关键趋势,如何在资源受限环境下部署高性能OCR模型成为工程实践的重点。本文聚焦于腾讯最新开源的轻量化OCR模型,该模型仅具备10亿参数,却在多项任务上达到了业界领先水平,堪称“小钢炮”。其成功得益于对**注

weixin_34099526的博客 406

通道混洗模块(Channel Shuffle Module)

通道混洗模块的主要作用在于增强特征的跨通道交流。在传统的卷积层中,不同通道之间的信息很少进行交流,通道混洗模块通过打破这种限制,可以提取更加丰富和有用的特征表示,从而有助于提高网络的性能。此外,通道混洗模块还可以一定程度上减少模型的计算复杂性,因为它可以在一定程度上减少通道之间的相关性,从而减少参数量。通道混洗模块的核心思想是将输入的特征图分成多个通道组,并将这些通道组重新组合以促进不同通道之间的信息交换。请注意,这只是一个简单的示例,实际的通道混洗模块可能会在更复杂的网络架构中使用。

吃葡萄不吐葡萄皮 2485

探索 CNN 中的逐点卷积:替换全连接层

卷积神经网络 (CNN) 一直是理解图像和模式、改变深度学习格局的关键角色。这个旅程从 Yan 介绍 LeNet 架构开始,今天,我们有一系列 CNN 可供选择。传统上,这些网络严重依赖于完全连接的层,尤其是在将事物分类为不同类别时。但是等等,空气中有变化。我们正在探索一种使用 Pointwise Convolution 的不同架构,这是一种全新且改进的 CNN 方法。就像走上了一条新路。这种方法挑战了通常使用的全连接层,带来了一些很酷的好处,使我们的网络更智能、更快速。

Mo 的博客 1808

机器学习——概念理解之卷积、空洞卷积、深度卷积、逐点卷积、空间可分离卷积、深度可分离卷积

本文主要介绍常见的几种卷积的概念和计算方法,主要包括:卷积、空洞卷积、深度卷积、逐点卷积、空间可分离卷积、深度可分离卷积。 卷积(convolution) 讨论卷积之前先介绍一下相关的概念: 卷积核 卷积核(convolution kernel):也叫滤波器(Filter),就是一个nxn的矩阵,矩阵的成员就是我们要训练的权重值,整个图片使用一个卷积核这也就实现了共享权重。卷积核的值不需要提前设计,只需要初始化,然后通过训练进行优化,这也就是模型训练要做的事情。 padding填充 为了避免一些边界上的值在

itlilyer的博客 1万+

通道混洗与像素混洗——Pytorch实现

Pytorch 轻松实现通道混洗与像素混洗

ssunshining的博客 1955

ShuffleNet的pytorch实现

ShuffleNet 1.概述 ShuffleNetv1 ShuffleNet是一个专门为移动设备设计的CNN模型,主要有两个特性: 1.pointwise(1×11\times11×1) group convolution 2.channel shuffle 它能够在减少计算量的同时保持精度。 剪枝(pruning),压缩(compressing),低精度表示(low-bit representing) 使用pointwise group convolution来降低1×11\times11×1卷

kobayashi_的博客 2499

通道混洗网络

通道混洗就是先对通道进行reshape,再transpose,然后再reshape回去。

weixin_38241876的博客 284

组卷积(Groupwise Convolution)和逐点卷积(Pointwise Convolution)的区别联系

组卷积是一种将输入特征图分成多个组(groups),然后在每个组内进行卷积操作的方法。每个组的卷积核只与对应组的输入特征图进行卷积,不同组之间不进行信息交换。

hello! 1790
上一篇: 阅读笔记5——深度可分离卷积
下一篇: 阅读笔记7——Focal Loss
晓shuo
晓shuo 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域
博客等级 码龄6年 4万+粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓shuo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值