深度学习神经网络正步入成熟,而深度学习框架目前众多,大都可以在图像识别、手写识别、视频识别、语音识别、目标识别和自然语言处理等诸多领域大显身手。
深度学习框架平台占据人工智能产业生态的核心地位,具有统领产业进步节奏、带动终端场景与云端服务协同发展的重要作用,处于承上启下的关键地位,其意义媲美移动互联网操作系统。随着深度学习框架的不断演进,以深度学习为代表的人工智能将大放异彩。
那么,现在都有哪些框架呢,我们来盘点一下。
01
Theano
Theano最初诞生于蒙特利尔大学 LISA 实验室,于2008年开始开发,是第一个有较大影响力的Python深度学习框架。由于Theano已经停止开发,不建议作为研究工具继续学习。
02
TensorFlow
TensorFlow在很大程度上可以看作Theano的后继者,不仅因为它们有很大一批共同的开发者,而且它们还拥有相近的设计理念,都是基于计算图实现自动微分系统。但是由于其频繁变动的接口、接口设计过于晦涩难懂、文档混乱脱节。不完美但最流行的深度学习框架,社区强大,适合生产环境。
03
Keras
严格意义上讲,Keras并不能称为一个深度学习框架,它更像一个深度学习接口,它构建于第三方框架之上。Keras的缺点很明显:过度封装导致丧失灵活性。入门最简单,但是不够灵活,使用受限。
04
Caffe/Caffe2
Caffe的优点是简洁快速,缺点是缺少灵活性。不同于Keras因为太多的封装导致灵活性丧失,Caffe灵活性的缺失主要是因为它的设计。文档不够完善,但性能优异,几乎全平台支持(Caffe2),适合生产环境。
05
MXNet
MXNet最初由一群学生开发,缺乏商业应用,极大地限制了MXNet的使用。文档略混乱,但分布式性能强大,语言支持最多,适合AWS云平台使用。
06
CNTK
CNTK的性能比Caffe、Theano、TensoFlow等主流工具都要强。社区不够活跃,但是性能突出,擅长语音方面的相关研究。
此外,还有许多专门针对移动设备开发的框架,如CoreML、MDL,这些框架纯粹为部署而诞生,不具有通用性,也不适合作为研究工具。
这些框架各有优缺点,但是大多流行度和关注度不够,或者局限于一定的领域。从上,我们可以看出,并没有一个完美的深度神经网络,能够解决你的所有业务问题。
深度学习框架发展到今天,有些功能已经变成常规需求了,譬如易用、高效、完备(算子、模型、配套工具链、文档、案例),一个新的框架在这些方面应该没有明显的短板。一个后出现的框架要追求成功,仅仅没有短板还不够,还必须有长板,独门功法,有超越于其它框架的地方,或者其它框架根本做不到,或者很难做到,只有这样,才有可能先从细分市场切开一个小口,进而站稳脚本。