次の方法で共有


EvalDLL C++ API

データ リーダーまたはデータ ファイルを必要とせずにモデルを評価するために使用できるネイティブ インターフェイスがあります。 このインターフェイスは、Windowsの DLL 内の Cntk.Eval C++ と libCntk.Eval Linux でそれぞれ実装されます。 Cntk.Evalまた、DLL は、WindowsのEvalWrapperアセンブリ (マネージド レイヤーを提供) でも使用されます。

ネイティブ インターフェイス名は次のとおりです。

template <typename ElemType> class IEvaluateModel

要素の型 (floatまたは ) はどこにありますか。ElemTypedouble

このインターフェイスには、次のメソッドが用意されています。


void Init(const std::string& config)

このメソッドは、指定された構成ファイルを使用して評価エンジンを初期化します。 構成ファイルからのエントリは解析され、評価エンジンに割り当てられますが、この呼び出し内にネットワークは作成されません。 さらに、構成ファイルにこのプロパティ1の別のnumCPUThreads値が含まれている場合を除き、このメソッドは既定でプロパティを設定します。


void CreateNetwork(const std::string& networkDescription)

このメソッドは、構成ファイル内のネットワーク記述からネットワークを構築するか、属性が modelPath 指定されている場合は、ディスクからモデルを読み込みます。

  • networkDescription : modelPath 属性の NetworkBuilder エントリを介して、ネットワークの説明が含まれます。

void GetNodeDimensions(std::map<std::wstring, size_t>& dimensions, NodeGroup nodeGroup)

このメソッドは、ディメンションのディクショナリを塗りつぶし、各ディメンション 項目でレイヤー名 (キー) をディメンション サイズにマッピングします。 ノード グループは、列挙によって NodeGroup 定義されます。

    enum NodeGroup     
    {      
        nodeInput,  // an input node     
        nodeOutput, // an output node     
        nodeSpecified     
    };

void StartEvaluateMinibatchLoop(const std::wstring& outputNodeName)

このメソッドは、Evaluate 呼び出し用にネットワークを準備します。

  • outputNodeName : 評価されるノードの名前

void Evaluate(std::map<std::wstring, std::vector<ElemType>*>& inputs, std::map<std::wstring, std::vector<ElemType>*>& outputs)

このメソッドは、指定された入力を使用してネットワークを評価し、複数の出力レイヤーを取得します。

  • inputs : 入力レイヤー名を、ネットワークへの入力として使用する値にマッピングするディクショナリ。
  • outputs : 出力レイヤー名をネットワークから取得する値にマッピングするディクショナリ。

void Evaluate(std::map<std::wstring, std::vector<ElemType>*>& outputs)`

このメソッドは、複数の出力レイヤーを取得するネットワークを評価します。 評価は、出力ノードを評価するシングルフォワード パスです。

  • outputs : 出力レイヤー名をネットワークから取得する値にマッピングするディクショナリ。

void Destroy()

ネットワーク作成時に割り当てられたリソースを解放します。


クライアントで使用できるこのインターフェイスの実装は 2 つあります。

IEvaluateModelF : IEvaluateModel<float> // Assumes data elements of type float

および

IEvaluateModelD : IEvaluateModel<double> // Assumes data elements of type double

Examples/Evaluation/LegacyEvalDll/CPPEvalClient フォルダーにある CPPEvalClient プログラムは、この評価インターフェイスの使用方法を示しています。