EvalDLL C++ API

데이터 판독기 또는 데이터 파일 없이 모델을 평가하는 데 사용할 수 있는 네이티브 인터페이스가 있습니다. 이 인터페이스는 각각 Windows DLL 내의 Cntk.Eval C++와 libCntk.Eval Linux에서 구현됩니다. DLL은 Cntk.Eval Windows 어셈블리(관리되는 계층을 제공)에서도 사용됩니다EvalWrapper.

네이티브 인터페이스 이름은 다음과 같습니다.

template <typename ElemType> class IEvaluateModel

요소 형식(float또는double)은 어디에 ElemType 있나요?

이 인터페이스는 다음 메서드를 제공합니다.


void Init(const std::string& config)

이 메서드는 지정된 구성 파일을 사용하여 평가 엔진을 초기화합니다. 구성 파일의 항목은 구문 분석되고 평가 엔진에 할당되지만 이 호출 내에 네트워크가 만들어지지 않습니다. 또한 구성 파일에 이 속성1numCPUThreads 대한 다른 값이 포함되지 않는 한 이 메서드는 속성을 기본값으로 설정합니다.


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)

이 메서드는 평가 호출을 위해 네트워크를 준비합니다.

  • 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()

네트워크를 만드는 동안 할당된 리소스를 해제합니다.


클라이언트에서 사용할 수 있는 이 인터페이스의 구현에는 다음 두 가지가 있습니다.

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

그리고

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

예제

Examples/Evaluation/LegacyEvalDll/CPPEvalClient 폴더에 있는 CPPEvalClient 프로그램은 이 평가 인터페이스의 사용을 보여 줍니다.