• 第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

  • 相关阅读:
    selenuim
    selenium
    selenium
    selenium
    【OSG】 报错:丢失osg100-osgDB.dll
    无法启动此程序,因为计算机中丢失 zlibd.dll【OSG】
    无法打开mfc120.lib
    jquery中的$("#id")与document.getElementById("id")的区别
    arcgis api for javascript 各个版本的SDK下载
    ajax与servlet交互(通过JSON),JAVA的arraylist传到前端的方法
  • 原文地址:https://www.cnblogs.com/Amb1tion100/p/13925030.html
Copyright © 2020-2023  润新知