2022秋中国海洋大学《软件工程》第14小组第四次作业

2022秋中国海洋大学《软件工程》第14小组第四次作业

本博客为OUC2022秋季软件工程第三次作业

李昊

1.下载数据:

在这里插入图片描述
2.数据处理:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.创建 VGG Model
在这里插入图片描述
在这里插入图片描述
4. 修改最后一层,冻结前面层的参数
在这里插入图片描述
5. 训练并测试全连接层
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

陈子琪
前言

我们将建一个模型来完成 Kaggle 中的猫狗大战竞赛题目。在这个比赛中,有25000张标记好的猫和狗的图片用做训练,有12500张图片用做测试。首先在谷歌 Colab 上完成猫狗大战VGG模型的迁移学习,关键步骤截图,并附一些自己想法和解读。
在该代码的基础上,下载AI研习社“猫狗大战”比赛的测试集,利用fine-tune的VGG模型进行测试,按照比赛规定的格式输出,上传结果在线评测。将在线评测结果截图,将代码实现的解读发在博客。同时,分析使用哪些技术可以进一步提高分类准确率。

第一部分 在谷歌 Colab 上完成猫狗大战VGG模型的迁移学习
  1. 检查是否有GPU
    在这里插入图片描述
  2. 下载数据
    下载数据并解压到工作目录
    在这里插入图片描述
  3. 数据处理
    在这里插入图片描述
    然后使用datasets.ImageFolder加载数据,把训练集和验证集分别加载并使用transforms进行处理,最后放到一个字典里。并且获取数据集大小和训练集的类别
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 创建 VGG Model
    torchvision中集成了很多在 ImageNet (120万张训练数据) 上预训练好的通用的CNN模型,可以直接下载使用。

在本课程中,我们直接使用预训练好的 VGG 模型。同时,为了展示 VGG 模型对本数据的预测结果,还下载了 ImageNet 1000 个类的 JSON 文件。

在这部分代码中,对输入的5个图片利用VGG模型进行预测,同时,使用softmax对结果进行处理,随后展示了识别结果。可以看到,识别结果是比较非常准确的。

在这里插入图片描述

  1. 修改最后一层,冻结前面层的参数
    我们的目标是使用预训练好的模型,因此,需要把最后的 nn.Linear 层由1000类,替换为2类。为了在训练中冻结前面层的参数,需要设置 required_grad=False。这样,反向传播训练梯度时,前面层的权重就不会自动更新了。训练中,只会更新最后一层的参数。
    把原网络的分类器的第六层改为nn.Linear(4096, 2)
    在这里插入图片描述
  2. 可视化模型预测结果(主观分析)
    主观分析就是把预测的结果和相对应的测试图像输出出来看看,一般有五种方式:

随机查看一些预测正确的图片
随机查看一些预测错误的图片
预测正确,同时具有较大的pr

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值