第四次作业:猫狗大战挑战赛

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

一、猫狗大战VGG模型的迁移学习

关键步骤:

 这个是 pytorch 支持的将数据发送到 GPU,之后的运算都在 GPU 上进行。然后用定义好的 VGG 模型训练输入得到输出。

 将 VGG 输出的结果转化为对每一类的预测概率,把结果输入到 Softmax 函数,即将结果进行归一化处理,维度是1,每个结果的范围都在 [0, 1] 中,和为1。

屏蔽预训练模型的权重,只训练最后一层的全连接的权重。最后一层的添加,是通过

model_vgg_new.classifier._modules['6'] = nn.Linear(4096, 2)

来实现的,LogSoftmax 即对 Softmax 的结果取 log。

采用随机梯度下降法来训练模型的好处是每个训练步骤要快得多,也更加随机,可以帮助算法跳出局部最小值。

二、利用fine-tune的VGG模型进行测试

附上一些重要的步骤

1、下载数据并解压数据集

# 下载并解压当前目录
! wget https://static.leiphone.com/cat_dog.rar
! unrar x cat_dog.rar

2、数据处理

normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])

vgg_format = transforms.Compose([
                transforms.CenterCrop(224),
                transforms.ToTensor(),
                normalize,
            ])

data_dir = './cat_dog'

dsets = {x: datasets.ImageFolder(os.path.join(data_dir, x), vgg_format)
         for x in ['train','val', 'test']}

dset_sizes = {x: len(dsets[x]) for x in ['train', 'val', 'test']}
dset_classes = dsets['train'].classes

这里注意通过上面方式解压好的代码不能直接用,需要新建一个文件来存放图片,否则会报错,如下:

 3、利用训练好的模型进行测试:

 4、保存在 csv 文件中并提交

 

 三、心得体会

通过这次实验,我们小组的同学都体会到了训练模型、运用模型的整个过程,途中出现了很多bug,集着小组的力量一一解决,十分有意义的一次实验!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值