第四十二周学习笔记

    xiaoxiao2022-11-22  12

    第四十二周学习笔记

    论文阅读概述

    RCNN 两个insight:proposal+CNN,ImageNet预训练模型+fine-tuning三个模块:proposal,CNN,SVM四个步骤:提出proposal,CNN提取特征,SVM分类,bounding box回归精炼box Fast RCNN 解决RCNN慢、multi-stage、存储消耗多的问题对整张图片求特征图后,通过proposal和feature map的位置映射来得到proposal 特征,只需一次计算feature map,时间开销小用两个网络同时得到预测类别结果和边框,将multi-stage变为multi-taskRoI pooling,将不同大小的RoI区域映射到相同维数的特征 Faster RCNN 将proposal的过程也融合到网络中,加快了proposal的速度RPN+detector,RPN使用多个Anchor来找到不同scale和sapect的proposalRPN和detector共享特征 Single Image Haze Removal Using Dark Channel Prior 暗通道先验去雾算法,原理基于一个统计结果,自然图像的每个小patch中几乎都有一个像素的某个通道的intensity接近0,而雾因为引入了大气光,导致这个值的增加,只要在每个patch中减去这个值即可 Semi-Supervised Classification with Graph Convolutional Networks 提出了图卷积网络,可以以图为输出,逐层进行特征抽象表示

    LeNet-5 for CIFAR10

    本周偷懒写LeNet-5,但是看了论文发现,LeNet-5本身网络结构设计上与现在通用的一些层结构由很大差别,比如

    使用Sigmoid激活函数(这个还好)卷积之后的下采样时,逐个特征图地对池化感受野中的元素求和,再进行一次线性变换,然后在进行非线性变换,这与当前的CONV+RELU+POOL的做法顺序有区别,且池化操作也有区别天秀的CONV操作,玄学选择特征图池化径向基输出层卷积kernel size 都是5

    值得注意的是,LeNet中的5×5×16到120的过程实际上是卷积操作,而非全连接操作

    所以我放弃写原生的LeNet-5,采用现在的网络设计方式来写LeNet-5

    class NewLeNet(nn.Module): def __init__(self, num_classes=10): super(NewLeNet, self).__init__() self.conv1 = nn.Conv2d(3, 6, 5) self.conv2 = nn.Conv2d(6, 16, 5) self.conv3 = nn.Conv2d(16, 120, 5) self.fc1 = nn.Linear(120, 84) self.fc2 = nn.Linear(84, num_classes) def forward(self, x): x = F.max_pool2d(F.relu(self.conv1(x)), 2) x = F.max_pool2d(F.relu(self.conv2(x)), 2) x = F.relu(self.conv3(x)) x = x.view((x.size(0), -1)) x = F.relu(self.fc1(x)) x = self.fc2(x) return x

    真是so easy,在cifar 10上训练结果在测试集上acc达到75.06%,如图所示 lr=0.01,momentum=0.9,在32k和48k时分别除以10,可见ResNet的训练方法还是不错的~

    本周小结

    论文 5 + 5,完成5Faegen的代码跑通了

    下周计划

    论文 5 + 5Faegen bug free健身房开了!去锻炼身体!
    最新回复(0)