V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
alwayshere
V2EX  ›  机器学习

想入门图片方面的机器学习, caffe 还是 tensorflow 好?

  •  
  •   alwayshere · 2017-04-18 16:17:09 +08:00 · 10853 次点击
    这是一个创建于 2537 天前的主题,其中的信息可能已经有所发展或是发生改变。

    机器学习完全小白,今天 centos6.7 试装了一下 caffe ,从早上到现在花了一天时间都没装好,不知道这个软件是不是设计给外星人用的,目前艰难的安装过程有点像放弃 caffe ,貌似网上 caffe 都是图片处理的例子,是不是 caffe 在图片处理这方面比 tensorflow 好些?如果二者势均力敌的话,我是不是该转投 tensorflow 的怀抱,另外,caffe有没有好的入门教程,貌似网上caffe入门教程太少了

    第 1 条附言  ·  2017-04-18 18:48:05 +08:00
    其实我只想要达到一个目的就行了:给机器训练各种老虎、大象、树木......的图片之后,最终给它一张图片,能给我返回这张图片包含:天空、树木、大象、狮子、草原这些关键词,这个难度大吗?
    32 条回复    2017-04-19 12:16:12 +08:00
    liprais
        1
    liprais  
       2017-04-18 16:21:58 +08:00
    30 楼以内就会有人来问你大学数学考几分了
    root787
        2
    root787  
       2017-04-18 16:23:48 +08:00   ❤️ 1
    大学数学考几分了?
    fengheorg
        3
    fengheorg  
       2017-04-18 16:27:23 +08:00   ❤️ 1
    caffe 是伯克利大学视觉中心搞的,在图片处理方面有历史积累,多用于研究目的吧。
    我们 caffe 与 tf 两者都用,如果新入门的话,感觉 tf 更合适,文档全,安装维护、上手开发,都比较简单。
    alwayshere
        4
    alwayshere  
    OP
       2017-04-18 16:29:29 +08:00 via iPhone
    @root787 数学刚过。。。没挂科就行了
    lekai63
        5
    lekai63  
       2017-04-18 16:33:48 +08:00
    想入门图片方面的机器学习, Pytorch 还是 tensorflow 好?
    going2think
        6
    going2think  
       2017-04-18 16:37:10 +08:00 via Android
    caffe 安装确实挺麻烦的,尤其是 cuda,cudnn 的路径设置, opencv 版本这些问题,建议请教有安装经验的同学。 caffe 的优势是运行时只需写一些简单的配置文件即可,没有太多编程的部分,当然如果要自己新加层,就得熟悉整套底层代码。但 caffe 的一个很大缺点是文档很少,没有足够的示例代码。 tensorflow 最近上升很快,不过入门也比较麻烦,但文档多,社区更活跃,长远来看,建议使用 tensorflow
    anjunecha
        7
    anjunecha  
       2017-04-18 16:42:16 +08:00 via iPhone
    不要管软件,数学这一关要硬啊
    fffflyfish
        8
    fffflyfish  
       2017-04-18 16:44:18 +08:00
    机器学习,图片方面,怎么看都是用 skimage+sklearn 吧
    weiping1992
        9
    weiping1992  
       2017-04-18 17:00:39 +08:00
    caffe 的安装可以尝试使用 docker 安装呀,很方便。而且处理性能上测试过和不用 docker 差别不大~
    alwayshere
        10
    alwayshere  
    OP
       2017-04-18 17:16:44 +08:00
    @weiping1992 对 docker 完全没研究过,请问能安装在已经搭建了 lnmp 的机器上吗?谢谢
    weiping1992
        11
    weiping1992  
       2017-04-18 17:25:13 +08:00   ❤️ 1
    @alwayshere docker 就是一个容器,你可以理解成安装了一台虚拟机,跟你本身的环境没有影响的~
    glasslion
        12
    glasslion  
       2017-04-18 17:42:57 +08:00
    新手还是用 keras , tflearn 吧, tensorflow 偏底层了
    gunshot
        13
    gunshot  
       2017-04-18 18:13:46 +08:00
    WildCat
        14
    WildCat  
       2017-04-18 18:16:00 +08:00
    如何比较 Keras, TensorLayer, TFLearn ?

    https://www.zhihu.com/question/50030898
    lonelygo
        15
    lonelygo  
       2017-04-18 18:17:33 +08:00
    非要这两个二选一,建议 TF ,当下大火,生态起来的非常快,资料和 Demo 代码也越来越多。
    Suddoo
        16
    Suddoo  
       2017-04-18 18:36:09 +08:00
    用 tensorflow 吧,资料非常多,你在 youtube 上可以搜到一堆视频教程,安装也很方便,就是一个 python 的包,虽然现在也有 java 、 c++和 go 的接口,但用的最多的还是 python 。

    keras 或者 tflearn 对底层封装度太高了, tensorflow 写 50 行代码, tfleran 可能写一半就可以了,初学者用这个会不会有种写完都不知道发生了什么的感觉?

    caffe 只能编译安装,要解决各种依赖,一不小心就编译出错,不过 arch4edu 源里有打包 caffe ,托管在清华大学开源镜像站上,但这个只适用于 arch linux.

    最后,你会发现深度学习搞到后面,没有 nvidia 的 gpu 是玩不转的,卷积神经网络的计算量太大了,用 cpu 跑根本不现实。
    LeeSeoung
        17
    LeeSeoung  
       2017-04-18 19:50:12 +08:00
    - -楼上的说的太复杂了,用 tf 吧, 找个图片训练分类例子 依葫芦画瓢就能达到你要的结果
    Suddoo
        18
    Suddoo  
       2017-04-18 20:34:39 +08:00 via Android
    @LeeSeoung 原来机器学习这么简单啊,我好笨
    nyanyh
        19
    nyanyh  
       2017-04-18 21:06:37 +08:00
    @Suddoo 入门照葫芦画瓢,能跑出效果确实很简单
    但是深入点,没事调个参什么的,神坑
    codieee
        20
    codieee  
       2017-04-18 21:26:02 +08:00
    caffe 安装确实比较麻烦,并且文档不够完善,特别是一些编程接口文档。 tensorflow 的文档就完善很多,基本上看官网教程即可。

    你需要实现的功能其实挺简单的,只需要把 imagenet 的模型拉下来,改一下全连接层就差不多了。。。
    abcdabcd987
        21
    abcdabcd987  
       2017-04-18 21:45:32 +08:00
    TensorFlow Image Classification iOS 官方都给你做好了例子了
    https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/ios_examples/camera

    其实用什么工具都不重要啊(不过我是 TensorFlow 脑残粉,人家有个那么厉害的爹(就算你不是 TensorFlow 脑残粉,我觉得 Caffe 应该是早就没人用了吧,现在还比较有戏的就是 Torch / MxNet 吧))
    题主这个要求是 Object Detection ,看看论文呗,比方说 RCNN / Fast RCNN / Faster RCNN / YOLO
    深度学习入门我觉得 Stanford CS231n 非常好,而且我觉得深度学习比起机器学习一个非常 nice 的地方就是,深度学习入门完全不需要懂得数学啊╮(╯_╰)╭
    Syllabus: http://cs231n.stanford.edu/2016/syllabus
    你要的 Object Detection 在这个 slides 里面有讲到: http://cs231n.stanford.edu/slides/2016/winter1516_lecture8.pdf
    cxbig
        22
    cxbig  
       2017-04-18 21:50:09 +08:00
    实际一点的想法是,先找到需求,再去找合适的技术。只看教程过于空虚。
    abcdabcd987
        23
    abcdabcd987  
       2017-04-18 21:52:11 +08:00
    @abcdabcd987 忘了发视频地址了
    &list=PLkt2uSq6rBVctENoVBg1TpCC7OQi31AlC
    Suddoo
        24
    Suddoo  
       2017-04-18 21:56:49 +08:00
    @nyanyh 你要写一个简单的回归问题,拟合一个曲线确实不难,但是写个 hello world 就代表会 C 语言了? 深度学习这块,各种优化器 backpropagation 好像不是那么容易就能搞明白的,还有卷积神经网络, 3 维卷积神经网络,我觉得如果不了解背后的原理写代码的时候参数完全不知道怎么填啊,有价值的东西都不是那么好学的。
    LeeSeoung
        25
    LeeSeoung  
       2017-04-19 09:05:21 +08:00   ❤️ 1
    @Suddoo 单入门,用 TF 写一个经典的卷积神经网络用来训练分类图片并非很难(或者现成的,直接拿来用,实在完全不懂的,百度谷歌大法搜教程),没必要一进来就拿各种数学公式吓倒门外汉。系统学习,从基本到深入,确实要求深厚的数学功底。但假如一个门外汉仅仅想借助深度学习来实现自己某个基础功能,通过依葫芦画瓢的方式确实可以花费较少的精力得到自己想要的结果,又可以体验到机器学习的魅力所在。
    abcdabcd987
        26
    abcdabcd987  
       2017-04-19 10:05:38 +08:00
    @LeeSeoung 说的很对 TF 官方就很多入门的例子 比如说最简单的 MNIST 手写数字识别
    https://www.tensorflow.org/get_started/mnist/beginners

    深度学习的应用几乎不需要数学知识,楼主如果不是特别钟情于机器学习的其他方法的话,完全可以先从深度学习入手
    shadowind
        27
    shadowind  
       2017-04-19 11:14:56 +08:00
    看你是要做图片分类识别,两者在这方面没什么区别,都有现有模型可以直接使用。

    个人建议是使用 tensorflow ,安装更方便些。 caffe 的安装比较麻烦,建议直接使用 docker 。
    Suddoo
        28
    Suddoo  
       2017-04-19 11:22:00 +08:00
    @LeeSeoung 入门不是很难,我前面也说了,你可以 copy paste 出结果 done 。请问,你有没有用深度学习做过一些有意思的事情?还是只是凭自己的感觉说这个东西很容易上手,百度一下 google 一下的事情。我相信如果自己动手做过一些例子,再说这个很容易就没那么有底气了。

    看看 stackoverflow 上别人对几个参数提出的疑问,看 tensorflow 的文档看不懂,所以跑到 stackoverflow 上提问: http://stackoverflow.com/questions/34642595/tensorflow-strides-argument#   
    http://stackoverflow.com/questions/34619177/what-does-tf-nn-conv2d-do-in-tensorflow
    LeeSeoung
        29
    LeeSeoung  
       2017-04-19 11:34:41 +08:00
    @Suddoo 我从头到尾都没有说过机器学习是一件很简单的事情,我所说的是深度学习的入门。就事论事,楼主的需求很简单,不是拿着机器学习去写出一个 alpha 征服所有下围棋的人,而是图片分类。我不是专业从事深度学习,但确实利用过深度学习帮助我解决过很多实际问题,我确实凭自己感觉容易上手,但是上手不等于精通,我也不需要去深究其中的数学原理,我只需要给我训练一个模型,我输入一个 input ,给我需要的 output ,就行了,至于机器学习还可以解决什么其他"有意思"的问题,是我需要关心的范畴吗?
    alwayshere
        30
    alwayshere  
    OP
       2017-04-19 12:11:10 +08:00
    @shadowind 哎 服务器 centos6.7 32 位,没法 docker
    menc
        31
    menc  
       2017-04-19 12:12:57 +08:00
    笑尿,帖子下面菜鸡互啄
    menc
        32
    menc  
       2017-04-19 12:16:12 +08:00
    @alwayshere
    选 tf , caffe 本身主要语言并非 python 的,只是有 python wrapper ,这在 dl 当前 python 当道的大局下不是个好事情。
    caffe 是伯克利开发的, tf 是 google 开发的。
    tf 把 keras 纳入了,现在基本没有 tf 的对手,不管什么类型的 task ,选 tf 都没有问题。

    先上上手想来没什么问题,不要满足于能跑模型就好了,最终做一个调包侠还是卵用没有。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2430 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 16:03 · PVG 00:03 · LAX 09:03 · JFK 12:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.