一、基础
RetNet网络的基础是残差块。
以下是原始论文所给出的最基础的残差块。后续可以对单残差块进行处理,如加入池化,批量化归一等各种操作。
二、最基本的的ResNet18
ResNet18的基本含义是,网络的基本架构是ResNet,网络的深度是18层。但是这里的网络深度指的是网络的权重层,也就是包括池化,激活,线性层。而不包括批量化归一层,池化层。
下图就是一个ResNet18的基本网络架构,其中并未加入批量化归一和池化层。
该图是论文给出的不同ResNet网络的层次需求。
三、具体解析网络中的大小和通道的变化
上图就是简单的ResNet18的数据变化图。
我们可以看到假设输入数据的大小为3224224,也就是3个通道,每个通道的大小为224*224。
(1)7*7卷积层
首先根据论文中所说的首先经过一个卷积层。这个卷积层的卷积核的大小为77,步长为2,padding为3,输出通道为64。根据公式:
我们可以算出最后输出数据的大小为64112*112.
(2)池化层
这里通过一个最大池化层,这一层的卷积核的大小是33,步长为2,padding为1。最后输出数据的大小为6456*56
也就是说这个池化不改变数据的通道数量,而会减半数据的大小。
(3)第一个3*3卷积层
第一个卷积33卷积层,卷积核的大小为33,步长为1,padding为1。最后通过两个第一个卷积层的输出数据大小为645454,也就是这一层不改变数据的大小和通道数。
(4)第二个3*3卷积层
首先通过一个11的卷积层,并经过一个下采样。这样最后的输出数据为12828*28。也就是将输出通道翻倍,输出数据大小全部减半。
(5)第三个3*3卷积层
同样进行11卷积,和下采样。这样最后的输出为25614*14。也就是将输出通道翻倍,输出数据大小全部减半。
(6)第四个3*3卷积层
和上述同理,最后的输出为51277。也就是将输出通道翻倍,输出数据大小全部减半。
(7)平均池化层
最后输出为51211
(8)线性层