常见的深度学习框架主要有:
一、TensorFlow
- 来自Google的开源框架
- 重视性能和稳定性
- 采用静态计算图
- 适合搭建大型模型
二、PyTorch
- Facebook开发
- 重视开发体验和灵活性
- 采用动态计算图
- 开发效率高
三、Keras
- 高层API,运行在TensorFlow或Theano之上
- 简化深度学习
- 降低技术门槛
四、MXNet
- 受DistBelief启发,来自亚马逊
- 计算效率高
- 适合大型集群
五、PaddlePaddle
- 来自百度
- 面向研究和工业应用
- 高性能并行计算能力
总的来说,各框架的主要区别在于:
- 来源(Google / Facebook / 亚马逊 / 百度 )
- 优点(性能/效率/易用性)
- 计算图类型(静态/动态)
- 算法 supportive(支持的算法种类)
- 适用场景(大型模型/高效研发/产业应用)
并且存在如下 tradeoff:
- 效率 vs 性能
- 易用 vs 控制
所以在实际使用中,需要综合考虑:
- 研发效率
- 性能要求
- 模型复杂度
- 硬件资源