你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
CNTK 库 API
CNTK 以 Python、C++ 提供用于网络组合和训练以及模型评估的库。 它还提供 C#/.NET 和 Java 中的库来访问 CNTK 模型评估设施。
Python API
CNTK Python API 由用于模型定义和计算、学习算法、数据读取和分布式训练的抽象组成。
- 灵活性和紧凑性:这些抽象正交组成,在定义和训练任意神经网络时提供灵活性和简洁性。
- 高效的数据接口:简单而轻量的数据接口允许用户以本机 numpy 数组的形式有效地将数据馈送给计算引擎。
- 内置数据读取器:适用于图像、文本格式和语音 HTK 数据格式的 CNTK 内置优化且可缩放的数据读取器也可从 Python API 获取,以便轻松直接使用现有数据进行训练,用户无需编写任何数据读取代码。
- 高度可缩放的学习:API (并行化算法(如 1 位 SGD) )公开 CNTK 高度可缩放的分布式训练功能。 分布式训练示例演示了训练并行化 API。
- 简明的网络定义:API 包含一个高级 层库 ,该库支持简洁的高级神经网络定义,包括类似于 CNTK V1 的重复周期。 该工具包支持以符号形式将循环模型表示为神经网络中的周期,而不是要求静态展开重复步骤。 这会导致循环神经网络的更通用、更简洁、更高效的表示和执行。
CNTK Python API 中的所有核心计算、学习和数据读取 API 抽象都很容易从 Python 和 C++ 扩展,使用户能够轻松实现新的运算符、学习者和数据读取器,这些运算符和读取器使用库的内置设施自由撰写。
API 引入了新的基于 协议缓冲区的 模型序列化格式,该格式支持对保存的模型进行向后和向上兼容性。
C++ API
CNTK 库 C++ API 为开发人员公开 CNTK 的核心计算、神经网络组合 & 训练、高效数据读取和可缩放的模型训练设施。 C++ API 完全适用于模型训练和评估,允许从本机代码驱动训练和模型服务。 这使本机代码能够使用新数据作为评估请求 ((即在线学习) )的一部分来优化联机模型。
目前,API 文档的最佳源内联在 API 头文件 (CNTKLibrary.h) 中,其中包含完整的 C++ API 定义。 API 头文件也包含在包含目录下的二进制发布包中。
C#/.NET API
CNTK 库托管 API 为使用 C# 或其他 .NET 语言的开发人员公开与训练和评估相关的 API。 它以 NuGet 包的形式提供。 NuGet 包 CNTK。CPUOnly 适用于仅 CPU 设备和 CNTK。GPU 支持 CPU 和 NVIDIA GPU。
有关 CNTK 库托管 API 的详细信息,请参阅 CNTK 库托管 API 页。
CNTKLibraryEvalExamples.sln项目中有多个 Eval 示例演示如何使用 C# 评估模型。
可以在 CNTKLibraryCSharpTrainingExamples.sln 中找到使用 C# API 的训练示例
Java API (实验性)
CNTK Java API 支持 Java 中的模型评估。 此 API 仍为实验性 API,可能会发生更改。 它作为可包含在 Java 项目中的 jar 文件 (cntk.jar) 提供。
有关如何使用 Java API,请参阅 Windows 和 Linux 说明。
Java 示例演示如何在 Java 中评估模型。