在今天的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的话,速度就得不到保障了。
5行代码就够了
Howard说,团队做过的研究,都嵌在这个框架里了。所以,大家可以充分享受这些成果。
他用猫狗识别的来举栗,那是迁移学习的经典案例,也是fast.ai的课程里最受欢迎的章节之一。
在新的库诞生之前,这样的问题大多是在TensorFlow上面用Keras解决的。如今,Keras依然是fast.ai团队仰慕的对象。
所以,团队也想在猫狗大战里感受一下,自家的框架和Keras对比起来,竞争力究竟如何。
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-3
本文作者:关注前沿科技