CNTK - 教程

  • 简述

    Microsoft Cognitive Toolkit (CNTK),前身为 Computational Network Toolkit,是一个免费、易于使用、开源的商业级工具包,使我们能够训练深度学习算法像人脑一样学习。它使我们能够创建一些流行的深度学习系统,例如前馈神经网络时间序列预测系统和卷积神经网络 (CNN) 图像分类器
    本教程对于对深度学习或人工神经网络感兴趣或将此主题作为其课程的一部分的研究生、研究生和研究生很有用。读者可以是初学者或高级学习者。
    读者必须具备神经网络的基本知识。他/她还应该了解 Python 编程概念中使用的基本术语。
    在本章中,我们将了解 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、Batch Normalization 和 Sequence-to-Sequence。
    • 它为我们提供了通过 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 中加载我们的模块。2.0 版也支持 BrainScript。
    它可以在 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。