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由底层到上层可以分为三大模块:
  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
2
相关数据
微软机构

微软是美国一家跨国计算机科技公司,以研发、制造、授权和提供广泛的计算机软件服务为主。总部位于美国华盛顿州的雷德蒙德,最为著名和畅销的产品为Microsoft Windows操作系统和Microsoft Office办公室软件,以及Xbox的游戏业务。微软是美国《财富》杂志2015年评选的世界500强企业排行榜中的第95名。

https://www.microsoft.com/en-us/about
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

数据库技术

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

文本分析技术

文本分析是指对文本的表示及其特征项的选取;文本分析是文本挖掘、信息检索的一个基本问题,它把从文本中抽取出的特征词进行量化来表示文本信息。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

图像增强技术

图像增强技术用于增强图像中的有用信息,它可以是一个失真的过程,其目的是要改善图像的视觉效果,针对给定图像的应用场合。它通过有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果,满足某些特殊分析的需要。

堆叠技术

堆叠泛化是一种用于最小化一个或多个泛化器的泛化误差率的方法。它通过推导泛化器相对于所提供的学习集的偏差来发挥其作用。这个推导的过程包括:在第二层中将第一层的原始泛化器对部分学习集的猜测进行泛化,以及尝试对学习集的剩余部分进行猜测,并且输出正确的结果。当与多个泛化器一起使用时,堆叠泛化可以被看作是一个交叉验证的复杂版本,利用比交叉验证更为复杂的策略来组合各个泛化器。当与单个泛化器一起使用时,堆叠泛化是一种用于估计(然后纠正)泛化器的错误的方法,该泛化器已经在特定学习集上进行了训练并被询问了特定问题。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

阿里巴巴机构

阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的18人于1999年在浙江杭州创立的公司。 阿里巴巴集团经营多项业务,另外也从关联公司的业务和服务中取得经营商业生态系统上的支援。业务和关联公司的业务包括:淘宝网、天猫、聚划算、全球速卖通、阿里巴巴国际交易市场、1688、阿里妈妈、阿里云、蚂蚁金服、菜鸟网络等。 2014年9月19日,阿里巴巴集团在纽约证券交易所正式挂牌上市,股票代码“BABA”,创始人和董事局主席为马云。 2018年7月19日,全球同步《财富》世界500强排行榜发布,阿里巴巴集团排名300位。2018年12月,阿里巴巴入围2018世界品牌500强。

https://www.alibabagroup.com/
腾讯机构

腾讯科技股份有限公司(港交所:700)是中国规模最大的互联网公司,1998年11月由马化腾、张志东、陈一丹、许晨晔、曾李青5位创始人共同创立,总部位于深圳南山区腾讯大厦。腾讯由即时通讯软件起家,业务拓展至社交、娱乐、金融、资讯、工具和平台等不同领域。目前,腾讯拥有中国国内使用人数最多的社交软件腾讯QQ和微信,以及中国国内最大的网络游戏社区腾讯游戏。在电子书领域 ,旗下有阅文集团,运营有QQ读书和微信读书。

http://www.tencent.com/
360机构

奇虎360科技有限公司,是中国领先的互联网和手机安全产品及服务供应商。据第三方统计,按照用户数量计算,360是中国领先的互联网安全公司,用户6亿,市场渗透率96.6%;中国领先的移动互联网安全公司,用户数近8亿,市场渗透率近70%;中国领先的浏览器公司之一,活跃用户达到4亿,渗透率超过70%。 360致力于通过提供高品质的免费安全服务,为中国互联网用户解决上网时遇到的各种安全问题。面对互联网时代木马、病毒、流氓软件、钓鱼欺诈网页等多元化的安全威胁,360以互联网的思路解决网络安全问题。360是免费安全的首倡者,认为互联网安全像搜索、电子邮箱、即时通讯一样,是互联网的基础服务,应该免费。为此,360安全卫士、360杀毒等系列安全产品免费提供给中国数亿互联网用户。同时,360开发了全球规模和技术均领先的云安全体系,能够快速识别并清除新型木马病毒以及钓鱼、挂马恶意网页,全方位保护用户的上网安全。

https://www.360.cn/
推荐文章
暂无评论
暂无评论~