Microsoft Cognitive Toolkit (CNTK) - 简介
在本章中,我们将了解什么是 CNTK、它的功能、1.0 版和 2.0 版之间的区别以及 2.7 版的重要亮点。
什么是 Microsoft Cognitive Toolkit (CNTK)?
Microsoft Cognitive Toolkit (CNTK),以前称为计算网络工具包,是一个免费、易于使用、开源、商业级的工具包,使我们能够训练深度学习算法,使其像人脑一样学习。它使我们能够创建一些流行的深度学习系统,如前馈神经网络时间序列预测系统和卷积神经网络 (CNN) 图像分类器。
为了获得最佳性能,其框架函数是用 C++ 编写的。虽然我们可以使用 C++ 调用其函数,但最常用的方法是使用 Python 程序。
CNTK 的功能
以下是最新版本的 Microsoft CNTK 提供的一些功能和能力:
内置组件
CNTK 具有高度优化的内置组件,可以处理来自 Python、C++ 或 BrainScript 的多维密集或稀疏数据。
我们可以实现 CNN、FNN、RNN、批量规范化和带注意力的序列到序列。
它为我们提供了从 Python 在 GPU 上添加新的用户定义核心组件的功能。
它还提供自动超参数调整。
我们可以实现强化学习、生成对抗网络 (GAN),监督学习和非监督学习。
对于海量数据集,CNTK 内置了优化的读取器。
高效利用资源
CNTK 通过 1 位 SGD 为我们提供多个 GPU/机器上的高精度并行性。
为了在 GPU 内存中适应最大的模型,它提供了内存共享和其他内置方法。
轻松表达我们自己的网络
CNTK 拥有完整的 API,可用于从 Python、C++ 和 BrainScript 定义您自己的网络、学习器、读取器、训练和评估。
使用 CNTK,我们可以轻松地使用 Python、C++、C# 或BrainScript。
它提供高级和低级 API。
根据我们的数据,它可以自动形成推理。
它具有完全优化的符号循环神经网络 (RNN) 循环。
测量模型性能
CNTK 提供各种组件来测量您构建的神经网络的性能。
从您的模型和相关优化器生成日志数据,我们可以使用它来监控训练过程。
版本 1.0 与版本 2.0
下表比较了 CNTK 版本 1.0 和 2.0:
版本 1.0 | 版本 2.0 |
---|---|
它于 2016 年发布。 | 它是 1.0 版本的重大重写,于 2017 年 6 月发布。 |
它使用了一种名为 BrainScript 的专有脚本语言。 | 它的框架函数可以使用 C++、Python 调用。我们可以轻松地用 C# 或 Java 加载我们的模块。 BrainScript 也受 2.0 版支持。 |
它可在 Windows 和 Linux 系统上运行,但不能直接在 Mac OS 上运行。 | 它还可在 Windows(Win 8.1、Win 10、Server 2012 R2 及更高版本)和 Linux 系统上运行,但不能直接在 Mac OS 上运行。 |
2.7 版的重要亮点
2.7 版是 Microsoft Cognitive Toolkit 的最后一个主要发布版本。它完全支持 ONNX 1.4.1。以下是最新发布的 CNTK 版本的一些重要亮点。
完全支持 ONNX 1.4.1。
支持 Windows 和 Linux 系统的 CUDA 10。
它支持 ONNX 导出中的高级循环神经网络 (RNN) 循环。
它可以以 ONNX 格式导出超过 2GB 的模型。
它支持 BrainScript 脚本语言的训练操作中的 FP16。