Microsoft认知工具包(CNTK) - 简介



在本章中,我们将学习什么是CNTK,它的功能,其1.0版和2.0版之间的区别以及2.7版的重点。

什么是Microsoft认知工具包(CNTK)?

Microsoft认知工具包(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认知工具包的最后一个主要发布版本。它完全支持ONNX 1.4.1。以下是此最后一个发布版本的CNTK的一些重要亮点。

  • 完全支持ONNX 1.4.1。

  • 支持Windows和Linux系统的CUDA 10。

  • 它支持ONNX导出中的高级循环神经网络(RNN)循环。

  • 它可以导出超过2GB的ONNX格式模型。

  • 它支持BrainScript脚本语言的训练操作中的FP16。

广告