Microsoft Cognitive Toolkit(CNTK)-はじめに

この章では、CNTKとは何か、その機能、バージョン1.0と2.0の違い、およびバージョン2.7の重要なハイライトについて学習します。

Microsoft Cognitive Toolkit(CNTK)とは何ですか?

以前はComputationalNetworkToolkitとして知られていたMicrosoftCognitive Toolkit(CNTK)は、人間の脳のように学習するための深層学習アルゴリズムをトレーニングできる、無料で使いやすいオープンソースの商用グレードのツールキットです。これにより、次のような人気のあるディープラーニングシステムを作成できます。feed-forward neural network time series prediction systems and Convolutional neural network (CNN) image classifiers

最適なパフォーマンスを得るために、そのフレームワーク関数はC ++で記述されています。C ++を使用してその関数を呼び出すことはできますが、同じために最も一般的に使用されるアプローチは、Pythonプログラムを使用することです。

CNTKの機能

以下は、MicrosoftCNTKの最新バージョンで提供される機能の一部です。

組み込みコンポーネント

  • CNTKには、Python、C ++、またはBrainScriptからの多次元の密または疎データを処理できる高度に最適化された組み込みコンポーネントがあります。

  • CNN、FNN、RNN、バッチ正規化、シーケンスからシーケンスへの実装には注意が必要です。

  • PythonからGPUに新しいユーザー定義のコアコンポーネントを追加する機能を提供します。

  • また、自動ハイパーパラメータ調整も提供します。

  • 強化学習、生成的敵対的ネットワーク(GAN)、教師あり学習、教師なし学習を実装できます。

  • 大規模なデータセットの場合、CNTKには最適化されたリーダーが組み込まれています。

リソースの効率的な使用

  • CNTKは、1ビットSGDを介して、複数のGPU /マシンで高精度の並列処理を提供します。

  • 最大のモデルをGPUメモリに収めるために、メモリ共有やその他の組み込みメソッドを提供します。

独自のネットワークを簡単に表現する

  • CNTKには、Python、C ++、およびBrainScriptからの独自のネットワーク、学習者、リーダー、トレーニングと評価を定義するための完全なAPIがあります。

  • 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で簡単にロードできます。BrainScriptはバージョン2.0でもサポートされています。
WindowsとLinuxの両方のシステムで動作しますが、MacOSでは直接動作しません。 また、Windows(Win 8.1、Win 10、Server 2012 R2以降)とLinuxシステムの両方で実行されますが、MacOSでは直接実行されません。

バージョン2.7の重要なハイライト

Version 2.7は、Microsoft CognitiveToolkitの最後のメインリリースバージョンです。ONNX1.4.1を完全にサポートしています。以下は、この最後にリリースされたバージョンのCNTKのいくつかの重要なハイライトです。

  • ONNX1.4.1の完全サポート。

  • WindowsシステムとLinuxシステムの両方でのCUDA10のサポート。

  • ONNXエクスポートで高度なリカレントニューラルネットワーク(RNN)ループをサポートします。

  • ONNX形式で2GB以上のモデルをエクスポートできます。

  • BrainScriptスクリプト言語のトレーニングアクションでFP16をサポートします。