Sdílet prostřednictvím


Vyhodnocení EvalDLL na Windows

Knihovna EvalDll na Windows je poskytována jako knihovna C++ i C#. Balíček NuGet je k dispozici také na nuget.org. Upozorňujeme, že Visual Studio 2015 Update 3 je povinný a cílová platforma ve vlastnosti projektu by měla být X64.

Použití knihovny EvalDll

Knihovna EvalDll umožňuje programové vyhodnocení modelu na procesoru (GPU se nepodporuje).
Vzor použití této knihovny DLL je následující:

  1. Propojte knihovnu importu Cntk.Eval-<VERSION>.lib do aplikace. Ujistěte se, že používáte správný název souboru – podívejte se na začátek tohoto článku.
  2. Zahrnutí souboru hlavičky vyhodnocení "Eval.h"
  3. Získejte instanci vyhodnocovaného modulu specifického pro datový typ modelu (float nebo double).
  4. Načtěte model (nebo vytvořte síť) do vyhodnocovacího modulu.
  5. Vyhodnoťte určitý vstup pro model a získejte odpovídající výstup.
  6. Po dokončení odstraňte model.

Podrobnosti o rozhraní API jazyka C++, které poskytuje EvalDll, najdete na stránce rozhraní API jazyka C++ EvalDll .

Program CPPEvalClient umístěný ve složce Examples/Evaluation/LegacyEvalDll/CPPEvalClient ukazuje použití tohoto zkušebního rozhraní. Informace o sestavení a spuštění příkladů najdete na stránce Příklady EvalDll .

Použití knihovny EvalDll C#

CNTK poskytuje obálku knihovny managed (.Net) s názvem Cntk.Eval.Wrapper. Tato knihovna zabalí nativní knihovnu EvalDll a zveřejňuje spravované rozhraní. Toto rozhraní poskytuje stejné funkce jako nativní rozhraní s přidáním některých metod pohodlí. Stejně jako jeho nativní protějšk může tato knihovna provádět vyhodnocení pouze pomocí procesoru (nepoužívá se žádný GPU). Knihovna je napsaná v rozhraní příkazového řádku/C++ a tvoří tak most mezi .Net (např. C#) a nativní stranou jazyka C++.

Podrobnosti týkající se spravovaného rozhraní API poskytovaného EvalWrapper.DLL najdete na stránce spravovaného rozhraní API EvalDll .

Model použití spravovaného obálky je jednoduchý:

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

Existuje několik příkladů provádění programového vyhodnocení modelu CNTK v jazyce C# v projektu CSEvalClient. Informace o sestavení a spuštění příkladů najdete na stránce Příklady EvalDll .

balíček NuGet

V současné době je k dispozici balíček NuGet na nuget.org (vyhledejte CNTK), který poskytuje nativní i spravované verze pro knihovny pro ladění a vydávání pro knihovny hodnocení CNTK (procesor pouze pomocí MKL). S NuGet je možné jednoduše přidat CNTK Eval NuGet do projektu .Net nebo Win32 a volat rozhraní API. Podrobnosti o tom, jak začít s CNTK a NuGet, najdete na stránce NuGet balíček.

Pokud nechcete používat NuGet Balíček, můžete přidat Cntk.Eval.Wrapper-<VERSION>.dll jako odkaz na projekt. V tomto případě se ujistěte, že cesta k knihovně Cntk.Eval.Wrapper DLL a jeho závislostem níže jsou zahrnuty do cesty hledání knihoven DLL pro vaši aplikaci.

Expediční knihovna EvalDll s vaší aplikací Windows

EvalDll vyžaduje instalaci balíčku Visual C++ Redistributable pro Visual Studio 2015 do systému, ve kterém se bude vaše aplikace spouštět. Cílová platforma v vlastnosti projektu by měla být X64.

Tato stránka popisuje, jak se CNTK binární soubory pojmenovávají.

Pokud vlastní aplikace používá knihovnu EvalDll, musíte tyto knihovny DLL distribuovat do aplikace:

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

Všechny tyto knihovny DLL najdete ve CNTK binární verzi verze, viz stránka CNTK release.