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

概述

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

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

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

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

  1. 首先,将VGG网络替换成李沐课程里讲过的ResNet,进行训练,最终提交结果到AI研习社。
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加载预训练模型

resnet50 = models.resnet50(pretrained=True)

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

requires_grad = False

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

 nn.Linear(256, 2)

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

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

最后

以上就是愉快服饰为你收集整理的第四周作业:卷积神经网络(Part2)的全部内容,希望文章能够帮你解决第四周作业:卷积神经网络(Part2)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部