次の方法で共有


Windowsの EvalDLL 評価

Windows上の EvalDll ライブラリは、C++ ライブラリと C# ライブラリの両方として提供されます。 nuget.org では、NuGetパッケージも利用できます。Visual Studio 2015 Update 3 が必要であり、プロジェクト プロパティのターゲット プラットフォームは X64 である必要があることに注意してください。

EvalDll ライブラリの使用

EvalDll ライブラリを使用すると、CPU でのプログラムによるモデル評価が可能になります (GPU はサポートされていません)。
この DLL の使用パターンは次のとおりです。

  1. インポート ライブラリを Cntk.Eval-<VERSION>.lib アプリケーションにリンクします。 正しいファイル名を使用していることを確認します。この記事の先頭を参照してください。
  2. 評価ヘッダー ファイル "Eval.h" を含める
  3. モデルのデータ型 (float または double) に固有の評価エンジンのインスタンスを取得します。
  4. 評価エンジンでモデルを読み込む (またはネットワークを作成する)。
  5. モデルに対していくつかの入力を評価し、対応する出力を取得します。
  6. 完了したら、モデルを破棄します。

EvalDll によって提供される C++ API の詳細については、 EvalDll C++ API のページを参照してください。

Examples/Evaluation/LegacyEvalDll/CPPEvalClient フォルダーにある CPPEvalClient プログラムは、この評価インターフェイスの使用方法を示しています。 例をビルドして実行する方法については 、EvalDll の例 に関するページを参照してください。

EvalDll C# ライブラリの使用

CNTKは、.Net という名前Cntk.Eval.Wrapperのマネージド (.Net) ライブラリ ラッパーを提供します。 このライブラリは、ネイティブ EvalDll ライブラリをラップし、マネージド インターフェイスを公開します。 このインターフェイスには、便利なメソッドがいくつか追加されたネイティブ インターフェイスと同じ機能が用意されています。 ネイティブの対応するライブラリと同様に、このライブラリは CPU を使用してのみ評価を実行できます (GPU は使用されません)。 ライブラリは CLI/C++ で記述されているため、.Net (C#など) とネイティブ C++ 側の間のブリッジが形成されます。

EvalWrapper.DLLによって提供されるマネージド API の詳細については、 EvalDll マネージ API のページを参照してください。

マネージド ラッパーの使用パターンは単純です。

using Microsoft.MSR.CNTK.Extensibility.Managed;
...
try
{
    using (var model = new IEvaluateModelManagedF())
    {
        // Load model
        model.CreateNetwork(...);
        model.Evaluate(...);
    }
}
catch (CNTKException ex)
{
...
}
catch (Exception ex)
{
...
}

CSEvalClient プロジェクト内の C# でプログラムによるCNTK モデル評価を実行するがいくつかあります。 例をビルドして実行する方法については 、EvalDll の例 に関するページを参照してください。

NuGet パッケージ

現在、nuget.org (CNTK を検索する) には、CNTK評価ライブラリ (MKL のみを使用する CPU) のデバッグとリリースのネイティブ バージョンとマネージド バージョンの両方を提供するNuGet パッケージがあります。 NuGetを使用すると、CNTK Eval NuGetを .Net または Win32 プロジェクトに追加し、API を呼び出すだけです。 CNTKとNuGetの使用を開始する方法の詳細については、「NuGet パッケージ」ページを参照してください。

NuGetパッケージを使用しない場合は、プロジェクトへの参照として追加Cntk.Eval.Wrapper-<VERSION>.dllできます。 この場合、DLL への Cntk.Eval.Wrapper パスとその 依存関係 が、アプリケーションの DLL の検索パスに含まれていることを確認してください。

Windows アプリケーションでの EvalDll ライブラリの配布

EvalDll では、アプリケーションを実行するシステムに Visual Studio 2015 のVisual C++ 再頒布可能パッケージ パッケージをインストールする必要があります。 また、プロジェクト プロパティのターゲット プラットフォームは X64 にする必要があります。

このページでは、バイナリ ファイルの名前CNTK方法について説明します。

所有するアプリケーションで EvalDll ライブラリを使用している場合は、次の DLL をアプリケーションと共に配布する必要があります。

  • Cntk.Eval-<VERSION>.dll
  • Cntk.Eval.Wrapper-<VERSION>.dll
  • Cntk.Math-<VERSION>.dll
  • libiomp5md.dll
  • mklml.dll

これらの DLL はすべて、CNTK バイナリ リリース バージョンにあります。「CNTK リリース」ページを参照してください。