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í:
- 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. - Zahrnutí souboru hlavičky vyhodnocení "Eval.h"
- Získejte instanci vyhodnocovaného modulu specifického pro datový typ modelu (
float
nebodouble
). - Načtěte model (nebo vytvořte síť) do vyhodnocovacího modulu.
- Vyhodnoťte určitý vstup pro model a získejte odpovídající výstup.
- 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.