空洞/扩张/膨胀卷积的作用

【霹雳吧啦】手把手带你入门语义分割4:膨胀卷积的定义与作用 & gridding effect 问题 & 应用 HDC 科学设置膨胀系数 这篇文章是我根据 B 站 霹雳吧啦Wz 的《深度学习:语义分割篇章》所作的第四篇学习笔记,主要陈述了膨胀卷积的相关概念,使用膨胀卷积的原因,然后讲解了什么是 gridding effect 问题,以及如何使用 HDC 设计准则来设置科学的膨胀系数从而解决 gredding effect 问题。作者小白,请多包涵! 阅读详情

在这里插入图片描述
卷积核膨胀是将卷积核扩张到膨胀尺度约束的尺度中,并将原卷积核没有占用的区域填充零.

空洞卷积的作用:

①:使输出变得更稠密。

②:在不增加计算量的情况下,扩大了卷积核视野(卷积核尺寸变大)。
https://blog.youkuaiyun.com/chen1234520nnn/article/details/102516704

空洞卷积有什么作用呢?

扩大感受野:在deep net中为了增加感受野且降低计算量,总要进行降采样(pooling或s2/conv),这样虽然可以增加感受野,但空间分辨率降低了。为了能不丢失分辨率,且仍然扩大感受野,可以使用空洞卷积。这在检测,分割任务中十分有用。一方面感受野大了可以检测分割大目标,另一方面分辨率高了可以精确定位目标。
捕获多尺度上下文信息:空洞卷积有一个参数可以设置dilation rate,具体含义就是在卷积核中填充dilation rate-1个0,因此,当设置不同dilation rate时,感受野就会不一样,也即获取了多尺度信息。多尺度信息在视觉任务中相当重要啊。
从这里可以看出,空洞卷积可以任意扩大感受野,且不需要引入额外参数,但如果把分辨率增加了,算法整体计算量肯定会增加。
空洞卷积虽然有这么多优点,但在实际中不好优化,速度会大大折扣。
https://zhuanlan.zhihu.com/p/50369448?ivk_sa=1024320u

膨胀卷积/空洞卷积以及如何处理gridding effect问题 阅读详情

相关推荐

扩张卷积(Atrous 卷积)

空洞卷积(dilated convolution)是针对图像语义分割问题中下采样会降低图像分辨率、丢失信息而提出的一种卷积思路。 dilated的好处是不做pooling损失信息的情况下,加大了感受野,让每个卷积输出都包含较大范围的信息。在图像需要全局信息或者语音文本需要较长的sequence信息依赖的问题中,都能很好的应用dilated conv。 利用添加空洞扩大感受野,让原本3 x3的卷积核,在相同参数量和计算量下拥有5x5(dilated rate =2)或者更大的感受野,从而无需下采样。.

qq_38343151的博客 5203

扩张卷积相比普通卷积有什么优点?在小目标检测上,普通卷积和扩张卷积哪个更具备优势?

然而,选择使用普通卷积还是扩张卷积取决于具体的任务和数据集。在一些情况下,普通卷积可能仍然表现良好,而且在计算资源有限的情况下,普通卷积可能更受欢迎。扩张卷积在增加感受野的同时,通常没有引入额外的参数。扩张卷积可以通过调整空洞的大小来获取不同尺度的信息,有助于检测具有不同尺寸的小目标。这种多尺度信息对于小目标的检测非常有帮助,因为小目标通常具有不同的尺度。扩张卷积通过引入空洞,使得每个卷积核能够覆盖更广泛的区域,提供更大的感受野。这对于捕捉小目标的上下文信息非常重要,因为小目标可能受到周围环境的影响。

weixin_43501408的博客 536

空洞卷积(扩张卷积,带孔卷积,atrous convolution)的一些总结与理解

空洞卷积(扩张卷积,带孔卷积,atrous convolution)是一种区别于普通卷积的卷积方式,从字面理解,就是卷积层中有洞。 1.一维理解 以一维为例: 图中(a)Input feature表示输入特征,Output feature表示输出特征,这是一个正常的kernel = 3; stride = 1; pad = 1的卷积操作。 图中(b)下面为Input feature,上面为Output feature,与图(a)不同的是pad = 2,同时引入了一个rate = 2,这个rate

lipengfei0427的博客 7506

一些卷积的特殊操作及优点

膨胀卷积:在不降低图像分辨率的基础上聚合图像中不同尺寸的上下文信息,并且扩大了感受野的范围。 视野更大的好处是能够更多的提取上下文的特征更广了,因为从b的9个点相对于a的9个点的视野范围就更大了,比如原来的卷积核大小是3,只能卷3个字,看这3个字有没有相关性,是不是一个命名实体,但如果有些命名实体的6个字的,那么就识别不准,将它放大以后一下子就可以看6个字了,再放大一倍一下子又可以看9个字了...

weixin_38241876的博客 2263

空洞(扩张dilated)卷积

膨胀卷积   pass                                                                       

August-us的博客 3万+

空洞卷积(膨胀卷积)的空洞率的计算 atrous(dilation)

转载自https://blog.youkuaiyun.com/chen1234520nnn/article/details/102516704?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161374273016780265467722%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=16137427301678026546.

计算机视觉 8099

Dilated Convolution(膨胀卷积、空洞卷积、扩张卷积、)学习笔记

别名:膨胀卷积、扩张卷积。最早起源于语义分割。引入了超参数扩张率(dilation rate),定义为卷积核各个值之间的距离。以3*3卷积为例,如下图:对于以上三张图,分别对应扩张率为1,2,3,感受野分别为3,5,7(灰色区域)。k′kk−1×d−1其中,k′表示等效的普通卷积核的大小,k表示空洞卷积核的大小,d表示膨胀率对于图a,k3d1得到k′32×1−13对于图b,k3d2得到k′32×2−15。

2301_77637149的博客 7935

因果卷积,膨胀卷积,混合膨胀卷积

因果卷积: 常常用于CNN网络来处理序列问题,针对序列问题x1,...xt,和y1,...,yt-1来预测yt。 时间t的状态预测依赖于前t-1个状态,具有因果关系。 如果考虑很久之前的变量x,就会导致卷积层数的增加。网络过于深会带来梯度下降,训练复杂,拟合效果不好的问题,因此提出了空洞卷积。 膨胀卷积(空洞卷积) 个人理解觉得膨胀卷积是因果卷积的变种。 在卷积核中增加空洞来增加感受野,不增加过多计算。 普通卷积有着3*3的卷积核 ...

u012811785的博客 7241

空洞卷积(膨胀卷积)的相关知识以及使用建议(HDC原则)

空洞卷积(膨胀卷积)的相关知识以及使用建议(HDC原则)

Le0v1n 的博客 4万+

空洞卷积,扩张卷积,膨胀卷积,多孔卷积,带孔卷积,dilated convolution

引子: 感受野(receptive field):CNN中,某一层输出结果中一个元素所对应的输入层的区域大小.。越大的感受野包含越多的上下文关系 Dilated/Atrous Convolution(中文叫做空洞卷积或者膨胀卷积) 或者是 Convolution with holes 从字面上就很好理解,是在标准的 convolution map 里注入空洞,以此来增加 recepti...

Jiashilin 4601

《Cesium 基础知识点》- 申请 Cesium Ion 密钥

一、访问 https://cesium.com/ion/signin/tokens 二、登录/注册 三、申请 四、使用 // 密钥 let defaultAccessToken = 'your token string'; // 设置 Cesium.Ion.defaultAccessToken = defaultAccessToken; // 初始化 let viewer = new Cesium.Viewer('cesiumContainer', {}); ...

前端技术 2570

膨胀卷积(Dilated convolutions)(又叫空洞卷积、扩张卷积)

膨胀卷积(Dilated convolutions)(又成空洞卷积、扩张卷积)和HDC设计膨胀卷积的规则分享

caip12999203000的博客 1万+

NIDS——suricata(一)

NIDS——suricata环境安装和规则编写

weixin_58666006的博客 1273

深入浅出理解空洞卷积/膨胀卷积/扩张卷积(Dilated/Atrous Convolution)

深入浅出理解空洞卷积/膨胀卷积/扩张卷积(Dilated/Atrous Convolution)

IT菜鸟 7676

LoRa物联网实战:用新大陆模块打造智能LED呼吸灯(附完整代码解析)

本文详细介绍了如何利用新大陆LoRa模块实现工业级智能LED呼吸灯的设计与开发。通过256级PWM调制的呼吸灯效果,结合LoRa无线控制技术,实现设备状态的可视化反馈和多设备同步控制。文章包含完整的硬件选型、电路设计、算法优化和代码实现,特别适合物联网开发者和硬件工程师参考。

github5actions的博客 85

生成对抗网络(GAN、DCGAN、ACGAN)-----学习笔记

生成对抗网络学习笔记 生成对抗网络有两个关键结构:生成模型、判别模型。 生成模型:输入是一个服从正态分布的N维向量,利用这个N维向量生成一张图片。 判别模型:对于生成模型输出的图像判别它是不是真的图像。 生成模型和判别模型的博弈关系在于:生成模型的目的是生成让判别模型无法判别真伪的图像,而判别模型的目的是判断输入图像的真伪。 结合代码来看生成对抗网络中,生成器和判别器的训练过程: 判别模型的训...

weixin_43227526的博客 5489

【机器学习】详解 扩张/膨胀/空洞卷积 (Dilated / Atrous Convolution)

【机器学习】详解 扩张 / 膨胀 / 空洞卷积 (Dilated / Atrous Convolution)

闻韶 2万+

多模态论文笔记——BLIP

本文详细介绍这几年AIGC火爆的隐藏功臣,多模态模型:BLIP。

haopinglianlian的博客 2454

空洞卷积(扩张卷积dilated convolution)

为什么用空洞卷积? 普通的Deep CNN中普遍包含Up-sampling / pooling layer,导致 内部数据结构丢失;空间层级化信息丢失。 小物体信息无法重建 (假设有四个pooling layer 则任何小于 2^4 = 16 pixel 的物体信息在理论上将无法重建和分割。) 普通卷积过程如下: 在这样显著缺陷问题的存在下,语义分割问题一直处在瓶颈期无法再明显提高精度,...

橘露源的博客 4096

从零搭建 C# + YOLO 工业视觉系统:从模型训练到上位机部署(工业级落地)

做工业质检、自动化生产线的同学都懂:一套能用的工业视觉系统,既要“检测准”,又要“界面易操作”,还要“部署稳”。之前帮某电子厂做PCB缺陷检测,一开始用Python+YOLO做检测核心,QT做上位机,结果踩了无数坑:Python推理速度波动大,QT和Python跨语言集成繁琐,数据传递容易卡顿;后来换成C# + YOLO的组合,直接打通了“模型训练-上位机开发-工业部署”全流程——C#的WinForms/WPF开发上位机高效,工业相机SDK支持完善;

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 737

建模simulink - 手把手教你搭建xpc平台

概述xpc半实物仿真目标是个基于RTW对低端实时仿真和开发平台,可将计算机或者工控机转变为一个实时系统,不需要第三方操作系统对支持,在计算机上配置输入输入出设备就能和外部交换信息,进行硬件...

不只会拍照的程序猿 7087

如何理解扩张卷积(dilated convolution)

扩张卷积(Dilated Convolution)也被称为空洞卷积或者膨胀卷积,是在标准的卷积核中注入空洞,以此来增加模型的感受野(reception field)。相比原来的正常卷积操作,扩张卷积多了一个参数: dilation rate,指的是卷积核的点的间隔数量,比如常规的卷积操作dilatation rate为1。它的论文是:《MULTI-SCALE CONTEXT AGGREGATION BY DILATED CONVOLUTIONS》

zhangxu 5万+

训练救星!EMA多尺度注意力让YOLOv11轻松攻克自定义数据集不涨点难题

在目标检测模型训练中,自定义数据集不涨点是阻碍算法落地的核心痛点之一。传统训练策略在数据分布特殊、样本量有限的场景下极易陷入收敛停滞,而 EMA(指数移动平均)结合多尺度注意力的方案,在自定义数据集上实现mAP 提升 6.5%,同时让训练曲线从“平缓停滞”转为“持续攀升”,彻底解决创新点在自有数据上的性能瓶颈。本教程将带你从原理到实践,通过 EMA 多尺度注意力为 YOLOv11 注入训练稳定性,让你的自定义数据集模型训练实现质的飞跃。EMA 衰减率:小样本数据集建议将decay。

FJN110的博客 160

一文详解什么是空洞卷积?

空洞卷积(Dilated Convolution) 简介 空洞卷积也叫扩张卷积或者膨胀卷积,简单来说就是在卷积核元素之间加入一些空格(零)来扩大卷积核的过程。 空洞卷积的简单原理。下图是常规卷积和空洞卷积的动图对比: 常规卷积: 空洞卷积: 假设以一个变量a来衡量空洞卷积的扩张系数,则加入空洞之后的实际卷积核尺寸与原始卷积核尺寸之间的关系:K = K + (k-1)(a-1) 其中k为原始卷积...

Tiger数学之家的博客 5万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

吃透空洞卷积(Dilated Convolutions)

一、空洞卷积的提出 空洞卷积中文名也叫膨胀卷积或者扩张卷积,英文名也叫Atrous Convolution 空洞卷积最初的提出是为了解决图像分割的问题而提出的,常见的图像分割算法通常使用池化层和卷积层来增加感受野(Receptive Filed),同时也缩小了特征图尺寸(resolution),然后再利用上采样还原图像尺寸,特征图缩小再放大的过程造成了精度上的损失,...

程序客栈 9878

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【Deep Learning】空洞卷积(膨胀卷积)解析

前言:在阅读SSD网络的时候,看到conv6层中pad=6,且有个参数dilation: 6。在平时没怎么注意到整个参数,今天对其进行记录。 layer { name: "fc6" type: "Convolution" bottom: "pool5" top: "fc6" param { lr_mult: 1.0 decay_mult: 1.0 } ...

chen1234520nnn的博客 4339

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: GCN 和 GAT
下一篇: layer normalization+残差连接+矩阵的低秩的含义
cloudless_sky
博客等级 码龄8年 106粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值