你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

CNTK v2.4 发行说明

此版本的亮点

  • 移动到 CUDA9、cuDNN 7 和 Visual Studio 2017。
  • 删除了 Python 3.4 支持。
  • 添加了 Volta GPU 和 FP16 支持。
  • 更好的 ONNX 支持。
  • CPU 性能改进。
  • 更多 OP。

老年 退休金 计划

  • top_k 操作:在正向传递中,它将计算沿指定轴的最大 (最大) k 值和相应的索引。 在向后传递中,渐变散到顶部 k 元素 (不在顶部 k 中的元素获取零渐变) 。
  • gather 操作现在支持轴参数
  • squeeze 用于 expand_dims 轻松删除和添加单一实例轴的操作
  • zeros_likeones_like 操作。 在许多情况下,只需依赖CNTK正确广播简单的 0 或 1,但有时需要实际张量。
  • depth_to_space:将输入张量中的元素从深度维度重新排列为空间块。 此操作的典型用途是实现某些图像超分辨率模型的子像素卷积。
  • space_to_depth:将输入张量中的元素从空间维度重新排列到深度维度。 它主要是 DepthToSpace 的反函数。
  • sum 操作:创建一个新的函数实例,该实例计算输入张量元素的按元素计算的总和。
  • softsign 操作:创建一个新的函数实例,用于计算输入张量元素的软对齐。
  • asinh 操作:创建一个新的函数实例,用于计算输入张量元素的按元素表示。
  • log_softmax 操作:创建新的函数实例,用于计算输入张量的 logsoftmax 规范化值。
  • hard_sigmoid 操作:创建新的函数实例,用于计算输入张量hard_sigmoid规范化值。
  • element_and、、element_notelement_orelement_xor、元素型逻辑操作
  • reduce_l1 操作:计算输入张量元素沿提供的轴的 L1 规范。
  • reduce_l2 操作:计算输入张量元素沿提供的轴的 L2 规范。
  • reduce_sum_square 操作:计算输入张量元素沿提供的轴的总和平方。
  • image_scaler 操作:通过缩放图像的各个值来更改图像。

ONNX

  • CNTK中对 ONNX 支持进行了多项改进。
  • 更新
    • 更新了 ONNX Reshape 操作以处理 InferredDimension
    • 将字段producer_version添加到 producer_name ONNX 模型。
    • 在 ONNX Conv op 中未auto_pad指定 atrribute 时pads处理事例。
  • Bug 修复
    • 修复了 ONNX Pooling 操作序列化中的 bug
    • Bug 修复,仅创建一个批处理轴的 ONNX InputVariable
    • 用于实现 ONNX Transpose 操作的 Bug 修复和更新,以匹配更新的规格。
    • 对 ONNX ConvConvTranspose实现的 Bug 修复和更新,以及Pooling与更新规范匹配的操作。

运算符

  • 组卷积
    • 修复了组卷积中的 bug。 CNTKConvolution操作的输出将更改组 > 1。 在下一个版本中,预计组卷积的更优化实现。
    • 针对层中的 Convolution 组卷积进行更好的错误报告。

Halide Binary Convolution

  • CNTK生成现在可以使用可选的 Halide 库来生成Cntk.BinaryConvolution.so/dll可与模块一起使用的netopt库。 该库包含优化的二元卷积运算符,这些运算符的性能优于基于 Python 的二进制卷积运算符。 若要在生成中启用 Halide,请在开始生成之前下载 Halide 版本 并设置 HALIDE_PATH 环境 varibale。 在 Linux 中,可用于 ./configure --with-halide[=directory] 启用它。 有关如何使用此功能的详细信息,请参阅 How_to_use_network_optimization