Theano:
始于2008年,是第一个有较大影响力的python深度学习框架,可用于定义,优化和计算数学表达式,特别是多维数组。不过该库在2017年9月28号宣布停止开发了,所以,不建议作为研究工具继续学习。
TensorFlow:
是由Google公司于2015年推出的全新机器学习开源工具。主要用于进行机器学习和深度神经网络研究,但他也是一个非常基础的系统,因此也可以应用于众多领域。他也是当前最流行的深度学习框架,不过批评声也不少:
过于复杂的系统设计;
频繁变动的接口;
接口设计过于晦涩难懂;
文档混乱脱节;
总结,虽然不完美,但最流行且社区强大,适合生产环境。
Keras:
由纯python编写而成并使用TensorFlow,Theano及CNTK作为后端的深度学习接口。缺点是过度封装导致丧失灵活性,而且程序运行缓慢,许多bug都隐藏于封装之中。总结,入门最简单,就是调用api,但是不够灵活,也学不到深度学习的真正内容。
Caffe/Caffe2:
是一个清晰,高效的深度学习框架,既可以运行在cpu,也可以运行在gpu。优点是简洁快速,缺点是确实灵活性。总结,文档不够完善,但性能优异,几乎全平台支持,适合生产环境,不过难扩展,难配置,现在基于Caff的新项目越来越少了。
MXNet:
是一个深度学习库,支持多语言,可以运行在cpu,gpu,集群,服务器,台式机或者移动设备。以超强的分布式支持,明显的内存和显存优化而为人所称道。总结,文档略混乱,但分布式性能强大,语言支持最多,适合AWS云平台使用。
CNTK:
最初是出于在Microsoft内部使用而开发的,性能比Caffe,TensorFlow,Theano等主流工具都强,不过文档晦涩难懂,推广不给力,现在用户比较少,但框架质量本身不错,表现比较均衡,在语言领域效果较为突出。总结,社区不够活跃,但性能突出,擅长语音方面的相关研究。
PyTorch:
这个最新框架是2017年1月18日发布的,虽然资历最短,不过是当前难得简洁优雅而高效快速的框架。借鉴了前面的众多框架,该框架目前是深度学习框架的最高水平,没有哪一个框架能在灵活性,易用性,速度三方面有两个能同时超过PyTorch的,可以考虑从他开始学习。
以上来自深度学习框架一书,如有不当之处,欢迎指正。