CNTK v2.4 リリース ノート
- [アーティクル]
-
-
このリリースの重要なポイント
- CUDA9、cuDNN 7、Visual Studio 2017 に移行。
- Python 3.4 のサポートを削除しました。
- Volta GPU と FP16 のサポートが追加されました。
- ONNX のサポートが向上しました。
- CPU パフォーマンスの向上。
- その他の IP。
Ops
top_k
操作: 前方パスでは、指定した軸に沿って上位 (最大) k 値と対応するインデックスを計算します。 後方パスでは、グラデーションは上部の k 要素に分散されます (上 k 以外の要素は 0 のグラデーションを取得します)。
gather
操作で軸引数がサポートされるようになりました
squeeze
シングル expand_dims
トン軸を簡単に取り外して追加するための操作
zeros_like
と ones_like
操作。 多くの状況では、単純な 0 または 1 を正しくブロードキャストCNTKに頼ることができますが、実際のテンソルが必要な場合があります。
depth_to_space
: 入力テンソル内の要素を深度ディメンションから空間ブロックに再配置します。 この操作の一般的な用途は、一部の画像スーパー解像度モデルにサブピクセル畳み込みを実装することです。
space_to_depth
: 入力テンソル内の要素を空間ディメンションから深度ディメンションに再配置します。 これは、主に DepthToSpace の逆関数です。
sum
operation: 入力テンソルの要素ごとの合計を計算する新しい関数インスタンスを作成します。
softsign
operation: 入力テンソルの要素ごとのソフトサインを計算する新しい関数インスタンスを作成します。
asinh
操作: 入力テンソルの要素ごとの asinh を計算する新しい関数インスタンスを作成します。
log_softmax
operation: 入力テンソルの logsoftmax 正規化値を計算する新しい Function インスタンスを作成します。
hard_sigmoid
操作: 入力テンソルのhard_sigmoid正規化された値を計算する新しい関数インスタンスを作成します。
element_and
、element_not
要素element_or
element_xor
ごとのロジック操作
reduce_l1
operation: 指定された軸に沿って入力テンソルの要素の L1 ノルムを計算します。
reduce_l2
operation: 指定された軸に沿って入力テンソルの要素の L2 ノルムを計算します。
reduce_sum_square
操作: 指定された軸に沿って入力テンソルの要素の合計二乗を計算します。
image_scaler
操作: 個々の値をスケーリングしてイメージを変更します。
ONNX
- CNTKでの ONNX サポートにはいくつかの機能強化が行われています。
- 更新
- 処理するように ONNX
Reshape
op を InferredDimension
更新しました。
- ONNX モデルへの追加
producer_name
と producer_version
フィールド。
- ONNX
Conv
op で atrribute もpads
指定されていないauto_pad
場合のケースの処理。
- バグ修正
- ONNX
Pooling
op のシリアル化のバグを修正しました
- バッチ軸が 1 つだけの ONNX
InputVariable
を作成するバグを修正しました。
- 更新された仕様に一致する ONNX
Transpose
op の実装に対するバグ修正と更新。
- 更新された仕様に一致する ONNX
Conv
、 ConvTranspose
および ops の実装に対するバグ修正と Pooling
更新。
演算子
- グループ畳み込み
- グループ畳み込みのバグを修正しました。 グループ > 1 では、CNTK
Convolution
op の出力が変更されます。 次のリリースでは、グループ畳み込みのより最適化された実装が期待されます。
- レイヤー内のグループ畳み込みのエラー報告が
Convolution
改善されました。
ハライド二項畳み込み
- CNTK ビルドでは、オプションのハライド ライブラリを使用して、モジュールで使用できるライブラリを
netopt
ビルドCntk.BinaryConvolution.so/dll
できるようになりました。 ライブラリには、Python ベースのバイナリ畳み込み演算子よりも優れたパフォーマンスを発揮する最適化されたバイナリ畳み込み演算子が含まれています。 ビルドでハライドを有効にするには、ビルドを開始する前に 、ハライドリリース をダウンロードし、環境バリバリを設定 HALIDE_PATH
してください。 Linux では、これを有効にするために使用 ./configure --with-halide[=directory]
できます。 この機能の使用方法の詳細については、 How_to_use_network_optimizationを参照してください。