前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pytorch神器(10)

Pytorch神器(10)

作者头像
刀刀老高
发布2018-07-24 15:26:47
3900
发布2018-07-24 15:26:47
举报
文章被收录于专栏:奇点大数据

今天聊一聊IT工程师如何转型深度学习工程师的话题。其实这个话题已经不是第一次聊了,也是很多IT工程师朋友比较关心的。毕竟在新一代的IT工作环境中,AI思维几乎是必须的素养了。

人工智能——作为高质量自动化的代名词,其实自从工业革命开始就一直在进化的路上。当计算机发明之后,人们又不断让机器自动化工作的程度提高,加快速度,降低错误率。在数据爆炸的时代,一个人单纯靠传统方式来做coding的效率已经渐渐赶不上人工智能来做“coding”的方式了。

虽然人工智能的“coding”看上去非常不像coding,但是不能否认的是,用它训练出来的各种模型效率和正确率已经超过人类纯手工编程来实现同样应用功能的水平了。就看看MNIST手写数字识别的这个需求就知道,用人类手写规则匹配将会耗费多少脑细胞和成本,而用深度学习呢?几乎是秒得。那么在其它领域的差距可想而知。

刚刚说了这么多就是在说IT工程师为什么有必要学习人工智能,至少要具备相关的思维方式和素养了——就是利用人工智能的思维提高应用的生产效率,多快好省建设社会主义。那么作为一个拥有一定编程能力的工程师怎么转型才会比较快呢?我想聊聊这么几点吧。

(1)编程能力

编程能力对于一个合格的工程师来说是理所应当的一种能力。至少你不应该让编程能力变成束缚你思维和实现的羁绊。

Python语言作为一种友好的接口,用来训练模型是非常合适的,应该掌握并熟练应用。

其次如果你希望极大程度地压榨服务器资源或者移动端资源,最好还会一门C或者C++、JAVA什么的,用来单纯实现网络的正向转播过程。不过随着计算机计算能力的提升,这种需求的紧迫性应该是远没有熟练掌握Python高的。

(2)概念入门

我这里说的工程师其实都是针对本科生,或者大专生说的。其实不建议大家去看那些所谓的经典类书籍——那些又重又厚的所谓宝典,那里面有大量的公式和翻译腔的讲述信息,阅读非常不友好。

对于概念入门来说,我建议就是找一些非常口语化的资料,比如一些口碑比较好的博文、公开课等等。白话风的书籍也是不错的选择,这些书是比较良心的,从不卖弄概念和高深的数学公式,力求把内容简化和形象化。这里做个小广告:

《白话大数据与机器学习》

《白话深度学习与Tensorflow》

应该是在概念入门方面比较友好的阅读材料了。

此外,喜欢以开门见山的程序作为入门材料的话,也推荐周莫凡先生的github地址

http://morvanzhou.github.io

(3)框架

不论你学习Tensorflow、Pytorch、MXNet还是什么别的框架,我觉得都没关系,看你个人喜欢,我这里主要说我比较喜欢的两个框架吧。

Tensorflow

优点:社区丰富、网上代码示例多;

这就意味着你可以比较轻易地在网上找到基于Tensorflow实现的工程代码,提问的时候大概率会有人跟你碰到过相似的问题,你在成功的路上不容易孤单哟。

缺点:接口在升级的过程中规划不好,通常书写方法繁多且旧代码容易被新版本抛弃。总之,代码书写不大友好,调试的成本会相对比较高。

Pytorch

优点:社区丰富、网上代码示例多,不过这是相对的,比Tensorflow还是要少——作为一个年轻框架,我们还是要宽容它一点。代码阅读比较友好,打印Tensor也比Tensorflow方便。总之,友好是它的标签。

缺点:代码示例比Tensorflow少,而且平台支持和迁移的能力比Tensorflow也要弱一些,至少Tensorflow还有个Lite版可以上移动平台。

不过我们还是要坚信Pytorch会越来越好的,毕竟Caffe并入Pytorch这是个利好的消息。

众多框架经过群雄逐鹿,现在死走逃亡剩下的基本都是有其可取之处的。Tensorflow和Pytorch我们二选一就可以了。

(4)渐进式学习

对于学习来说,我建议是在你所做的领域里先多搜集一下信息,这样会有一些针对性。

对于NLP领域,CV领域研究的内容是不一样的,而且大部分知识没办法做迁移。

首先,你需要在你所在的领域中先调查研究一下看有哪些重要的概念,重要的论文,重要目的模型。

其次,你可以尝试在Github上找一下代码实现。着重找那些与你熟悉的框架一致的,近期更新的,Stars比较多的。这样的代码质量比较高,你学习起来成本相对要低一些。

在项目中逐步学习网络层的搭建,损失函数的书写,训练的过程,特殊的Trick等等,以及学习不同包和方法的用法。其实这种在战争中学会战争的方法很好用,坚持下去,用不了几个项目就已经能把你磨炼成这个领域的高手了。当然了,要注意总结。

好,关于入门我就聊这么多吧。希望大家学习顺利。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 奇点 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档