深度学习框架对比

原地址:https://www.leiphone.com/news/201702/T5e31Y2ZpeG1ZtaN.html

目前主流的的深度学习框架

主流深度学习框架包括Tensorflow、Caffe、Keras、CNTK、Torch7、MXNet、Leaf、Theano、Deeplearning4、Lasagne、Neon等等。
各个开源框架在 GitHub 上的数据统计
目前主流的深度学习平台均支持Python接口。
可以看出其中Tensorflow在关注度和用户数上占据绝对优势。这里简单介绍下Tensorflow平台。

Tensorflow

  • 高阶机器学习库,核心代码用C++实现,核心代码提供C++接口,具有Python、Go、Java接口,通过SWIG实现。
  • 支持自动求导。
  • TensorFlow 也有内置的 TF.Learn 和 TF.Slim 等上层组件可以帮助快速地设计新网络,并且兼容 Scikit-learn estimator 接口,可以方便地实现 evaluate、grid search、cross validation 等功能
  • 数据并行模式

TensorFlow 有独立的 Variable node,不像其他框架有一个全局统一的参数服务器,因此参数同步更自由。

  • 灵活的移植性

可以将同一份代码几乎不经过修改就轻松地部署到有任意数量 CPU 或 GPU 的 PC、服务器或者移动设备上。

  • 极快的编译速度
  • 可视化组件:TensorBoard

TensorBoard 是 TensorFlow 的一组 Web 应用,用来监控 TensorFlow 运行过程,或可视化 Computation Graph。TensorBoard 目前支持五种可视化:标量(scalars)、图片(images)、音频(audio)、直方图(histograms)和计算图(Computation Graph)。TensorBoard 的 Events Dashboard 可以用来持续地监控运行时的关键指标,比如 loss、学习速率(learning rate)或是验证集上的准确率(accuracy);Image Dashboard 则可以展示训练过程中用户设定保存的图片,比如某个训练中间结果用 Matplotlib 等绘制(plot)出来的图片;Graph Explorer 则可以完全展示一个 TensorFlow 的计算图,并且支持缩放拖曳和查看节点属性。

  • 异构性:支持多种硬件平台和操作系统
  • 分布式:16块GPU达到单块GPU的15倍性能,分布式通信基于socket的RPC,而不是速度更快的RDMA
  • TensorFlow Serving:提供模型的导出功能,并部署成对外提供预测服务的RESTful接口。有了这个组件,TensorFlow 就可以实现应用机器学习的全流程:从训练模型、调试参数,到打包模型,最后部署服务.

TensorFlow Serving 是一个为生产环境而设计的高性能的机器学习服务系统。它可以同时运行多个大规模深度学习模型,支持模型生命周期管理、算法实验,并可以高效地利用 GPU 资源,让 TensorFlow 训练好的模型更快捷方便地投入到实际生产环境

你可能感兴趣的:(深度学习框架对比)