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

📅  最后修改于: 2020-12-10 04:58:36             🧑  作者: Mango


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

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

Microsoft Cognitive Toolkit(CNTK),以前称为Computational Network Toolkit,是一种免费,易于使用的开源商业级工具包,使我们能够训练深度学习算法来像人脑一样学习。它使我们能够创建一些流行的深度学习系统,例如前馈神经网络时间序列预测系统和卷积神经网络(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:

Version 1.0 Version 2.0
It was released in 2016. It is a significant rewrite of the 1.0 Version and was released in June 2017.
It used a proprietary scripting language called BrainScript. Its framework functions can be called using C++, Python. We can easily load our modules in C# or Java. BrainScript is also supported by Version 2.0.
It runs on both Windows and Linux systems but not directly on Mac OS. It also runs on both Windows (Win 8.1, Win 10, Server 2012 R2 and later) and Linux systems but not directly on 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。