- Inception的参数量较少,适合处理大规模数据,尤其是对于计算资源有限的平台
为进一步降低参数量,Inception又增加了较多的1x1卷积块进行降维,改进为Inception v1版本,Inception v1共9个上述堆叠的模块,共有22层,在最后的Inception 模块中还是用了全局平均池化。同时为避免造成网络训练时带来的梯度消失的现象,在这里引入两个辅助的分类器,在第三个和第六个的Inception模块输出后执行Softmax并计算损失,在训练时和最后的损失一并回传。
Inception v1基础结构图:
Inception v1代码:
import torch
from torch import nn
import torch.nn.functional as F
###定义一个包含卷积和ReLU池化的基础卷积块
class BasicConv2d(nn.Module):
def init(self, in_channels, out_channels, kernel_size, padding=0):
super(BasicConv2d, self).init()
self.conv = nn.Conv2d(in_channels, out_channels, kernel_size, padding=paddin