TensorLayer 2.0:保有最多官方神经网络层的通用 Python 库
对于开发者而言,深度学习系统的复杂度在不断的增加。从搭建神经网络模型,到动态模型,再到复杂的训练流程和任务管理,这使得通过轻量级工具全面管理深度学习开发的需求也越发强大。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由底层到上层可以分为三大模块:
神经网络 模块:层是神经网络的核心单元,TensorLayer提供了大量工业界和学术界需要的参考层实现(比如 CNN、RNN、BinaryNet等),提供类似Pytorch的"动态"声明方式,也提供类似Lasagne的堆叠式"静态"声明方法来建立模型,并支持动态图和静态图两种训练模式,以支持不同的开发需求。
工作流模块 :神经网络只是深度学习系统中的基础部分,为了支持整个深度学习开发流程,TensorLayer提供了大量数据处理和训练流程所需的工具。此外,为了管理整个深度学习开发,以支持项目的存储、比较、溯源等,TensorLayer提供了生命周期管理功能,包括模型、数据和训练流程的管理,以及支持任务分发以实现多任务并行执行,以加快训练(比如 超参数选取)和自动产品化部署。
应用模块 :为了促进产业界和学术界的交流,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年度最佳开源软件奖。
作者暂无likerid, 赞赏暂由本网站代持,当作者有likerid后会全部转账给作者(我们会尽力而为)。Tips: Until now, everytime you want to store your article, we will help you store it in Filecoin network. In the future, you can store it in Filecoin network using your own filecoin.
Support author:
Author's Filecoin address:
Or you can use Likecoin to support author: