前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >5行代码秀碾压,比Keras还好用的fastai来了,尝鲜PyTorch 1.0必备伴侣

5行代码秀碾压,比Keras还好用的fastai来了,尝鲜PyTorch 1.0必备伴侣

作者头像
量子位
发布2019-04-24 18:00:26
8950
发布2019-04-24 18:00:26
举报
文章被收录于专栏:量子位量子位
休假栗 问耕 假装发自 凹非寺 量子位 出品 | 公众号 QbitAI

PyTorch 1.0来了~

在今天的F8(Facebook开发者大会)上,深度学习框架PyTorch 1.0 rc1版如期发布。然而在海外的论坛上,另一个开源库的关注度不遑多让。

它就是fastai 1.0

简单来说,fastai只要一个API,就包含了所有常见的深度学习应用。堪称实用版的“要你命3000”。而且许多性能指标,已经超越了Keras。

比如,5行代码完成Keras用31行才能解决的事情。同时,误差表现也更好。难怪在Hacker News上,fastai的关注度比PyTorch 1.0还高……

而且fastai基于PyTorch 1.0框架,也被Facebook官方重点宣传。这两个全新的框架同时下载配合使用,疗效更佳。

这个悠长假期,你不试试么?

fastai 1.0

fastai的出品方是fast.ai,机构规模不大,但因为提供大量免费机器学习课程,而名声在外。还有,fast.ai也是美国军方的合作伙伴,研究如何加速人工智能技术的发展。

只要一个API

据创始人Jeremy Howard介绍,fastai只要一个API,就包含了几乎所有常见的深度学习应用。

用从前的库,都需要给不同的应用调取相应的API,fastai是第一个用单个API就能支持各类应用的库。

这样一来,用户就不需要记得五花八门的API调用方法了。用fastai搭建过视觉模型之后,可以用同一个的API再去搭建自然语言处理模型了。

在1.0发布之前,fastai最初的版本在9月上线,一波早期用户已经先行探索过这个年幼的库,并有多位大佬表示好用:

这是Kaggle资深玩家Miguel Pérez Michaus,用fastai做的风格迁移成果。

作为一个“没有正式计算机背景”的程序猿,他毫不吝惜自己对fastai灵活性的赞美:连我都能用。

GitHub的机器学习科学家Hamel Husain也用这个库,做了一个GitHub语义代码的搜索工具,还是半路从TensorFlow Hub换成fastai的。现在,搜索工具已经上线了:

https://experiments.github.com/semantic-code-search

还有,OpenAI小姐姐Christine Payne,最近做的一个项目叫Clara,是用神经网络生成音乐的AI。小姐姐说,如果没有fastai的话,速度就得不到保障了。

听一下Clara的作品,很美:

更多音乐:

http://christinemcleavey.com/clara-a-neural-net-music-generator/

5行代码就够了

Howard说,团队做过的研究,都嵌在这个框架里了。所以,大家可以充分享受这些成果。

他用猫狗识别的来举栗,那是迁移学习的经典案例,也是fast.ai的课程里最受欢迎的章节之一。

在新的库诞生之前,这样的问题大多是在TensorFlow上面用Keras解决的。如今,Keras依然是fast.ai团队仰慕的对象。

所以,团队也想在猫狗大战里感受一下,自家的框架和Keras对比起来,竞争力究竟如何。

代码语言:javascript
复制
1data = data_from_imagefolder(Path('data/dogscats'),
2    ds_tfms=get_transforms(), tfms=imagenet_norm, size=224)
3learn = ConvLearner(data, tvm.resnet34, metrics=accuracy)
4learn.fit_one_cycle(6)
5learn.unfreeze()
6learn.fit_one_cycle(4, slice(1e-5,3e-4))

这5行代码,就是在fastai框架里做ResNet50的two-stage微调,需要的全部操作了。

而同样的任务,Keras要用31行才能完成。

除了代码行数,fastai在两个阶段的误差也比Keras更小

虽然成绩表十分骄人,Howard依然三番五次地表示,Keras始终是大神,整个团队都是Keras的粉丝。

先去用用看?

现在,fastai框架已经在GitHub上线了。下载请至:

https://github.com/fastai/fastai

也可以在谷歌云平台上用啊。先打开这个页面:

https://cloud.google.com/deep-learning-vm/docs/images

然后,给你的示例安装配置,再把fastai部署在PyTorch 1.0上。有了。

如果要在GPU驱动的Jupyter Notebook上运行fastai,也没问题:

https://salamander.ai/

除此之外,还有一个好消息。不久就会支持AWS了,可以期待一下。

PyTorch 1.0

接下来,说说也是最新发布的PyTorch 1.0。

去年1月,PyTorch首次发布,目前下载已经超过100万次。今年五月,Facebook副总裁贾扬清和CTO Mike Schroepfer透露,PyTorch 1.0即将推出。当时,Caffe2代码还并入了PyTorch。

PyTorch 1.0 rc1版传送门:

https://github.com/pytorch/pytorch/releases

Facebook在官方博客中,还对PyTorch 1.0 rc1版进行了详细的介绍。

新框架有了一个全新的混合模式前端,支持tracing和scripting模型,从eager模式进入graph模式,从而弥合研发与生产部署之间的差距;一个经过改进的torch.distributed库,能让Python和C++环境中的训练更快。

以及这个版本正式融合了PyTorch框架的灵活性与Caffe2的生产力。贾扬清此前给的总结就是:Caffe2 + PyTorch = PyTorch 1.0。

三大新功能

torch.jit

JIT是一组编译工具,用于弥合PyTorch研究和生产之前的差距。其中包含一种名为Torch Script的语言(仍然使用Python编写),还有两种方法可以使现有的代码与JIT兼容。

Torch Script代码可以积极优化,并且在序列化之后可以在新的C++ API中使用,这就完全不依赖Python了。

c10d库

torch.distributed软件包以及torch.nn.parallel.DistributedDataParallel模块,由新的c10d库提供支持。主要亮点包括:

  • c10d是性能来驱动的,并且对所有后端完全异步操作
  • 分布式数据并行性能显著改进
  • 在Gloomy后端增加send和recv支持

C++前端API

这个前端API被明确标记为还不稳定(Unstable)。官方预计将在未来一两个月稳定下来,同时不排除发生其中某些部分发生重大变化。

这个C++前端是一个纯C++接口后端是PyTorch,与此前的Python前后端体系结构一样。这个API只在实现高性能、低延迟和裸机C++应用程序的研究。

以下是两种语言前端的简单比较。

其他

生态系统

Google云、亚马逊AWS、微软Azure Machine Learning等国外的流行云服务,现在与PyTorch更加兼容。

Arm、Nvidia、高通、英特尔、IBM等厂商的,也增加了对PyTorch 1.0的支持。确保PyTorch可以在数据中心、边缘硬件等不同领域得到应用。

根据官方消息,目前Google和Facebook正在合作,为PyTorch用户构建TPU。Google云的Deep Learning VM服务,也将提供PyTorch 1.0映像。

教育培训

Facebook透露正与Udacity合作,为开发者提供免费的深度学习入门课程,这些课程都基于PyTorch。此外,Facebook还将赞助300名开发者,完成Udacity的中级课程,这些课程也已经改为基于PyTorch 1.0。

当然,fast.ai的新课程和深度学习库,也是PyTorch在教育领域的合作成果。

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

本文分享自 量子位 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • fastai 1.0
    • 只要一个API
      • 先去用用看?
      • PyTorch 1.0
        • 三大新功能
          • 其他
          相关产品与服务
          NLP 服务
          NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档