【新智元导读】微软数据科学家Ilia Karmanov做了一个项目,使用高级API测试8种常用深度学习框架的性能(因为Keras有TF,CNTK和Theano,所以实际是10种)。...而且,有了这样一个模型后,也就有了比较各个框架的基准,各个框架的训练时间和默认选项也变得更加透明。...Karmanov发现,许多在线教程都使用低级别的API,虽然写很详细,但对于大多数用例而言,除非想要创建新的层,否则意义不大。因此,他在项目中使用了最高级别的API,以便更容易地在框架之间进行比较。...能够用Python代码编写一个自定义层并快速执行它才是研究项目的关键 在实际应用中,你会用到TensorBoard这样的高级日志来查看模型是否收敛,帮助调整超参数。但在这个例子中并不涉及。...上面的框架(除了Keras),为了方便比较,都尝试使用相同级别的API,所以都使用相同的生成函数。对于MXNet和CNTK,我尝试了一个更高级别的API,使用框架的训练生成器函数。
CNTK 由深度学习热潮的发起演讲人创建,目前已经发展成一个通用的、平台独立的深度学习系统。在CNTK中,网络会被指定为向量运算的符号图,运算的组合会形成层。...CNTK通过细粒度的构件块让用户不需要使用低层次的语言就能创建新的、复杂的层类型。...CNTK CNTK的使用方式与Caffe相似,也是通过指定配置文件并运行命令行,但CNTK没有Python或者任何其他高级语言的接口。...TensorFlow的用户能够将训练好的模型部署到多种设备上,不需要实现单独的模型解码器或者加载Python/LuaJIT解释器。...虽然对大的模型其Python开销并不大,但它的限制摆在那,唯一的亮点就是它跨平台,模型能够部署到Windows环境上。
我们提供 3 个隐藏层,每个包含 400 个神经元。 然后,我们创建两个 CNTK input变量,以在创建模型时使用。 这是 CNTK 最重要的概念之一。...训练 CNTK 模型 创建模型后,我们现在可以继续训练模型并使其学习预测。 为此,我们需要使用 CNTK 模型对象,并将数据集中的样本拟合到该对象。 我们可以同时记录loss和其他评估指标。...在下一部分中,让我们看看如何在 Django 中加载和使用 CNTK 模型。...然后,我们将从保存的文件中加载 CNTK 模型,并使用它进行预测。...load_model方法将帮助我们加载保存的 CNTK 模型文件。
这也就意味着你可以在各种服务器和移动设备上部署你的训练模型,而无需执行单独的模型解码器或者加载 Python 解释器。...TensorFlow 支持细粒度的网格层,而且允许用户在无需用低级语言实现的情况下构建新的复杂的层类型。子图执行操作允许你在图的任意边缘引入和检索任意数据的结果。这对调试复杂的计算图模型很有帮助。...虽然 Caffe 在视频识别领域是一个流行的深度学习网络,但是 Caffe 却不能像 TensorFlow、CNTK 和 Theano 那样支持细粒度网络层。构建复杂的层类型必须以低级语言完成。...使用 Python 或 C++ 编程接口,CNTK 支持 64 位的 Linux 和 Windows 系统,在 MIT 许可证下发布。...此外,像 TensorFlow 和 Theano 一样,CNTK 有丰富的细粒度的网络层构建。构建块(操作)的细粒度使用户不需要使用低层次的语言(如 Caffe)就能创建新的复杂的层类型。
PyTorch 中用于数据加载的 API 设计得很好。接口在数据集、采样器和数据加载器中有明确规定。数据加载器接收数据集和采样器,根据采样器的调度,在数据集上生成迭代器。...此外,该图可以通过其他支持的语言 (C++,Java) 加载。这对不支持 Python 的调度栈来说至关重要。理论上,在改变模型源代码之后,你想要运行旧模型时它也能有所帮助。...此后,在 2.0 的多个 Beta 和 RC 版本中,微软逐步更新了 CNTK 对 Python、C++、C#、Java 等的 API 支持,对 Keras 的后端支持等新功能。...此外,还迎来两个重大变化:一是让约束管理(constraint management)基于变量属性;二是把层和模型中已经不再使用的约束属性移除(不会影响任何用户)。...自带一个丰富的内嵌层库,通过重用库中预建的构件,可以大大简化规定复杂模型架构的任务。
由于其优良的卷积模型,它是计算机视觉界最受欢迎的工具包之一,并在2014年获得了ImageNet挑战赛中获得胜利。Caffe在BSD 2-Clause开源许可后发布。 ?...2)没有Python接口。 3)与Caffe一样,基于层的网络结构,其扩展性不好,对于新增加的层,需要自己实现(forward, backward and gradient update)。...缺乏大量的API编程语言也限制了开发人员。 ? Theano 优点: 1)2008年诞生于蒙特利尔理工学院,主要开发语言是Python。...CNTK支持RNN和CNN类型的神经模型,使其成为处理图像、手写和语音识别问题的最佳候选。...CNTK与TensorFlow和Theano的组成相似,其网络被指定为向量运算的符号图,如矩阵的加法/乘法或卷积。此外,像TensorFlow和Theano一样,CNTK允许构建网络层的细粒度。
我使用的是包括 Python 3.5 的 Anaconda3 4.1.1 64 位。安装 Anaconda 后,将 CNTK 安装为 Python 包,而不是独立系统,使用 pip 实用工具。...评估和使用模型 已训练的图像分类器后,通常需要评估上发出的测试数据的已训练的模型。如中所示,该演示计算分类准确度图 5。...通常建议在定型后或定型期间保存模型。在 CNTK 中,保存所示: mdl_name = "....通过以下代码行,可以将已保存的模型从其他程序加载到内存中: mdl_name = "....\\Models\\mnist_dnn.model" model = C.ops.functions.Function.load(mdl_name) 加载后,就可以使用模型了,就像已定型模型一样。
MXNet结合了高性能、clean的代码,高级API访问和低级控制,是深度学习框架中的佼佼者。...微软开源的深度学习框架,CNTK具有高度优化的内置组件,可以处理来自Python,C ++或BrainScript的多维密集或稀疏数据。...能够实现CNN,DNN,RNN等任务,能够优化海量的数据集加载。...:模型压缩工具,获得更小体积的模型和更快的执行性能; X2 Paddle:辅助工具,将其他框架模型转换成Paddle模型,转换格式后可以方便的使用上述5个工具; OneFlow 项目地址:https:/...兼容并包:MegEngine 的顶层 API 基于 Python,采取了类似于 PyTorch 的风格。简单直接,易于上手,便于现有项目进行移植或整合。
Keras是TensorFlow高级集成API,可以非常方便地和TensorFlow进行融合。Keras在高层可以调用TensorFlow、CNTK、Theano,还有更多优秀的库也在被陆续支持中。...CNTK允许用户非常轻松地实现和组合流行的模型,包括前馈神经网络(DNN)、卷积神经网络(CNN)和循环神经网络(RNN、LSTM)。...适合做语音任务,CNTK本就是微软语音团队开源的,自然更适合做语音任务,便于在使用RNN等模型以及时空尺度时进行卷积。 微软开发的CNTK-R包提供了R与CNTK的API接口。...其图形优化层使符号执行更快,内存效率更高。 MXNet的基本特性如下。 灵活的编程模型:支持命令式和符号式编程模型。...ONNX模型目前在Caffe2、CNTK、MXNet和PyTorch中得到支持,并且还有与其他常见框架和库的连接器。 onnx-r包提供了R与ONNX的API接口。
Keras是一个高层神经网络API,由Python编写,并且能够在TensorFlow、Microsoft Cognitive Toolkit(CNTK)以及Theano之上运行。...验证安装: 安装完成后,输入以下Python代码来验证是否安装成功: import keras print(keras....现在,Keras已经安装完毕,让我们来构建一个简单的神经网络模型。这将帮助你熟悉Keras的基本API。...Dense层:Dense层是Keras中常用的全连接层,它对输入进行线性变换后再应用激活函数。 Compile与Fit:编译步骤指定了模型的优化器和损失函数,而fit方法则用于训练模型。...问题描述 可能原因 解决方法 网络错误 网络不稳定或源不可用 使用国内镜像源 GPU未被使用 未安装GPU版本的TensorFlow 安装tensorflow-gpu,并检查CUDA和cuDNN的版本 模型保存后加载出错
什么是Keras Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。...查看文档,请访问 Keras.io。 Keras 兼容的 Python 版本: Python 2.7-3.6。 为什么选择 Keras? 在如今无数深度学习框架中,为什么要使用 Keras 而非其他?...在 Python webapp 后端(比如 Flask app)中。 在 JVM 上,通过 SkyMind 提供的 DL4J 模型导入。 在 Raspberry Pi 树莓派上。...重要的是,任何仅利用内置层构建的 Keras 模型,都可以在所有这些后端中移植:你可以用一种后端训练模型,再将它载入另一种后端中(例如为了发布的需要)。...支持的后端有: 谷歌的 TensorFlow 后端 微软的 CNTK 后端 Theano 后端 亚马逊也正在为 Keras 开发 MXNet 后端。
Imaging Library(PIL) Python Imaging Library(PIL) 已经成为 Python 事实上的图像处理标准库了,这是由于,PIL 功能非常强大,但API却非常简单易用...16、 Seaborn Seaborn 是在 Matplotlib 的基础上进行了更高级的API封装的Python数据可视化库,从而使得作图更加容易,应该把 Seaborn 视为 Matplotlib...启动完成后,即可看到 Orange 图形界面,进行各种操作。...编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。...CNTK 可以轻松地实现和组合流行的模型类型,如 CNN 等。CNTK 用网络描述语言 (network description language, NDL) 描述一个神经网络。
不同框架具有相同模型的一个结果就是框架在训练时间和默认选项上变得越发透明,我们甚至可以对比特定的元素。 能够快速地把你的模型转换为另一个框架意味着你能够交换 hats。...,来确保我们在对同样的模型架构进行对比。...轻松添加自定义层(或者层的可用性,比如 k 最大池化或者分层 softmax),及其运行速度可以促成或毁掉你的框架选择。能够用 python 代码写一个自定义层并快速执行它对研究项目至关重要。...为方便对比,上文中的实例(除了 Keras)使用同等水平的 API 和同样的生成器函数。我在 MXNet 和 CNTK 的实验中使用了更高水平的 API,在该 API 上使用框架的训练生成器函数。...我必须关闭 unit_gain(只在 CNTK 中默认开启),以匹配其他框架的实现。 9.
毕竟,CNTK也是许多图像识别挑战赛的卫冕冠军。为了内容的完整性,我应该也对比一下Theano、Torch和Caffe。后三者也是现在非常流行的框架。...CNTK目前还没有和Python或是C++绑定(尽管已经承诺过),所以它目前训练和测试的流程控制还是需要精心编制设计的。等会我将展示,这个过程并不能算是一种限制。...CNTK版本 下面是为LSTM模型设置的NDL。有两件事需要注意。...尽管它们所执行的操作符都一样,但TensorFlow的表示方式充分发挥了Python控制流的作用。这个概念模型非常简单。...然而,我发现tensorflow版本更容易进行实验,因为它是由Python驱动的。我能用IPython notebook加载它并做一些其它尝试。而CNTK则需要用户完全理解如何用配置文件表达想法。
Imaging Library(PIL) 已经成为 Python 事实上的图像处理标准库了,这是由于,PIL 功能非常强大,但API却非常简单易用。...启动完成后,即可看到 Orange 图形界面,进行各种操作。...编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。...虽然这些 api 将继续工作,但鼓励使用 PyTorch api。 25、MXNet MXNet 是一款设计为效率和灵活性的深度学习框架。...CNTK 可以轻松地实现和组合流行的模型类型,如 CNN 等。 CNTK 用网络描述语言 (network description language, NDL) 描述一个神经网络。
但是,它具有针对 Python 或 R 等其他语言的绑定。当前的 0.10.0 版本添加了针对 .NET 语言的绑定。...安装后,即可从 .NET 应用程序调用 SynapseML API。 以下代码片段说明了如何从 C# 应用程序调用 SynapseML API。...目前使用 OpenAI 模型需要访问 Azure OpenAI 服务。 最后,当前版本增加了对[7]MLflow的支持,这是一个管理 ML 生命周期的平台。...开发人员可以使用它来加载和保存模型,并在模型执行期间记录消息。...Apache Spark 是用 Scala(JVM 上的一种语言)编写的,但具有 Python、R、.NET 和其他语言的语言绑定。