• 图像分类实战(三)-pytorch+SE-Resnet50+Adam+top1-96


    top1直达96的模型:

    pytorch框架、网络模型SE-Resnet50,优化算法Adam


    pytorch:

    pytorch官方文档,每个模块函数都有github源码链

    教程的链接 http://pytorch.org/tutorials/ 

    官方网站的连接 http://pytorch.org/ 

    pytorch的github主页https://github.com/pytorch/pytorch

    Pytorch(一个优雅的框架)https://www.jianshu.com/p/6b96cb2b414e

    Pytorch[facebook]是一个python优先的深度学习框架,是一个和tensorflow[google、工程能力强],Caffe,MXnet[amazon], theano[适合科研]一样,非常底层的框架,它的前身是torch,主要的语言接口是Lua,在如今github上前10的机器学习项目有9个都是python的时代,一直没有太多的人使用,比较小众。而pytorch如今重新归来,用python重写了整个框架,又重新回到了程序员的视线。

    在如今机器学习框架百出的时代,并没有哪个框架是最好的,每个框架都有各自的优点。我们有必要掌握不同的框架,不要说精通每个框架,至少能够看看这个框架下的代码,因为github上不断地有牛人论文复现,而他们用的框架肯定不会都是一样的,所以你至少要能够阅读别人写的在各个框架下的代码。

     

    使用keras & pytorch 的优缺点:

    [keras] 一个很高层的结构,它的后端支持theano或tensorflow,它本质上并不是一个框架,只是对框架的操作做了一个封装,你在写keras的时候其实是对其后端进行调用,相当于你还是在tensorflow或者theano上跑程序,只不过你把你的语言交给keras处理了一下变成tensorflow听得懂的语言,然后再交给tensorflow处理,这样的后果当然方便你构建网络,方便定义模型做训练,极快的构建你的想法,工程实现很强,但是这样也有一个后果,那就是细节你没有办法把控,训练过程高度封装,导致你没有办法知道里面的具体细节,以及每个参数的具体细节,使得调试和研究变得很困难。

    [pytorch] 一个底层框架,类似theano & tensorflow。它的底层优化仍然实在c上的,但是它基本所有的框架都是用python写的。


    SE-Resnet50_33epoch:

    1. SE-Resnet,ImageNet2017的冠军

    2. 网络模型,50层,训练了33个epoch。

    3. top1-96。


    Adam:

    1. 了解adam和sgd的区别

    https://blog.csdn.net/jiachen0212/article/details/80086926

    sgd是最初的一种优化算法,深度学习优化算法经历了 SGD -> SGDM -> NAG ->AdaGrad -> AdaDelta -> Adam -> Nadam 这样的发展历程。

    另外,说到优化算法,入门级必从 SGD 学起,老司机则会告诉你更好的还有 AdaGrad / AdaDelta,或者直接无脑用 Adam。可是看看学术界的最新 paper,却发现一众大神还在用着入门级的 SGD,最多加个 Momentum 或者 Nesterov,还经常会黑一下Adam

    2. 优化算法的选择和使用:

    一般先用adam,再使用sgd

    3. 总结:

    Adam收敛更快,时间成本低

    Sgd速度比较慢,但效果更好,假如时间充裕使用agd

  • 相关阅读:
    R语言修改vector、matrix、dataframe列名
    R语言获取数据框的行数
    R语言的which函数,针对没有符合条件的返回值为integer(0),之后如何判断
    ArrayList总结
    经常涉及到的技术
    今天开始写博客啦!(测试..)
    [摘转] JS 数组合并问题
    t_category
    在 MySql 的 update 语句中使用 case when else end
    JSP 取当前时间
  • 原文地址:https://www.cnblogs.com/hoanfir/p/9048897.html
Copyright © 2020-2023  润新知