【CNN感受野计算】python 示例含盖 vgg alexnet rtpose等

卷积神经网络中感受野的理解和计算 参考 https://blog.youkuaiyun.com/qq_27825451/article/details/83302662 https://blog.youkuaiyun.com/program_developer/article/details/80958716 https://blog.youkuaiyun.com/SIGAI_优快云/article/details/80743475(卷积神经网络为什么有效) ... 阅读详情

一、感受野

      layer 1 : kernel size:3*3 stride:1

      layer2 :kernel size:3*3 stride:1

      第一层的感受野就是卷积核大小 3*3 ,第二层感受野是5*5

      这个也比较好理解,对于第一层计算之后的feature map而言,每一个pixel都对应了layer1的input的3*3大小的区域;

      第二层的输出也是同理,但是第二层的输入本身携带了3*3的感受野,那么在第二层这个3*3的最中心那个位置就是上一次感受野的区域结果,相当于向外扩展(上下左右)了1个pixel,因此为5*5

      如果这个时候,再来一个layer3:kernel size:5*5 stride:2

      再来个layer4:kernel size:3*3 stride:1

      那么此时第三层的感受野就是5+(5-1)*1=9,第四层为9+(3-1)*2=13

      ***pool层也按照卷积层同理计算就行了

二、公式

                                             

                   其中l_k-1是第k-1层的感受野大小,而f_k是当前层的卷积核大小,s_i是第i层的步长。

三、python代码

alexnet=[
    [[3, 96, 11, 4, 0],
    [3,2,0],
    [96, 256, 5, 1, 2],
    [3,2,0],
    [256,384, 3, 1, 1],
    [384,384, 3, 1, 1],
    [384,256, 3, 1, 1],
    [3,2,0]]


]
vgg16=[
    [[3, 64, 3, 1, 1],
     [64, 64, 3, 1, 1],
    [2,2,0],
    [64, 128, 3, 1, 1],
[128, 128, 3, 1, 1],
    [2,2,0],
    [128,256, 3, 1, 1],
[256,256, 3, 1, 1],
[256,256, 3, 1, 1],
[2,2,0],
[256,512, 3, 1, 1],
[512,512, 3, 1, 1],
[512,512, 3, 1, 1],
[2,2,0],
[512,512, 3, 1, 1],
[512,512, 3, 1, 1],
[512,512, 3, 1, 1],
[2,2,0]]
]
net = [[ [3, 64, 3, 1, 1],
               [64, 64, 3, 1, 1],
               [2, 2, 0],
               [64, 128, 3, 1, 1],
               [128, 128, 3, 1, 1],
               [2, 2, 0],
               [128, 256, 3, 1, 1],
               [256, 256, 3, 1, 1],
               [256, 256, 3, 1, 1],
               [256, 256, 3, 1, 1],
               [2, 2, 0],
               [256, 512, 3, 1, 1],
               [512, 512, 3, 1, 1],
               [512, 256, 3, 1, 1],
               [256, 128, 3, 1, 1]]]

net.append( [[128, 128, 3, 1, 1],
                      [128, 128, 3, 1, 1],
                      [128, 128, 3, 1, 1],
                      [128, 512, 1, 1, 0],
                      [512, 38, 1, 1, 0]])

for i in range(2, 7):
    net.append([
        [185, 128, 7, 1, 3],
        [128, 128, 7, 1, 3],
        [128, 128, 7, 1, 3],
         [128, 128, 7, 1, 3],
        [128, 128, 7, 1, 3],
        [128, 128, 1, 1, 0],
        [128, 38, 1, 1, 0]
    ])

#!!!!!这里的rf_k_1每次根据需要的网络换成第一层的卷积核大小!!!!!!
stride_all_k_1=1
rf_k_1=3
flag=0
count=0
net_to_caculated=vgg16
for stage in range(len(net_to_caculated)):
    #print(net[stage])
    print("stage: ",stage)
    for layer in net_to_caculated[stage]:
        if flag==0:
            if len(layer)==5:
                rf=rf_k_1
                stride_all_k_1=stride_all_k_1*layer[3]
            else:
                rf = rf_k_1
                stride_all_k_1 = stride_all_k_1 * layer[1]
            flag=1
        else:
            if len(layer) == 5:
                rf=rf_k_1+(layer[2]-1)*stride_all_k_1
                stride_all_k_1=stride_all_k_1*layer[3]
            else:
                rf = rf_k_1 + (layer[0] - 1) * stride_all_k_1
                stride_all_k_1 = stride_all_k_1 * layer[1]
            rf_k_1=rf
        print("layer ",count," receptive field: ",rf)
    print("stage ",stage," receptive field:",rf)

 

pytorch复现网络AlexNet和VGG 下图是AlexNet的网络结构 由上图可见,AlexNet有5个卷积层,然后紧跟着3个全连接层。简图如下图 采用的激活函数是ReLU,激活函数表达式是f(x)=max(0,x) 如上图所示,AlexNet在每个全连接层后都加上了dropout层。减少过拟合。dropout层以一定的概率随机关闭当前层中神经元激活值。 dropout层,不同的神经元组合被关闭,代表着不同的结构,所有这些不同的... 阅读详情

相关推荐

CNN中感受野Receptive Field的计算

1. 感受野 The receptive field is defined as the region in the input space that a particular CNN’s feature is looking at (i.e. be affected by). 感受野是在输入空间内,CNN提取的特征的来源区域的大小。 感受野可以用其中心位置和尺寸来描述。 在一个感受野内,越靠近中...

随风秀舞(diyoosjtu) 1058

深度学习基础:一次读懂CNN感受野

感受野基本概念 1.输出feature map上的一个单元对应输入层 上的区域大小 2.感受野的增速是直接和卷积步长累乘相关,想要网络更快速的达到某个感受野尺度,可以让步长大于1的卷积核更靠前,这样可以增加网络推理速度,特增图的分辨率会迅速变小 3.当有效感受野的区域能够覆盖全图时,这时的特征表达能力是最好的(有效感受野跟关注中间的内容) 4. 1x1的卷积相当于全连接层,可以用前者代替后者,形成全卷积 ......

weixin_43507744的博客 1230

Dilated Convolution和普通感受野计算的python实现

感受野的计算公式如下:  r1=1,strides=1 rn = rn-1 + (fn – 1)*strides  rn表示第n层的感受野 fn表示第n层卷积核大小 striden表示前n-1层stride乘积 striden = strides= stride1*stride2*…*striden-1 这里对Dilated/Atrous Convolution的感受野计算也进行下实现 其实Dilated/Atrous Convolution理解起来很简单多孔卷积,仅仅是为了增加感受野,参数不变 当dilation = 1时就和普通卷积一样 如果使用了dilation卷积相当于变大了,如下图所

torch.Size([1, 3, 512, 512])转为<class ‘numpy.ndarray‘>(512, 512, 3)

img1_channel1=img1.numpy()[0,:,:,:][0,:,:][:,:,None]#array(512, 512, 1) #img1.numpy()[0,:,:,:] (3,512,512) #img1.numpy()[0,:,:,:][0,:,:] (512,512) #img1.numpy()[0,:,:,:][0,:,:][:,:,None] (512,512,1) img1_channel2=img1.numpy()[0,:,:,:][1,:,:][:,:.

qq_39328344的博客 2037

Cadence 设计实践笔记-小哥allegro 2层板笔记

规范建立文件夹本章节主要跟着B站PCB入门首选视频-小哥Cadence Allegro 2层板视频,结合自己的实践一步步完成一个完整的PCB板的设计。规范建立文件夹建立八个文件夹我使用的Cadence 17.4 有些差异原理图绘制原图绘制首先要熟悉原理图工作原理工作原理下面是这个项目的原理图重点关注电源新建原理图库打开Cadence 软件创建项目新建工程 File ==========》Project我这里选择了Enable PSPice 试试能不能仿真,新建项目如下。

我的专栏 1479

泛微ecology9 利用字段值动态控制明细表显示与隐藏

本文详细介绍了在泛微ecology9中,如何利用WfForm.bindFieldChangeEvent监听字段变化,结合jQuery动态控制明细表显示与隐藏的实战方法。通过五步操作,可实现根据字段值(如报销类型)智能切换明细表,提升表单交互体验与开发效率,并确保PC与移动端完美兼容。

7z8x2c4v6b9的博客 585

感受野计算公式(附Python代码实现)

感受野是什么?知乎有一篇写的不错,供参考: https://zhuanlan.zhihu.com/p/31004121 但作者用MATLAB代码实现的,我用Python实现另一个感受野的计算公式: 代码: s_0 = 1 kernal_size = [3,3,3] # 自己输入每一层的卷积核大小 stride = [1,2,2,1] # 第一个数字固定为1,真正的s从第二个数字开始(自己输入每一层的步长) RF = 1 def times(s): c = 1 for i i..

风的博客 1264

手把手式介绍 ADNI 影像数据下载

1.搜索 1.1登录 打开ADNI的官网:http://adni.loni.usc.edu/,进入下面的界面。 点击 DATA&SMPLES 下的 ACCESS DATA AND SAMPLES,如下图。 页面跳转以后点击中间的“LOGIN”,这时会跳出一个新的界面,然后在右上角输入自己的帐号、密码即可。如果没有权限可以跳转到第2部分看看如何申请权限。 登录以后选择DOWNLOAD下的 Image Collections就是搜索下载影像数据,其他还有一些学习测试数据和遗传数据。 1.2 sea

永远想不起来更新的博客 1万+

如何计算CNN感受野、计算量和模型大小

下面以最经典的AlexNet模型为例子,计算感受野,模型计算量和大小(内存)。下面这张图是AlexNet的结构图,看起来比较直观。 感受野 感受野是检测和分割任务中比较重要的指标,它是一个逐层叠加的过程,计算到最后一层的卷积特征图输出上,它的计算公式是: RFi=RFi−1+(kernelsize−1)×stride,RF0=1RF_{i}=RF_{i-1}+(kernelsize-1)\tim...

zhangxu 5021

从透射谱到能量分布:用Rsoft破解光纤光栅耦合模式的3个关键技巧

本文面向光通信工程师与研究者,分享了利用Rsoft软件深入分析光纤光栅耦合模式的三个关键技巧。通过配置场监视器观察XY截面能量分布、利用传播动画追踪动态过程,并结合模式求解器精准判定相位匹配,帮助用户超越透射谱分析,直观可视化能量从纤芯到包层的耦合与流动,从而优化器件设计。

weixin_29290963的博客 420

汽车LIN总线(3) -- 协议层:帧的类型

主要介绍LIN协议层中帧的类型,介绍中加入一点自己的理解(带下划线的是,其余是官方资料)。

晴朗luo的博客 888

卷积神经网络——Alexnet8网络结构及python实现

简单介绍Alexnet8网络原理

abc1234abcdefg的博客 1296

【YOLOv11工业级实战】15. YOLOv11海洋监测实战:珊瑚礁健康评估(水下图像增强|机器人搭载)

摘要:本文针对珊瑚礁健康评估的海洋监测需求,基于YOLOv11提出解决方案,聚焦水下色偏、悬浮物干扰、珊瑚形态复杂三大难题。引用全球珊瑚礁监测网络(GCRMN)标准,采用CoralNet数据集,通过Jaffe-McGlamery物理模型引导增强与悬浮物去除算法,在浑浊水域(能见度<5m)实现87.3%的健康珊瑚识别率,藻类误判率低至7.2%。介绍了以BlueROV2水下机器人和Jetson AGX Orin为核心的部署方案,结合水下SLAM定位技术,实现珊瑚健康的实时评估与三维覆盖率计算。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1644

深度学习之图像分类(四)--VGGNet网络结构及感受野计算

深度学习之图像分类(四)VGGNet网络结构及感受野计算 目录深度学习之图像分类(四)VGGNet网络结构及感受野计算1. 前言2. CNN感受野3. VGG网络结构4. 代码 本节学习VGGNet网络结构以及感受野计算,学习视频源于 Bilibili,部分描述参考 知乎专栏。 1. 前言 VGGNet 是 2014 年牛津大学著名研究组 VGG(Visual Geometry Group) 提出,斩获该年 ImageNet 竞赛中 Localization Task 第一名和 Classificatio

木卯_THU的博客 1709

把静态前端托管进 SAP BTP:HTML5 Application Deployer 与企业级内容部署全攻略

本文介绍了在SAP BTP Cloud Foundry环境中使用HTML5 Application Repository托管前端静态资源的工程化实践。通过HTML5 Application Deployer工具,结合MTA描述、路由配置和服务实例,实现前后端解耦和标准化部署。文章详细阐述了目录结构、关键配置文件、MTA编排以及构建部署流程,并针对大体积前端资源提供了GACD和异步上传两种解决方案。最后说明了如何与AppRouter协同工作,使部署内容可供终端用户访问。这套方法使前端更新无需重启后端,支持团队

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 154

广州吉欧电子科技有限公司安卓开发工程师岗位 - 技术核心、职责详解与面试指南

广州吉欧电子科技有限公司招聘安卓开发工程师,该岗位可接收优秀应届生。岗位职责包括:1)负责安卓应用架构设计与开发,确保稳定性和可扩展性;2)功能模块编码实现与测试;3)性能优化与用户体验提升;4)后端接口对接;5)系统版本适配;6)用户反馈处理迭代;7)特殊要求熟悉RTK高精度定位技术原理及使用。该岗位要求扎实的安卓开发技术、良好的架构设计能力、性能优化经验,以及特定领域的RTK专业知识,是一个技术全面且具有专业特色的开发岗位。

郑伟强dev的专栏 153

计算CNN感受野

AlexNet的结构图: 感受野是检测和分割任务中比较重要的指标,它是一个逐层叠加的过程,计算到最后一层的卷积特征图输出上,它的计算公式是: 其中 R F 0 RF_{0} RF0​默认是输入层,感受野为1。所以AlexNet的感受野计算为: 第一层,卷积: R F 1 = 1 + ( 11 − 1 ) × 4 = 41 RF_{1}=1+(11-1)\times 4=41 RF1​=1+(11−1)×4=41 第二层,池化: R F 2 = 41 + ( 3 − 1 ) × 2 = 45 RF_{2}=

源代码杀手的博客 341

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Python深度学习——AlexNet复现

AlexNet是一个8层的神经网络,包含5个卷积层和3个全连接层。

z0816208的博客 3092

蓝牙模块HM-10手册

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

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

pytorch实战6:手把手教你基于pytorch实现AlexNet

pytorch实战6:手把手教你基于pytorch实现AlexNet(长文)。 有数据,有训练过程

weixin_46676835的博客 7116

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

感受野计算公式

其中,是第n个feature map的感受野,是第n-1个feature map的感受野,是第n层的卷积核大小,是前n-1层步长的累乘。

DiLLVeRsE的博客 608

感受野的计算

一:回顾CNN 其中大家常见到的CNN运算原理应该就是下面这张图了 卷积本质就是kernel覆盖区域和kernel对应点乘,然后加和,最后每个单独维度的kernel的值加和,如果有bias再加上bias就得到这个filter的对应位置的feature map的值。这里揭开我之前的疑惑就是,同一个filter不同维度的filter'上的值是不同的,然后不同的filter也是不同值得。 ...

OliverkingLi的博客 1008

深度学习中感受野的计算

一直以来很奇怪感受野是怎么计算的,这里参考了两个博客总算是看懂了。 http://blog.youkuaiyun.com/skying_li/article/details/70158924 http://blog.youkuaiyun.com/kuaitoukid/article/details/46829355记住一个从底向上的递推公式:F(i,j-1) = kernel_size_j + (F(i,j)-1)*s

gyh_420的博客 3197

感受野计算

#https://blog.youkuaiyun.com/hzhj2007/article/details/79870936 #https://link.zhihu.com/?target=https%3A//medium.com/mlreview/a-guide-to-receptive-field-arithmetic-for-convolutional-neural-networks-e0f51406...

baidu_40840693的博客 369

到底应该用3*3的卷积核还是5*5的卷积核

本文做了一个二分类网络 (mnist 0,2)-con(5*5)*n-30*2-(1,0)(0,1) 用一个三层多核的网络分类mnist0和2,卷积核的数量从1到23,每个收敛标准(也就是输出值与目标值的余项或误差),收敛199次,记录平均值和迭代次数和耗时。 在文<二分类卷积核极限数量实验>中做了一个网络 (mnist 0,2)-con(3*3)*n-30*2-(1,0)(0...

staple 4479

3*3卷积核 5*5卷积核到底有多大区别

为了比较3*3卷积核 和 5*5卷积核在性能上到底有多大区别设计了两个网络去进行对比, 1.两个3*3的卷积核,2个池化层,2个全连接层 2.两个5*5的卷积核,2个池化层,2个全连接层 两个网络的收敛标准,权重的初始化方式都是一样,学习率都是0.5不变,输入的都是一张28*28的图片,通过改变全连接层的节点数观察效果:     为了方便秒速将 288*120*80*10的网络称为...

staple 3万+
上一篇: 【论问阅读】VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION
下一篇: 【论文阅读】Deep Residual Learning for Image Recognition 【ResNet】
Jie Ou
博客等级 码龄10年 176粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值