0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

fast.ai发布的一个简便、好用的PyTorch库

zhKF_jqr_AI 来源:未知 作者:李倩 2018-10-10 09:20 次阅读

编者按:几天前,有人统计了历年ICLR论文录用者使用的深度学习框架,发现虽然TensorFlow还高居榜首,但PyTorch近一年来的使用数据已经翻了3倍,可以和TF比肩。这是个令人惊讶的消息,也让不少从业者开始正视这一发展趋势,筹备“双修”事宜。在下文中,论智给读者带来的是fast.ai发布的一个简便、好用的PyTorch库——对PyTorch感兴趣的读者不妨先从这个库开始试手。

随着互联网和知识传播的深度结合,现在在线课程对许多人来说已经不是新鲜事物。在深度学习领域,最受学生欢迎的MOOC课程平台有三个:Fast.ai、deeplearning.ai /Coursera和Udacity。其中,因为Jeremy Howard化繁为简、实战为上的独特授课风格,Fast.ai给人的印象一直很“接地气”:

研究如何快速、可靠地把最先进的深度学习应用于实际问题。

提供Fast.ai库,它不仅是让新手快速构建深度学习实现的工具包,也是提供最佳实践的一个强大而便捷的资源。

课程内容简洁易懂,以便尽可能多的人从研究成果和软件中收益。

国庆期间,Fast.ai发布一个新的、面向深度学习的免费开源库——fastai。这是个PyTorch库,虽然还是预览版,但它目前已经为最重要的深度学习应用程序和数据类型提供了一致的API,且相比其他深度学习库,它在准确性和速度上有显着提高,同时所需的代码大大减少。

感兴趣的开发者可以访问fastai的GitHub进行安装:github.com/fastai/fastai/

fastai库

从去年宣布开发开始,历时18个月,fastai深度学习库v1.0终于和大家见面了。在项目启动之初,开发人员就曾介绍过PyTorch作为一个平台的优势:可以利用常规python代码的灵活性和各种函数构建、训练神经网络,可以解决更广泛的问题……

现在,经过Fast.ai团队和PyTorch团队的共同努力,我们迎来了一个为计算机视觉、文本、表格数据、时间序列、协同过滤等常见深度学习应用提供单一一致界面的深度学习库。这意味着,如果你已经学会用fastai创建实用的计算机视觉(CV)模型,那你就可以用同样的方法创建自然语言处理(NLP)模型,或是软件支持的其他模型。

早期用户使用反馈

GitHub上的语义代码搜索

Fast.ai的课程是GitHub的数据科学家和高管(包括CEO在内)提高数据素养的一个重要途径,其中,Github的高级机器学习科学家Hithl Husain在过去两年中一直通过Fast.ai学习深度学习,他认为这些MOOC课程开启了Github的数据新时代,使数据科学家们更有信心解决机器学习中的最新问题。

作为fastai的第一批使用者,Hithl Husain和他的同事Ho-Hsiang Wu最近发布了一个实验版工具“语义代码搜索”,允许开发者直接通过意义而不是关键词匹配来查找代码,这意味着最佳搜索结果不一定包含你搜索的单词。在官方博客文章中,他们介绍了自己弃用Tensorflow Hub转而投向fastai的原因,称后者能更轻松地访问最先进的架构(如AWD LSTMs)和技术(如随机重启循环学习率)。

语义代码搜索

在过去的12个月里,Husain一直在体验预发布版本的fastai库。他表示:

我之所以选择fast.ai,是因为它能在保证相同性能的情况下,用模块化、高级API实现最先进的技术和创新,同时减少计算量。语义代码搜索只是冰山一角,销售、营销、反欺诈,人们能用fastai为各行各业带去革命性的变化。

生成音乐

Christine McLeavey Payne是从上一期Fast.ai深度学习课程中脱颖而出的一名学生。她的人生经历非常丰富:从旧金山交响乐团的古典钢琴师,到金融领域的HPC专家,再到斯坦福大学的神经科学和医学研究员。现在,她已经在OpenAI开启了又一段人生旅途,而在近期的OpenAI项目中,她用fastai创建了一个能生成钢琴曲和室内音乐的LSTM——Clara。

fastai是一个了不起的资源,即便是我这样刚接触深度学习的新手,也能用短短几行代码就得到fastai模型。我不完全知道这些先进技术背后的原理,但我的模型能运行,而且训练用时更短,性能也更好。

她的音乐生成模型基于上课期间她构建的一个语言模型,利用fastai库对NLP最新技术的支持,她在短短两周内就完成了这个音乐生成项目,并取得了很好的初步成果。这是fastai库实用性的一个典例,只需少量修改,开发者就能把文本分类模型改成音乐生成模型,这在实践中能节省大量时间和精力。

IBM Watson高级研究员对音乐生成器Clara的评价

艺术创作

建筑师、投资者Miguel Pérez Michaus一直在用预发布版本的fastai进行他的“Style Reversion(风格还原)”实验。所谓“风格还原”,就是把风格迁移后的图像恢复成原本的样子,如下图所示:

风格还原

他表示:“我喜欢用fastai创作,因为它能实现Keras不能实现的东西,比如生成‘不标准’的东西。”作为早期用户,他在过去12个月中目睹了fastai的更新迭代:

我很幸运地体验了fastai的A测版本,虽然只是Alpha版,但它充分展示了自己的实用性和灵活性,而且允许我这样具有领域知识但没有正式计算机科学背景的人上手操作。fastai会变得越来越好。对于深度学习的未来,我个人有一点粗浅的认识,就是我们必须要详细掌握黑盒背后的真实技术原理,在这种情况下,我认为fastai会广受欢迎。

学术研究

在NLP领域,波兰语一直是一个挑战,因为它是一种形态丰富的语言,如波兰语形容词会根据名词的数和性而变化。企业家Piotr Czapla和Marcin Kardas是深度学习咨询公司n-wave的联合创始人,基于Cutting Edge Deep Learning For Coders这门课程中显示的思路,他们用fastai开发了一种新的波兰语文本分类算法,并在波兰顶级NLP学术竞赛中获得一等奖,有关这项新研究的论文即将发布。

根据Czapla的说法,fastai库对他们的成功至关重要:

fastai适合那些没有上百台服务器的普通人,这是我很喜欢它的一点。它支持快速开发和原型设计,并融入了所有最好的深度学习实践。同时,Fast.ai课程是我开始学习深度学习的指路明灯,从上课的那天起,我才开始思考深度学习能做什么。

示例:计算机视觉领域的迁移学习

Kaggle上有一个非常受欢迎的竞赛项目:Dogs vs Cats。参赛者需要编写一个算法来分类图像是包含狗还是猫。这也是Fast.ai课程中经常涉及的一个竞赛,因为它代表了一类重要问题:基于预训练模型的迁移学习。

我们将以此为例,从所需代码量、准确性和速度三个指标上比较Keras和fastai的差异。以下是用fastai进行2-stage微调时的所有代码——不仅要编写的代码非常少,设置的参数也非常少:

data = data_from_imagefolder(Path('data/dogscats'),

ds_tfms=get_transforms(), tfms=imagenet_norm, size=224)

learn = ConvLearner(data, tvm.resnet34, metrics=accuracy)

learn.fit_one_cycle(6)

learn.unfreeze()

learn.fit_one_cycle(4, slice(1e-5,3e-4))

下表是两个深度学习库的差异对比:

Keras是现在最流行的训练神经网络的方法之一,以上数据虽然是片面的,但fastai的改进能从侧面说明Keras并不完美,它还有很大的改善空间。而无论是Keras还是其他深度学习库,要完成同样的任务,它们所需的代码量都远远超过fastai,相应的,它们的训练时间会更长,且模型性能不一定会更好。

此外,fastai在NLP任务上也有强劲表现。下表是ULMFiT论文中的一幅截图,显示了文本分类算法ULMFiT与IMDb数据集中排名靠前的算法的相对误差:

文本分类性能总结

fastai是目前唯一提供此算法的库,由于该算法是内置的,你可以直接参考上面的Dogs vs Cats代码复现论文结果。以下是训练ULMFiT语言模型的方法:

data = data_from_textcsv(LM_PATH, Tokenizer(), data_func=lm_data)

learn = RNNLearner.language_model(data, drop_mult=0.3,

pretrained_fnames=['lstm_wt103', 'itos_wt103'])

learn.freeze()

learn.fit_one_cycle(1, 1e-2, moms=(0.8,0.7))

learn.unfreeze()

learn.fit_one_cycle(10, 1e-3, moms=(0.8,0.7), pct_start=0.25)

小结

在之后的几个月中,Fast.ai会陆续发布有关这个深度学习库的学术论文和博客文章,包括开一门新课。我们会继续关注开发团队的进展,读者在玩转TensorFlow之余,也可以多多了解一下潜力无穷的PyTorch,体验不一样的“风景”。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 深度学习
    +关注

    关注

    73

    文章

    5500

    浏览量

    121111
  • pytorch
    +关注

    关注

    2

    文章

    807

    浏览量

    13198

原文标题:超越Keras:深度学习新库fastai“落户”PyTorch

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    怎样去解决在stm32上做ai的问题

    **(嵌入式AI)关于在stm32上做ai些问题,工具用的是STM32CubeIDE也可以用STM32CubeMX,用IDE更好1.pytorch中很多语句是不可以用cubeAI
    发表于 12-14 07:47

    Pytorch AI语音助手

    想做一个Pytorch AI语音助手,有没有好的思路呀?
    发表于 03-06 13:00

    阿里平头哥发布首个 RISC-V AI 软硬全栈平台

    HHB 实现了在典型网络性能比第三方工具平均提升 88%,并增加支持运行 Transformer、TensorFlow、PyTorch 等 170 余主流框架 AI 模型。 基于此,平头哥
    发表于 08-26 14:14

    Pytorch入门教程与范例

    pytorch基于 python 的深度学习pytorch 源码的抽象层次少,结构
    发表于 11-15 17:50 5404次阅读
    <b class='flag-5'>Pytorch</b>入门教程与范例

    Facebook致力AI开源PyTorch 1.0 AI框架

    Facebook近日宣布,将于近期开源PyTorch 1.0 AI框架,据悉,该框架是PyTorch与Caffe 2的结合,可以让开发者无需迁移就从研究转为生产。
    的头像 发表于 05-08 14:58 3405次阅读

    Facebook致力AI 开源PyTorch1.0 AI框架

    导读: Facebook近日宣布,将于近期开源PyTorch 1.0 AI框架,据悉,该框架是PyTorch与Caffe 2的结合,可以让开发者无需迁移就从研究转为生产。 Facebook近日宣布
    的头像 发表于 06-18 10:30 3177次阅读

    Facebook发布Pytorch 1.0和新开源的围棋AI项目

    PyTorch tracer是函数torch.jit.trace,它记录了当前代码区执行的所有本地PyTorch操作和它们之间的数据依赖关系。其实早在
    的头像 发表于 07-02 08:52 4528次阅读

    fast.ai更新了新版本的针对开发者的深度学习实践课程

    框架:fast.ai使用Pytorch作用教学工具。但是这种东西属于通百通,基本上你旦掌握了套路,接下来用TensorFlow/Keras、CNTX、MXNet或者其他深度学习
    的头像 发表于 01-28 08:59 2385次阅读
    <b class='flag-5'>fast.ai</b>更新了新版本的针对开发者的深度学习实践课程

    基于PyTorch的几何深度学习扩展,为GNN的研究和应用再添利器

    作者在论文中写道:“这是 PyTorch 的几何深度学习扩展,它利用专用的 CUDA 内核实现了高性能。它遵循
    的头像 发表于 03-11 08:49 6223次阅读

    非常好用的AD封装免费下载

    本文档的主要内容详细介绍的是非常好用的AD封装免费下载。
    发表于 04-07 08:00 0次下载
    <b class='flag-5'>一</b><b class='flag-5'>个</b>非常<b class='flag-5'>好用</b>的AD封装<b class='flag-5'>库</b>免费下载

    基于PyTorch的深度学习入门教程之使用PyTorch构建神经网络

    PyTorch的自动梯度计算 Part3:使用PyTorch构建神经网络 Part4:训练
    的头像 发表于 02-15 09:40 2097次阅读

    13定来看看的PyTorch特性!

    作者:MARCIN ZABŁOCKIMARCIN ZABŁOCKI 编译:ronghuaiyang(AI公园) 导读 PyTorch使用上的13特性,确实非常的有用。 PyTorch
    的头像 发表于 04-19 09:08 1794次阅读

    简便PyTorch教程,从不用自己配置环境开始。

    PyTorch Python 优先的深度学习框架,也是使用 GPU 和 CPU 优化的深度学习张量,能够在强大的 GPU 加速基础上实现张量和动态神经网络。 在使用
    发表于 11-10 14:33 660次阅读
    <b class='flag-5'>一</b>份<b class='flag-5'>简便</b>的<b class='flag-5'>PyTorch</b>教程,从不用自己配置环境开始。

    TorchFix:基于PyTorch的代码静态分析

    TorchFix是我们最近开发的新工具,旨在帮助PyTorch用户维护健康的代码并遵循PyTorch的最佳实践。首先,我想要展示
    的头像 发表于 12-18 15:20 1075次阅读

    pytorch怎么在pycharm中运行

    部分:PyTorch和PyCharm的安装 1.1 安装PyTorch PyTorch
    的头像 发表于 08-01 16:22 1373次阅读