かれ4

かれこれ4個目のブログ

Cognitive Toolkit (CNTK)の 2.6 がリリースされていました。

前回のマイナーアップデート2.5.1から約5ヶ月ぶりのアップデート

CNTK_2_6_Release_Notes | Microsoft Docs

このリリースの注目ポイント☆

  • .Net Support
  • Efficient group convolution.
  • Improvement of sequential convolution.
  • More operators and improvement of existing ones.
  • ONNX feature update to support ONNX 1.2.2.
  • More ops supported by ONNX converter.
  • Bug fixes.

気になるところ

グループ化畳み込みが効率化されました

cuDNN7とMKL2017 APIを直接使用する実装に変わった事で、 パフォーマンスとモデルサイズが改善されています。 公式のページによると GPU使用時で30% CPU使用時で65-75% モデルサイズに至っては80%改善されています。 f:id:tottokug:20180928090931p:plain

Python API の引数順序変更

Times、TransposeTimes、Gemmが変更になってます。 このあたり使っている場合は注意が必要です。 グローバルオプションで指定する事で今までと同様に使う事も出来きるっぽいです。

ONNX 1.2.2 に対応

細かいのがいっぱいあります。

  • Updated CNTK's ONNX import/export to use ONNX 1.2 spec.
  • Major update to how batch and sequence axes are handled in export and import. As a result, the complex scenarios and edge cases are handled accurately.
  • Updated CNTK's ONNX BatchNormalization op export/import to latest spec.
  • Added model domain to ONNX model export.
  • Improved error reporting during import and export of ONNX models.
  • Updated DepthToSpace and SpaceToDepth ops to match ONNX spec on the permutation for how the depth dimension is placed as block dimension.
  • Added support for exporting alpha attribute in ELU ONNX op.
  • Major overhaul to Convolution and Pooling export. Unlike before, these ops do not export an explicit Pad op in any situation.
  • Major overhaul to ConvolutionTranspose export and import. Attributes such as output_shape, output_padding, and pads are fully supported.
  • Added support for CNTK's StopGradient as a no-op.
  • Added ONNX support for TopK op.
  • Added ONNX support for sequence ops: sequence.slice, sequence.first, sequence.last, sequence.reduce_sum, sequence.reduce_max, sequence.softmax. For these ops, there is no need to expand ONNX spec. CNTK ONNX exporter just builds computation equavalent graphs for these sequence ops.
  • Added full support for Softmax op.
  • Made CNTK broadcast ops compatible with ONNX specification.
  • Handle to_batch, to_sequence, unpack_batch, sequence.unpack ops in CNTK ONNX exporter.
  • ONNX tests to export ONNX test cases for other toolkits to run and to validate.
  • Fixed Hardmax/Softmax/LogSoftmax import/export.
  • Added support for Select op export.
  • Added import/export support for several trigonometric ops.
  • Updated CNTK support for ONNX MatMul op.
  • Updated CNTK support for ONNX Gemm op.
  • Updated CNTK's ONNX MeanVarianceNormalization op export/import to latest spec.
  • Updated CNTK's ONNX LayerNormalization op export/import to latest spec.
  • Updated CNTK's ONNX PRelu op export/import to latest spec.
  • Updated CNTK's ONNX Gather op export/import to latest spec.
  • Updated CNTK's ONNX ImageScaler op export/import to latest spec.
  • Updated CNTK's ONNX Reduce ops export/import to latest spec.
  • Updated CNTK's ONNX Flatten op export/import to latest spec.
  • Added CNTK support for ONNX Unsqueeze op.