Windowsの EvalDLL 評価
Windows上の EvalDll ライブラリは、C++ ライブラリと C# ライブラリの両方として提供されます。 nuget.org では、NuGetパッケージも利用できます。Visual Studio 2015 Update 3 が必要であり、プロジェクト プロパティのターゲット プラットフォームは X64 である必要があることに注意してください。
EvalDll ライブラリの使用
EvalDll ライブラリを使用すると、CPU でのプログラムによるモデル評価が可能になります (GPU はサポートされていません)。
この DLL の使用パターンは次のとおりです。
- インポート ライブラリを
Cntk.Eval-<VERSION>.lib
アプリケーションにリンクします。 正しいファイル名を使用していることを確認します。この記事の先頭を参照してください。 - 評価ヘッダー ファイル "Eval.h" を含める
- モデルのデータ型 (
float
またはdouble
) に固有の評価エンジンのインスタンスを取得します。 - 評価エンジンでモデルを読み込む (またはネットワークを作成する)。
- モデルに対していくつかの入力を評価し、対応する出力を取得します。
- 完了したら、モデルを破棄します。
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 リリース」ページを参照してください。