说明
深度学习框架有很多种,想看看不同框架训练出来的模型精度有没有区别。
想弄清楚的问题主要有以下几个:
- 不同框架的数值计算方法是否相同;
- 如果计算方法不同,是否说明即使参数相同,不同框架训练出来的模型精度也不一样。
找了一些论文,逐篇总结一下。
下文是对此论文的概括总结:
A Comparative Study of Open Source Deep Learning Frameworks. 2018
该论文对深度学习的三个常用框架Theano、CNTK和Tensorflow进行了测试。
1. 评价指标
评价不同深度学习框架性能的指标,该论文主要从以下三个方面入手:
- Running time
- Memory consumption
- CPU and GPU utilization
为了控制实验变量,这里还限制了Number of epochs,应该是计算模型收敛到足够精度时使用的时间。
2. 实验条件
2.1 硬件
GPU(似乎是在虚拟机上跑的,这块儿不是很了解,可能有误):
CPU:
2.2 测试数据集
- MNIST
- CIFER-10
2.3 测试算法
卷积神经网络
2.4 测试框架和假设
测试了Theano、CNTK和Tensorflow三个框架。
其中Theano和Tensorflow调用了封装好的Keras库,CNTK没有用Keras(不知道这一点会不会对最后的结果产生影响)
3. 结果
对卷积神经网络而言:
- Speed:CNTK最快,Tensorflow次之,Theano最慢;
- Memory consumption:三个框架相当;
- CPU utilization:Theano最低,Tensorflow次之,CNTK最高;
- GPU utilization:Tensorflow最低,Theano次之,CNTK最高。
版权声明:本文为u014120499原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。