作家
登录

从三大神经网络,测试对比TensorFlow、MXNet、CNTK、Theano四个框架

作者: 来源: 2017-09-19 09:49:36 阅读 我要评论

【沙龙】51CTO诚邀您9月23号和多位技巧大年夜咖一路聊智能CDN的优化之路,抓紧时光哦!


本文比较了 Keras 支撑的主流深度进修框架机能,包含 TensorFlow、CNTK、MXNet 和 Theano,作者欲望经由过程应用同一模型和不合的 Keras 后端,而测试不合框架在不合类型义务中的机能。本文经由过程五个义务分别测试了 MLP、CNN 和 RNN 模型,机械之心不仅对该实验进行了介绍,同时还应用 Keras(TensorFlow 后端)在 MNIST 数据集上试运行了 CNN。

如不雅我们对 Keras 在数据科学和深度进修方面的风行还有疑问,那么推敲一下所有的主流云平台和深度进修框架的支撑情况就能发明它的强大年夜之处。今朝,Keras 官方版已经支撑谷歌的 TensorFlow、微软的 CNTK、蒙特利尔大年夜学的 Theano,此外,AWS 客岁就宣布 Keras 将支撑 Apache MXNet,上个月宣布的 MXNet 0.11 就新增 Core ML 和 Keras v1.2 的支撑。不过到今朝为止 MXNet 似乎只支撑 Keras v1.2.2 而不是最新版 2.0.5。

安闲大年夜神经收集,测试比较TensorFlow、MXNet、CNTK、Theano四个框架

机械之心也测验测验应用 TensorFlow 作为后端测试了 Keras,我们发明全部模型的搭建异常简洁,连入门者都能轻松读懂全部收集的架构。比拟于直接应用 TensorFlow 搭建卷积神经收集,将 Keras 作为高等 API,并应用 TensorFlow 作为后端要简单地多。后面我们将会把 Keras 实现 CNN 的代码与注释上传至 机械之心 GitHub 项目 中,下图是我们应用 TensorFlow 作为后端初始化练习的情况:

安闲大年夜神经收集,测试比较TensorFlow、MXNet、CNTK、Theano四个框架

以下是全部卷积收集的架构:

  1. model = Sequential() 
  2. model.add(Conv2D(32, kernel_size=(3, 3), 
  3.                  activation='relu'
  4.                  input_shape=input_shape)) 
  5. model.add(Conv2D(64, (3, 3), activation='relu')) 
  6. model.add(MaxPooling2D(pool_size=(2, 2))) 
  7. model.add(Dropout(0.25)) 
  8. model.add(Flatten()) 
  9. model.add(Dense(128, activation='relu')) 
  10. model.add(Dropout(0.5)) 
  11. model.add(Dense(num_classes, activation='softmax')) 

膳绫擎的代码清楚地定义了全部收集叠加快应用的层级。Sequential 代表序贯模型,即多个收集层的线性堆叠。在建立序贯模型后,我们可以大年夜输入层开端依次添加不合的层级以实现全部收集的构建。膳绫擎的架构起首应用的是 2 维卷积层 Conv2D,卷积核大年夜小为 3*3,激活函数为 ReLU,个中第一个参数 32 代表卷积核数量。此外,该卷积收集还应用了最大年夜池化层 MaxPooling2D,pool_size=(2,2) 为两个偏向(竖直,程度)上的下采样因子;Dropout 层,以 0.25 的概率在每次更新参数时随机断开输入的神经元;Dense 层,即全连接层;还有 Flatten 层,即将输入「压平」,也就是把多维的输入一维化,常用在大年夜卷积层到全连接层的过渡。以上是该架构的根本层级,更具体的代码及注释请查看机械之心 GitHub 项目。

测试的代码可以在作者的 GitHub 项目中找到:https://github.com/jasmeetsb/deep-learning- keras-projects

测试三:MNIST&MLP

  • 进修模型的类型:独裁感知机/深度神经收集
  • 数据集/义务:MNIST 手写数字数据集
  • 目标:将图片分类为 10 类手写数字

下面是 Jasmeet Bhatia 测评的具体情况。

Keras 后端框架机能测试

Keras 还能使开辟人员快速测试应用不合深度进修框架作为 Keras 后端的相对机能。Keras 设备文件中有一个参数决定了应用哪一个深度进修框架作为后端,是以我们可以构建一个雷同的模型在不合的深度进修框架(如 TensorFlow、CNTK、Theano)上直接运行。而对于 MXNet 来说,因为今朝只支撑 Keras ver1.2.2,所以我们须要对代码做一点点修改久煨。当然这个模许可以根据各个深度进修框架中的不合库而进行微调以实现更好的机能,不过 Keras 仍然供给了很好的机会来比较这些根本库之间的机能。

起初已经有一些文┞仿比较了 Keras 所支撑后端框架的相对机能,然则比较的时光都比较早,且主如果以 TensorFlow 和 Theano 作为后端的比较。是以本文根据 Keras 和深度进修框架的最新版本在更大年夜典范围内做了一次比较。


  推荐阅读

  云计算深度学习平台架构与实践的必经之路

【沙龙】51CTO诚邀您9月23号和多位技巧大年夜咖一路聊智能CDN的优化之路,抓紧时光哦! 定义云深度进修平台什么是云深度进修?跟着机械进修的成长,单机运行的机械进修义务存在缺乏资本隔离>>>详细阅读


本文标题:从三大神经网络,测试对比TensorFlow、MXNet、CNTK、Theano四个框架

地址:http://www.17bianji.com/lsqh/37501.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)