V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
PaulKK
V2EX  ›  程序员

求教下 tensorflow 入门要什么基础吗?很难么?

  •  
  •   PaulKK · 2017-11-09 21:45:13 +08:00 · 8763 次点击
    这是一个创建于 2569 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天下午跟同事聊到这事,一个经理群里发了个消息,问问有没有会 TensorFlow 的程序员,用一个月,7.5W ,
    之前有了解过应该是 Google 的一个智能机器学习方面的框架,是不是必须具备高数算法之类的基础啊?
    40 条回复    2017-11-11 14:17:23 +08:00
    upczww
        1
    upczww  
       2017-11-09 21:54:18 +08:00 via Android
    会用 Python, 懂神经网络,机器学习
    Curtion
        2
    Curtion  
       2017-11-09 22:00:27 +08:00 via Android
    不是很了解,不过在群里看见他们聊卷积的时候我就知道我没戏了。。毕竟拉式变化我都还不会
    wdlth
        3
    wdlth  
       2017-11-09 22:01:27 +08:00
    TensorFlow 是工具,具体还得看算什么,7.5W 中 7.0W 是给算力的,0.5W 是给人力的……
    takato
        4
    takato  
       2017-11-09 22:10:55 +08:00
    7.5W- -?我觉得可以 Pass,随便写个东西,收益都大于 7.5w
    geekboy
        5
    geekboy  
       2017-11-09 22:28:20 +08:00 via Android
    @takato 随便写个什么?
    nichijou
        6
    nichijou  
       2017-11-09 22:48:48 +08:00
    @takato 给跪
    mpich
        7
    mpich  
       2017-11-09 23:13:06 +08:00
    .。。认真的吗,我有 TF 比较大的线上 NLP 经验。。。PyTorch 和 Keras 也都可以。。。。难是不难,主要是 debug 费事,它是一个静态图。。。。
    zj299792458
        8
    zj299792458  
       2017-11-10 00:18:07 +08:00
    @takato 给月入 10 万大佬跪了,还缺人么
    SingeeKing
        9
    SingeeKing  
       2017-11-10 00:41:51 +08:00
    @zj299792458 人家十万是日薪
    YvesX
        10
    YvesX  
       2017-11-10 01:53:12 +08:00 via iPhone
    机器学习这事儿,数学基础肯定是要有一些的。有数学理解才能明白自己是在干嘛,有数学积累才能想到合适的工具与方法,对数学融会贯通才能有所开创。
    dangyuluo
        11
    dangyuluo  
       2017-11-10 02:08:15 +08:00   ❤️ 3
    数学基础么,以 Tensorflow 搭神经网络为例,首先是线性代数,看一下神经网络的 BP 算法,了解一下为什么 sum 能以向量的形式展示,学一下矩阵微分,某点的梯度算法。Batch or online learning,然后自己手推(手推不是真的用手,用 Matlab 也可以)一下前几步迭代的过程。你就知道神经网络是怎么运作的了。
    卷积神经网络 CNN 的话我觉得纯属业内人士为了看似高端而采用的名词,无非是加了传统图像处理里的特征提取层,和信号里的卷积关系不大的。

    剩下的就是 Tensorflow 的语法了,什么是 session,balabala 的。
    dangyuluo
        12
    dangyuluo  
       2017-11-10 02:08:44 +08:00
    Google tensorflow playground,超好玩。
    PaulKK
        13
    PaulKK  
    OP
       2017-11-10 06:40:08 +08:00
    @Curtion 短短一句话,我竟然两个名词没听过,看来没戏了
    PaulKK
        14
    PaulKK  
    OP
       2017-11-10 06:43:18 +08:00
    @dangyuluo 如果真心想学习的话,你建议怎么入门?有好的经验可以分享下吗?
    PaulKK
        15
    PaulKK  
    OP
       2017-11-10 06:44:23 +08:00
    @takato 就要自己做产品了,记得以前很火的有个,上传照片然后显示你的年龄,好像就是用 TensorFlow 做的
    artandlol
        16
    artandlol  
       2017-11-10 07:06:26 +08:00 via iPhone
    现在大部分都用 cuda 的 gpu 去跑
    比如做图片分类或者文字图片音乐生成都很耗计算的吧
    p2pCoder
        17
    p2pCoder  
       2017-11-10 07:22:43 +08:00 via Android
    要不先买 显卡?
    coolmenu
        18
    coolmenu  
       2017-11-10 07:31:50 +08:00
    主要是矩阵分析,最优化的一些算法,但是统计学还是要扎实一些
    p2pCoder
        19
    p2pCoder  
       2017-11-10 07:34:10 +08:00 via Android
    高数 线代 概率论先复习下,线代用的最多,其次是概率论,微积分也有很多理论涉及
    kuhung
        20
    kuhung  
       2017-11-10 08:03:09 +08:00 via Android
    基础有三:高数、现代和显卡😅然后开始调 bug 吧
    bashbot
        21
    bashbot  
       2017-11-10 09:45:45 +08:00   ❤️ 2
    都不用的,哪有那么复杂。
    日常工作的标准流程是确定问题类型,然后去找相关的论文或代码,看看用什么网络结构做的,然后在 TF 里面写一个看看效果。
    TF 里面常用的算法都实现了,用起来就像搭积木。了解算法可以让你更灵活,不了解就照抄别人。
    难的是还没有好的解决方法的问题,或者没有数据集,或者没有 GPU 算力。

    每天重复调参很无聊的,毕竟理论基础不完备,很多时候也是跑出来看结果,说不清楚道理的。
    谁能说清楚,我要拜师!
    rogwan
        22
    rogwan  
       2017-11-10 10:08:48 +08:00 via Android
    @bashbot 哈哈,时间有限,来不及深究 ... 很多库不都是拿来先用了再说么,掣肘了,才会去研究内部思路,tf 这个级别的大库,比小库复杂度高多了
    takato
        23
    takato  
       2017-11-10 10:26:39 +08:00 via iPhone
    建议玩 pytorch,Tensorflow 整体上不适合研究使用,而适合“工业生产”
    而很多 AI 并不需要那么“工业”的
    PaulKK
        24
    PaulKK  
    OP
       2017-11-10 10:33:30 +08:00
    @bashbot
    @p2pCoder
    @coolmenu
    @kuhung
    @takato 谢谢指教,受益了,感觉要走的路挺多的啊
    winglight2016
        25
    winglight2016  
       2017-11-10 11:02:35 +08:00
    @bashbot 个人感觉目前 NN 都是属于玄学,基本解决思路是每个算法都试一遍,那个成功率高再细调
    geek123
        26
    geek123  
       2017-11-10 11:06:35 +08:00
    heliumhgy
        27
    heliumhgy  
       2017-11-10 11:30:03 +08:00
    @Curtion CNN 的卷积和积分变换的卷积不是一个东西。。。而且就算是积分变换的卷积,也不过只是一个算子罢了,没必要虚,就和加分乘法一样,只不过性质多一些而已
    yang2yang
        28
    yang2yang  
       2017-11-10 11:37:46 +08:00
    感觉人工智能真的是火啊,,
    graetdk
        29
    graetdk  
       2017-11-10 13:32:18 +08:00
    7 万多?我给你找一打
    PaulKK
        30
    PaulKK  
    OP
       2017-11-10 16:49:03 +08:00
    @geek123 好的,多谢!!!
    PaulKK
        31
    PaulKK  
    OP
       2017-11-10 16:49:32 +08:00
    @yang2yang 趋势所在啊
    lonelygo
        32
    lonelygo  
       2017-11-10 17:08:25 +08:00
    @PaulKK
    1、Python、C++任意一门手艺过关,最好是 Python ;英语还行,看文档能不太费时间;
    2、有一个 Nvidia GPU 的电脑,GPU 不要太差,显存大一点可以节约很多时间;
    3、跟着官方教程把几个训练都走一遍,走的过程起码熟悉了大致 TF 在干嘛,也能理解基本的超参数、过拟合等;
    4、models/research/ 下面有很多已经做出来的例子了,基本涵盖了深度学习主流的应用场景,结合自己准备上手的领域,看代码,run 起来;
    5、过程中看看“花书”等还不算非常难到看不懂的书,补基础;
    6、到这里基本算是知道门在哪里了,就看自己的方向和学习毅力了;
    wuyuchenshishabi
        33
    wuyuchenshishabi  
       2017-11-10 17:28:13 +08:00
    @takato 写个啥?自动交易的程序?
    genius2k
        34
    genius2k  
       2017-11-10 23:19:13 +08:00
    @dangyuluo 有什么推荐的书吗?
    inflationaaron
        35
    inflationaaron  
       2017-11-10 23:36:44 +08:00
    AWS 开 spot,V100 一个小时就$0.5,没有 Nvidia 显卡也能做实验。
    Ruin
        36
    Ruin  
       2017-11-11 10:02:05 +08:00
    建议先学习机器学习原理,推荐 Coursera 上的课程: https://www.coursera.org/learn/machine-learning
    NumberFairy
        37
    NumberFairy  
       2017-11-11 10:53:27 +08:00
    其实,现在入门这块的很多,经常跑些实验是最好的。先用 tensorflow 去写,然后尝试理解其中的原理。如果有条件的话,可以看看 Andrew Ng 的机器学习视频,经典中的经典,但是比较枯燥,做好心理准备。
    PaulKK
        38
    PaulKK  
    OP
       2017-11-11 11:19:19 +08:00
    @lonelygo 很详细,太感谢了!!
    crackhopper
        39
    crackhopper  
       2017-11-11 14:15:37 +08:00
    取决于 tensorflow 干啥。

    如果就是弄个能用的模型,能搞点简单的设计和调参,看看基础的神经网络就能搞了。http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial。然后把 model zoo 里面的模型都了解了解,相关论文看一看(不用都看懂,很多论文内容都是胡扯,真正有用的部分不多),跑一跑实验。

    如果是开发实现算法和部署 tensorflow,我觉得偏向于纯工程的吧。如果实现算法得会 CUDA 编程,部署什么的,其实现在有 container 也没那么麻烦。

    如果是搭建训练平台,估计还得懂一些 ASP,BSP 之类的架构,也需要深入懂 tensorflow。分布式训练的论文貌似也不多,偏实践多一些。
    crackhopper
        40
    crackhopper  
       2017-11-11 14:17:23 +08:00
    我指的是基于 ASP 和基于 BSP 梯度更新,架构上也需要进行一些支撑,比如 parameter sever 之类的。(不是说 ASP 和 BSP 是架构)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2750 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:05 · PVG 20:05 · LAX 04:05 · JFK 07:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.