几种深度学习框架(Tensorflow、Pytorch、Neural Network Console)的对比与思考

 

      目前以深度学习技术为代表的人工智能算法发展迅速,相对于传统机器学习算法(SVM等),深度学习不需要进行特征工程即人工方式选择信号特征值并构建特征向量,深度学习模型可以模拟人脑的工作机制进行底层特征的识别以及高级特征的抽象。深度学习算法层出不穷(CNN、RNN、LTSM等等),模型效率以及识别率普遍已优于传统机器学习算法。深度学习框架(工具)近年来发展迅速,常用的不少于十几种框架,但是2018年以来深度学习框架领域竞争进入白热化,一些框架逐步淡出。现就Tensorflow、Pytorch、Neural Network Console做介绍以及分析。

1、Tensorflow、Pytorch、Neural Network Console介绍

     Tensorflow是Google公司发布的深度学习框架,目前已发布2.0稳定版,Tensorflow功能强大,支持Python、JAVA、JS、C++等开发语言,具有跨平台的特性,支持WINDOWS、IOS、Linux操作系统,同一模型可以跨平台部署。另外支持分布式训练以及分布式部署能力。2019年发布Tensorflow Lite可以在嵌入式系统中运行深度学习模型。

      Pytorch是facebook公司发布的深度学习框架,是深度学习框架torch的python版本。torch框架只支持lua语言,受众一直很小。由于python语言的易用性,Facebook公司推出Pytorch并且近两年发展迅速。

      Neural Network Console是Sony公司推出的免费深度学习开发软件,2017年1.0版本发布,2019年12月发布最新离线1.60版本。该软件通过提供的图形化用户界面(GUI)可以让工程师直观、方便地构建、训练、评价深度学习网络。

Neural Network Console离线版本采用免安装方式,不需要配置复杂的python环境,直接点击软件图标就能直接运行(完全绿色)。严格意义上说,Neural Network Console并不是一种开源的深度学习编程框架,而是一种将python环境、深度学习网络构件化封装、GUI编程集中于一体的应用软件。

    Neural Network Console采用图形化“编程”具有极大的易用性,与主流深度学习框架(工具)相比上手简单。在新发布的1.60版本中主要做了如下更新:1)可以使用Sony提供的云计算资源进行云端模型训练(Training)2)Neural Network Console训练好的模型支持导出为Tensorflow格式,不过目前该功能为beta中,官网显示导出的模型还存在很多兼容性问题,在不远的将来会解决。3)增加了LIME、Inference插件。

2、易用性

       比较Tensorflow、Pytorch、Neural Network Console三者的易用性,无疑Neural Network Console是最简单的,其采用GUI编程,将python环境、深度学习模块封装,让开发者可以像搭积木一样构建深度学习网络,迅速开始模型的设计、训练以及验证。GUI编程是未来的发展趋势,Neural Network Console的界面设计与操作方式很符合东方人的习惯。

       三者之中Tensorflow是易用性最差的,上手入门比较困难。虽然tensorflow基于python语言但是其内部的各种API封装让tensorflow几乎成为一种新的编程语言,采用静态图的编程方式,编程较复杂。tensorflow环境搭建繁琐,需要安装各种依赖库,虽然有anaconda集成开发环境支持但是其依赖库的安装很多时候还是需要pip指令手动加载。另外,tensorflow版本比较混乱,各版本兼容性较差,版本间API定义差别较大,造成开发者持续学习的压力。2019年发布tensorflow2.0稳定版,Google做了较大改进,删除掉大量冗余API,统一采用keras高级API封装,大大提高了tensorflow的易用性,但是与pytorch还没有可比性。

   Pytorch易用性较好,只要掌握python语言就可以快速上手,与Numpy API兼容使得使用python做科学计算的开发者自然地使用pytorch进行深度学习开发。其采用动态图的编程方式,可以在模型训练过程中debug,让开发者可以跟踪模型每一步的训练过程。

   Neural Network Console采用GUI形式编程,易用性最好,具有深度学习知识开发人员可以立即上手进行模型训练以及评估。

3、应用

     在人工智能业界,Google目前还处于领导地位,tensorflow具有很强的跨平台特性以及部署能力,训练好的模型可以迅速实现服务器集群到嵌入式系统的部署,在应用领域是很强的优势。

     Pytorch在2018年之前无法与tensorflow抗衡,但是2018年下半年以后Pytorch依靠其很强的易用性异军突起,特别是在科学研究领域,2019年人工智能领域会议以及论文中采用pytorch作为开发工具占比已达70% [1],科研人员正抛弃tensorflow,拥抱pytorch。在工业界,tensorflow依靠其强大的部署能力以及google的研发实力目前还处于第一。

     Neural Network Console与pytorch相比易用性更好,但其受众较小,sony公司如果在人工智能领域持续发力并在工业界和学术界向pytorch和tensorflow一样宣传的前提下未来有可能替代pytorch。

4、发展趋势

     图像化编程以及极高的易用性是未来深度学习框架发展的趋势,迅速搭建训练模型并方便地部署到各种应用场景中是理想的愿景。为此,tensorflow发布2.0版本并推出tensorboard可视化工具提高易用性;pytorch创建ONNX(开放神经网络交换格式),使得模型可以实现部署;Neural Network Console在测试版本中已经支持将模型导出为tensorflow版本。

     未来一至两年如果tensorflow能解决好易用性以及版本兼容的问题会继续领先。Pytorch在俘获了大量研究者的前提下如果解决了跨平台部署应用的问题会反超tensorflow。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值