第4次作业-CNN实战
第四次作业:猫狗大战挑战赛
在进行了n次尝试之后,参考了大佬的【傻瓜式博客教学】(感激不尽),终于可以了!
【问题】:前面很多次都是运行不到一半就进行不下去了,这种情况是为什么呢?👇
【关于文件】
colab里可以通过Linux的一些命令进行操作:
unzip test.zip 会默认将文件解压到当前目录,加-d选项解压到指定目录。
colab中图片是这么排序的,可以提取标号,与分类结果一同输出,再进行排序
【步骤】:
1.下载数据
2.数据预处理
datasets 是 torchvision 中的一个包,可以用做加载图像数据,torchvision 支持对输入数据进行一些复杂的预处理/变换 。
3.创建VGG Model
torchvision中集成了很多在 ImageNet (120万张训练数据) 上预训练好的通用的CNN模型。
4.修改最后一层,冻结前面层的参数
目标是使用预训练好的模型,因此,需要把最后的 nn.Linear 层由1000类,替换为2类。为了在训练中冻结前面层的参数,需要设置 required_grad=False。这样,反向传播训练梯度时,前面层的权重就不会自动更新了。训练中,只会更新最后一层的参数。
5.训练并测试全连接层
第1步,创建损失函数和优化器;第2步,训练模型;第3步,测试模型。
【优化尝试】
使用Adam优化器比SGD效果好👇
通过尝试,增大epoch,减小学习率进行优化👇