Sdílet prostřednictvím


Přehled vyhodnocení EvalDLL

Knihovna EvalDLL poskytuje metody k vyhodnocení předem natrénovaných CNTK modelů uložených ve formátu CNTK model-v1. Je k dispozici v jazyce C++ (pouze v Windows a Linuxu) a C# (pouze v Windows).

Vyhodnocení různých datových typů a vrstev

Knihovna Eval v současné době podporuje vektory pro vstup a výstup. To znamená, že vstupní vektor musí odpovídat vstupním uzlům v modelu (funkce). Některé modely se natrénují pomocí obrázků (např. CIFAR-10), ale tyto obrázky se vektorizují nejprve a pak se do sítě přidají. Například datová sada CIFAR-10 se skládá z malých obrázků (32 pixelů o 32 pixelů) nebo hodnot RGB. I když každá z nich je trojrozměrná souřadnice (šířka, výška, barva), data se vektorizují do 1rozměrného vektoru. Proto je důležité před vyhodnocením převést nezpracovaná data do formátu vektoru. Tento převod by měl být proveden stejným způsobem jako při připojení k síti pro trénování.

Další informace, zejména při práci s obrázky, najdete na stránce Vyhodnotit transformace obrázků .

I když již vytrénovaný model má konkrétní sadu výstupních uzlů, je někdy žádoucí získat hodnoty jiných uzlů během vyhodnocení (např. skryté vrstvy). To je možné pomocí programového rozhraní, další informace najdete na stránce Vyhodnotit skryté vrstvy .

Aktuální omezení

  • Jednovláknové vyhodnocení. Knihovna CNTK vyhodnocení EvalDll a rozšířením spravované knihovny EvalWrapper jsou jednovláknové a jedno opětovné vytvoření. Souběžné vyhodnocení jedné instance modelu se nepodporuje. Je však možné načíst několik instancí modelu a vyhodnotit každý model jedním vláknem. To umožňuje paralelní vyhodnocení více modelů, ale každý model s jedním vláknem.
  • Jakýkoli program, který propojuje předdefinované zkušební knihovny (Cntk.Evala Cntk.Eval.Wrapper knihovny DLL v Windows a libCntk.Eval v Linuxu) binárního balíčku CNTK, by měl používat stejnou verzi kompilátoru, jakou se používá k sestavení předdefinovaných knihoven.