我们起首懂得一下用于测试的设备。所有的机能测试都在 Azure NC6 VM 上应用 Nvidia Tesla K80 GPU 履行,应用的 VM 镜像是 Ubuntu 上的 Azure DSVM(数据科学虚拟机)。除了其他数据科学对象,我们还预安装了 Keras、TensorFlow、Theano 和 MXNet。对于测试来说,所有的软件包都是用的最新版,但因为 MXNet 只支撑 Keras 1.2.2,所以其应用的旧版。
设备
因为每一个深度进修框架的依附项不合,我们的测试鄙人面庞种设备中运行:


机能测试
为了比较 DL 框架不合的机能,我们如下所述应用了 5 种不合的测试模型。为了确保没有特定的框架获得任何特定的处理,所有模型都来自 GitHub Keras/examples 仓库中所保护的。
模型源代码地址:https://github.com/fchollet/keras/tree/master/examples
留意:有两个测试 MXNet 并没有介入,因为 MXNet 并不支撑最新版的 Keras,且 MXNet 作为后端运行该模型须要调剂大年夜量代码。在其他三个测试中以 MXNet 作为后端也须要进行一些细微的调剂,主如果新版本的 Keras 重定名了一些函数。
测试一:CIFAR-10 & CNN
- 进修模型的类型:卷积神经收集(CNN)
- 数据集/义务:CIFAR-10 小图片数据集
- 目标:将图片分类为 10 个类别
根据每一个 epoch 的练习速度,TensorFlow 要比 MXNet 快那么一点点。
而按照精确度/收敛速度来说,CNTK 在前 25 个 epoch 中领先一点,而在 50 个 epoch 后,其他框架都达到邻近的精确度,而 CNTK 却略微降低。



- TensorFlow 在 CNN 测试中表示都是最好的,然则在 RNN 测试中表示并不太好。
- CNTK 在 Babi RNN 和 MNIST RNN 测试上要比 TensorFlow 和 Theano 好得多,然则在 CNN 测试上要比 TensorFlow 差一些。
- MXNet 在 RNN 测试上要比 CNTK 和 TensorFlow 要好一点,此外它在 MLP 上要比所有框架的机能都要好。不过 MXNet 并不支撑 Keras v2 函数,所以我们并不克不及在没有修改代码的情况下直接测试,是以可能会有一点误差。
- Theano 在深度神经收集(MLP)中要比 TensorFlow 和 CNTK 好一点。
测试二:MNIST & CNN
- 进修模型的类型:CNN
- 数据集/义务:MNIST 手写数字数据集
- 目标:将图片分类为 10 类手写数字
在该测试中,TensorFlow 明显要在练习时光上加倍优良,但在精确度/收敛速度上所有框架都有类似的特点。


在应用 MNIST 数据集履行标准的神经收集测试中,CNTK、TensorFlow 和 Theano 实现了类似的分数(2.5 – 2.7 s/epoch),而 MXNet 却只须要 1.4s/epoch。此外,MXNet 同样在精确度/收敛速度上有一点点优势。

推荐阅读
【沙龙】51CTO诚邀您9月23号和多位技巧大年夜咖一路聊智能CDN的优化之路,抓紧时光哦! 定义云深度进修平台什么是云深度进修?跟着机械进修的成长,单机运行的机械进修义务存在缺乏资本隔离>>>详细阅读
本文标题:从三大神经网络,测试对比TensorFlow、MXNet、CNTK、Theano四个框架
地址:http://www.17bianji.com/lsqh/37501.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示