查看原文
其他

TensorLayer2.0发布 | 开放的深度学习开发平台

TensorLayer 北京大学前沿计算研究中心 2020-09-16

编者按


对于开发者而言,深度学习系统的复杂度在不断的增加。从搭建神经网络模型,到动态模型,再到复杂的训练流程和任务管理,这使得通过轻量级工具全面管理深度学习开发的需求也越发强大。 TensorLayer 开源社区正是希望打造一个不隶属于任何企业的深度学习开发框架


近日,TensorLayer人工智能开源社区发布了TensorLayer 框架的2.0版本,由即将加入北京大学前沿计算研究中心的董豪博士主持开发,以支持动态训练模式和动/静态神经网络模型切换,以及TensorFlow2.0。本次2.0的大更新主要贡献来自北京大学和帝国理工学院的核心团队,包括吴润迪(@ChrisWu1997)、张敬卿(@JingqingZ)、吴睿海(@warshallrho)、董豪(@zsdonghao)。新的设计在支持动态训练模式的同时,大大简化了自定义神经网络的实现,利于协同扩展和维护



TensorLayer的前世今生

深度学习开发缺乏透明、灵活和易定制的框架,同时公司主导开发的框架往往对支持最新的神经网络有滞后性,并对其他公司的工作有排斥性,不利于研究者使用。这催生了独立开发不隶属于任何组织的深度学习开源框架,以分享最新的神经网络设计、数据处理工具、训练函数和代码样例等,支持开发日益复杂的深度神经网络。2016年,董豪在帝国理工读博期间在导师郭毅可院士的领导和支持下,在Github上开源了第一个版本的TensorLayer,并于2017年获得ACM MM最佳开源软件奖,目前已获得17万次下载,成为主流框架之一。TensorLayer提供了易用性、拓展性和兼容性并存的高层设计抽象,便于广大研究人员和工程师从事开发和前沿研究工作,大大拉近了工业界和学术界的距离。


ACM MM最佳开源软件奖证书

Akara Supratak代表TensorLayer团队领奖


深度学习推动了计算机视觉、自然语言处理和多媒体等领域的发展,然而开发一个深度学习算法通常十分困难,因为它涉及到构建神经网络架构、训练流程、数据处理、以及生命周期管理等。TensorLayer是一个通用型Python库,旨在帮助研究者和工程师高效地开发深度学习算法。它为神经网络搭建、开发流程、以及生命周期管理提供了丰富的抽象方法,在提高效率的同时,还保留性能和可拓展性。TensorLayer开源三年来,已经在学术界和工业界得到了很好的验证,帮助国内外研究人员和产品工程师实现各类深度学习功能。


2.0版本主要在北京大学前沿计算研究中心的支持下完成。



TensorLayer由底层到上层可以分为三大模块:

  1. 神经网络模块:层是神经网络的核心单元,TensorLayer提供了大量工业界和学术界需要的参考层实现(比如 CNN、RNN、BinaryNet等),提供类似Pytorch的“动态”声明方式,也提供类似Lasagne的堆叠式“静态”声明方法来建立模型,并支持动态图和静态图两种训练模式,以支持不同的开发需求。

  2. 工作流模块:神经网络只是深度学习系统中的基础部分,为了支持整个深度学习开发流程,TensorLayer提供了大量数据处理和训练流程所需的工具。此外,为了管理整个深度学习开发,以支持项目的存储、比较、溯源等,TensorLayer提供了生命周期管理功能,包括模型、数据和训练流程的管理,以及支持任务分发以实现多任务并行执行,以加快训练(比如 超参数选取)和自动产品化部署。

  3. 应用模块:为了促进产业界和学术界的交流,TensorLayer社区提供了大量应用和预训练模型,包括医疗图像分析、图像增强、人体姿态估计、文本生成、风格迁移、各类增强学习算法,等等。


董豪在国际研讨会上介绍 TensorLayer 的工作


此外,与 Keras 和 Pytorch 相比,TensorLayer 提高了神经网络模块的抽象化设计,同时实现了降低使用现有层和开发新层的工作量,既不需要开发者编写函数以计算层的输出尺寸(Keras需要),也不需要在使用层时输入上一层的输出尺寸(Pytorch需要)。这些设计大大方便了框架的拓展。更重要的是TensorLayer提供了整套端到端的工作流,包括数据预处理、训练、服务模块、数据库管理,以及任务自动发放和收集,这些都是开发者构建整个系统的关键。开发流程采用小步快跑的开发模式,能够快速地支持最新的神经网络,极大地方便了广大开发者的开发贡献。得利于众多一线科研人员的参与,截止目前为止,TensorLayer一直保持着最多的官方神经网络层。

 

TensorLayer的后台目前基于TensorFlow计算引擎和MongoDB数据库,但这些模块设计可以拓展到其他的计算引擎和数据库中。


TensorLayer开源社区

本次2.0更新值得注意的是来自北京大学信息科学技术学院的两位大三同学,吴润迪(16级图灵班)和吴睿海。他们在今年1月份加入开发团队,经过4个月的努力,在神经网络模块和工作流模块中做出了重大的贡献,成为了本次大更新的最核心成员。此外,TensorLayer重视国内社区发展,这次更新非常感谢国内社区的:李国、魏亚东、麦络、柳青林、罗一风等人的支持,也非常感谢电子工业出版社对知识传播的支持,编写《深度学习:一起玩转TensorLayer》一书。



TensorLayer 社区当前正处在一个主动发展的阶段,包括一个“框架开发团队”和一个“应用开发团队”。目前已经从开源社区接收到大量的贡献,贡献者来自帝国理工学院、北京大学、卡内基梅隆大学、斯坦福大学、清华大学、加州大学洛杉矶分校、西安交通大学、西安电子科技大学、爱丁堡大学、瑞典林雪平大学等高校的研究人员,以及谷歌、微软、阿里巴巴、腾讯、ReFULE4、360安全、彭博等公司的工程师。国内的社区交流以微信群和线下聚会为主。此外,TensorLayer社区和很多组织都有保持联系,如London PhD Network, Kubeflow, Clusterone等,社区几位主要成员拿到了OpenAI, Google Brain, Nvidia Research等公司的offer


下一步做什么?

开源社区接下来计划增加更多的killer features,比如鉴于目前学界对3D视觉热度上升(如PointNet, PointCNN等工作),计划增加3D视觉所需的模块以更好地支持3D视觉任务和处理mesh、点云等3D数据,敬请期待。我们希望逐步减少对TensorFlow的依赖,开发更高效的数据流,并开发全套的最新计算机视觉、增强学习、自然语言处理等应用,以促进产业界和学术界的交流。


欢迎加入我们!

当前,我们还有一些例子急需针对2.0版本更新,如分布式训练、增强学习、姿态估计、风格转换、超分辨率复原、文本分析等等。如果您感兴趣加入开发团队,请联系我们 tensorlayer@gmail.com  (请注明希望加入“框架开发团队”还是“应用开发团队”)。


相关报道

[1] 机器之心:TensorLayer:控制深度学习开发复杂度

[2] ClusterOne -“Humans of AI”系列: TensorLayer and the Chinese Deep Learning Community

https://clusterone.com/blog/hao-dong


董豪博士简介

董豪博士即将毕业于帝国理工学院,并将于2019年9月加入北京大学前沿计算研究中心。研究领域为深度学习、计算机视觉以及医疗应用。在ICCV,TIFS,TMI,TNSRE,ACM MM等国际会议与刊物发表论文10余篇。同时在SIGGRAPH, TIP, TKDE, Neurocomputing等国际会议与刊物担任审稿人。他致力于推广人工智能技术,是深度学习开源框架TensorLayer的创始人,并获得ACM MM 2017年度最佳开源软件奖。


图文 | 董豪、吴润迪


近 期 热 点



—   版权声明  —


本微信公众号所有内容,由北京大学前沿计算研究中心微信自身创作、收集的文字、图片和音视频资料,版权属北京大学前沿计算研究中心微信所有;从公开渠道收集、整理及授权转载的文字、图片和音视频资料,版权属原作者。本公众号内容原作者如不愿意在本号刊登内容,请及时通知本号,予以删除。



点“阅读原文”访问TensorLayer社区

Modified on

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存