经典CNN算法解析实战
文章平均质量分 93
lihuhelihu
这个作者很懒,什么都没留下…
展开
-
第J9周:Inception v3算法实战与解析
2.使用Factorized Convolutions:Inception v3采用了Factorized Convolutions(分解卷积),将较大的卷积核分解为多个较小的卷积核。例如,一个 3×3 的卷积等价于首先执行一个 1×3 的卷积再执行一个 3×1 的卷积。尽管这有点违反直觉,但一个 5×5 的卷积在计算成本上是一个 3×3 卷积的 2.78 倍。1.更深的网络结构:Inception v3比之前的Inception网络结构更深,包含了48层卷积层。此处如果 n=3,则与上一张图像一致。原创 2024-09-19 18:00:00 · 1013 阅读 · 0 评论 -
第J8周:Inception v1算法实战与解析
其中,卷积层的参数为5x5x128x256+256。最后Inception Module基本由 1 * 1卷积,3 * 3卷积,5 * 5卷积,3 * 3最大池化四个基本单元组成,对四个基本单元运算结果进行通道上组合,不同大小的卷积核赋予不同大小的感受野,从而提取到图像不同尺度的信息,进行融合,得到图像更好的表征,就是Inception Module的核心思想。Inception Module是Inception V1的核心组成单元,提出了卷积层的并行结构,实现了在同一层就可以提取不同的特征,如下图a。原创 2024-09-18 20:15:00 · 655 阅读 · 0 评论 -
第J7周:对于ResNeXt-50算法的思考
(2)2个block(conv_shortcut=False):conv_shortcut=False,结合代码可知,在进行Add操作时,是直接对输入的x与后续的[(Conv+BN+ReLU)+ 分组卷积 + (Conv+BN) ]的一系列操作后得出的特征图(filters=2。(1)1个block(conv_shortcut=True):conv_shortcut=True,结合代码可知,在进行Add操作时,是将进行了Conv+BN操作的特征图(filters=2。需要解决的疑问:这个代码是否有错?原创 2024-09-17 11:30:00 · 824 阅读 · 0 评论 -
第J6周:ResNeXt-50实战解析
在ResNet中,输入的具有256个通道的特征经过1×1卷积压缩4倍到64个通道,之后3×3的卷积核用于处理特征,经1×1卷积扩大通道数与原特征残差连接后输出。ResNeXt也是相同的处理策略,但在ResNeXt中,输入的具有256个通道的特征被分为32个组,每组被压缩64倍到4个通道后进行处理。ResNeXt是ResNet的升级版,在ResNet的基础上,引入了cardinality的概念,类似于ResNet,ResNeXt也有ResNeXt-50,ResNeXt-101的版本。4.1. 编写训练函数。原创 2024-09-21 20:00:00 · 950 阅读 · 0 评论 -
第J5周:DenseNet+SE-Net实战
最后一栏 SE-module 是指嵌入了 SE 模块的结果,它的训练参数和第二栏 Our re-implementation 一致。从上表可以看出,SE-ResNets 在各种深度上都远远超过了其对应的没有SE的结构版本的精度,这说明无论网络的深度如何,SE模块都能够给网络带来性能上的增益。上图展示了ResNet-50 和 ResNet-152 以及它们对应的嵌入SE模块的网络在ImageNet上的训练过程,可以明显地看出加入了SE模块的网络收敛到更低的错误率上。2.1.设置gpu/cpu。原创 2024-09-20 16:15:00 · 765 阅读 · 0 评论 -
第J4周:ResNet与DenseNet结合探索-采用DPN98
上图1是ResNet, 图2 是DenseNet,变粗的部分就是新的网络层的特征,不断与之前的特征concate,注意有多个1x1卷积核。同一个颜色的卷积核代表的是同一个尺度的1x1卷积核,比如,绿色的1x1卷积核代表了是指对第一层的特征进行1x1卷积。回忆在核心论点一中,提到concate是可以等价成为相加的,所以在图2中绿色1x1卷积核、桔色1x1卷积核分别对第一层特征、新特征处理后,再concate进行后面的操作,也就等价于图3中右边通道中二者相加。图1 ResNet50V2。原作者:K同学啊**原创 2024-06-14 19:02:48 · 371 阅读 · 0 评论 -
第J3-1周:DenseNet算法 实现乳腺癌识别
在这段代码中, self.add_module(‘name’,module)被用于将不同的模块添加到 DenseLayer 类中。这些模块可以是任何继承自 nn.Modu1e的子类,例如批标准化层(nn.BatchNorm2d)、ReLU 活函数(nn.ReLu)、卷积层(nn.conv2d)等。这样,在类的其他方法中,可以通过引用这些属性来访问和操作这些模块,例如在forward()方。总之,self.add_module()函数的作用是将子模块添加到类中,并为这些模块提供属性名以便后续引用和操作。原创 2024-06-04 17:12:35 · 989 阅读 · 0 评论 -
第J3周:DenseNet算法实战与解析
为了解决这个问题,DenseNet网络中使用DenseBlock+Transition的结构,其中DenseBlock是包含很多层的模块,每个层的特征图大小相同,层与层之间采用密集连接方式。今天我们要介绍的是DenseNet模型,它的基本思路与ResNet一致,但是它建立的是前面所有层与后面层的密集连接(dense connection),它的名称也是由此而来。相比ResNet,DenseNet提出了一个更激进的密集连接机制:即互相连接所有的层,具体来说就是每个层都会接受其前面所有层作为其额外的输入。原创 2024-05-29 17:46:19 · 847 阅读 · 0 评论 -
第J2周:ResNet50V2算法实战与解析
(a)original 表示原始的 ResNet 的残差结构,(b)proposed 表示新的 ResNet 的残差结构。从图中结果我们可以看出,(b)proposed 的测试集错误率明显更低一些,达到了 4.92%的错误率,(a)original 的测试集错误率是 7.61%。用不同 shortcut 结构的 ResNet-110 在CIFAR-10 数据集上做测试,发现最原始的(a)original 结构是最好的,也就是identity mapping 恒等映射是最好的。#构建ResNet50V2。原创 2024-05-17 17:34:07 · 759 阅读 · 0 评论 -
第J1周:ResNet-50算法实战与解析
图2左边的单元为ResNet两层的残差单元,两层的残差单元包含两个相同输出的通道数的 3x3 卷积,只是用于较浅的ResNet网络,对较深的网络主要使用三层的残差单元。证明过程也很简单:假设在一种网络A的后面添加几层形成新的网络B,如果增加的层级只是对A的输出做了个恒等映射(identity mapping),即A的输出经过新增的层级变成B的输出后没有发生变化,这样网络A和网络B的错误率就是相等的,也就证明了加深后的网络不会比加深前的网络效果差。简单来讲就是网络太深了,会导致模型训练难以收敛。原创 2024-05-10 19:18:14 · 1093 阅读 · 0 评论