第4次作业-CNN实战

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

在进行了n次尝试之后,参考了大佬的【傻瓜式博客教学】(感激不尽),终于可以了!

【问题】:前面很多次都是运行不到一半就进行不下去了,这种情况是为什么呢?👇

Byj3qK.png

【关于文件】

colab里可以通过Linux的一些命令进行操作:

ByvWkD.png

unzip test.zip 会默认将文件解压到当前目录,加-d选项解压到指定目录。

colab中图片是这么排序的,可以提取标号,与分类结果一同输出,再进行排序

B6CtmR.png

【步骤】:

1.下载数据

B6Pc2F.png

2.数据预处理

datasets 是 torchvision 中的一个包,可以用做加载图像数据,torchvision 支持对输入数据进行一些复杂的预处理/变换 。

B6ipPf.png

3.创建VGG Model

torchvision中集成了很多在 ImageNet (120万张训练数据) 上预训练好的通用的CNN模型。

B6iFMQ.png

4.修改最后一层,冻结前面层的参数

目标是使用预训练好的模型,因此,需要把最后的 nn.Linear 层由1000类,替换为2类。为了在训练中冻结前面层的参数,需要设置 required_grad=False。这样,反向传播训练梯度时,前面层的权重就不会自动更新了。训练中,只会更新最后一层的参数。

B6i6ot.png

5.训练并测试全连接层

第1步,创建损失函数和优化器;第2步,训练模型;第3步,测试模型。

B6iqYV.png

B6FPFx.png

【优化尝试】

使用Adam优化器比SGD效果好👇

Byj4s0.png

Byvnw8.png

通过尝试,增大epoch,减小学习率进行优化👇

B69xOA.png

B6Cnwq.png

posted @ 2020-11-04 11:33  DarkStarzyy  阅读(114)  评论(0编辑  收藏  举报
Document