我是靠谱客的博主 愉快服饰,这篇文章主要介绍第四周作业:卷积神经网络(Part2),现在分享给大家,希望可以做个参考。

Part1: 李沐课程 卷积神经网络 部分

《动手学深度学习》之现代卷积神经网络

Part2: AI研习社 “猫狗大战” 比赛

本周在上周学习的基础,继续对猫狗大战进行代码的学习。

  1. 首先,将VGG网络替换成李沐课程里讲过的ResNet,进行训练,最终提交结果到AI研习社。
复制代码
1
2
3
4
5
6
7
8
9
10
11
class conv_net(nn.Module): def __init__(self): super(conv_net,self).__init__() self.net = nn.Sequential(b1, b2, b3, b4, b5, nn.AdaptiveAvgPool2d((1,1)), nn.Flatten(), nn.Linear(512, 2)) def forward(self,x): x = F.LogSoftmax(self.net(x), dim=1) return x

:网上资料说,LogSoftmax能够解决函数overflow和underflow,加快运算速度,提高数据稳定性。其中最重要的一点,是适用于损失函数是 NLLLoss() ,原因可以查看博客。如果使用CrossEntropyLoss()损失函数,则使用SoftMax即可。

在这里插入图片描述

最终结果:
在这里插入图片描述

  1. 其次,使用ResNet-50跟ResNet-152进行迁移学习。

本次代码,图片处理成 224 × 224 × 3 224times 224 times 3 224×224×3 的大小,同时进行归一化处理,每个batch_size设置成了64,学习率0.001。

在使用ResNet进行迁移学习时,只需要PyTorch加载预训练模型

复制代码
1
2
resnet50 = models.resnet50(pretrained=True)

大多数参数已经训练好了,需要冻结前面层的参数,因此设置 。

复制代码
1
2
requires_grad = False

最后根据自己的任务调整ResNet最后一层即可,由于猫狗大战属于二分类的任务,所以只需要将ResNet的最后一层替换为。

复制代码
1
2
nn.Linear(256, 2)

ResNet50在测试集上,1个epoch准确率能到95.8%,10个epoch能到97.75%。
在这里插入图片描述
在这里插入图片描述

提交AI研习社的结果如下:在这里插入图片描述

最后

以上就是愉快服饰最近收集整理的关于第四周作业:卷积神经网络(Part2)的全部内容,更多相关第四周作业内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部