Sdílet prostřednictvím


Rozhraní API knihovny CNTK

CNTK poskytuje knihovny v Pythonu a C++ pro sestavování a trénování sítě a také pro vyhodnocení modelů. Poskytuje také knihovny v C#/.NET a Javě pro přístup k testovacím zařízením modelu CNTK.

Rozhraní API pro Python

Rozhraní PYTHON API CNTK se skládá z abstrakcí pro definici modelu a výpočetních prostředků, algoritmů učení, čtení dat a distribuovaného trénování.

  • Flexibilita a kompaktnost: Tyto abstrakce orthogonálně komponují a nabízejí flexibilitu a stručnost při definování a trénování libovolných neurálních sítí.
  • Efektivní datová rozhraní: Jednoduchá, ale přesto lehká datová rozhraní umožňují uživatelům efektivně dodávat data ve formě nativních polí numpy do výpočetního modulu.
  • Integrované čtečky dat: Integrované a škálovatelné čtečky dat CNTK pro formáty obrázků, textu a řeči HTK jsou také k dispozici v rozhraních Python API pro snadné přímé trénování s existujícími daty, aniž by uživatelé museli vytvářet kód pro čtení dat.
  • Vysoce škálovatelné učení: Rozhraní API zpřístupňuje vysoce škálovatelné distribuované trénovací schopnosti CNTK (algoritmy paralelizace, jako jsou 1bitové SGD). Příklad distribuovaného trénování znázorňuje rozhraní API paralelizace trénování.
  • Stručná definice sítě: Rozhraní API obsahuje knihovnu vrstev vysoké úrovně, která umožňuje stručnou definici pokročilých neurálních sítí včetně opakování podobných CNTK v1. Sada nástrojů podporuje reprezentaci opakujících se modelů v symbolické podobě jako cyklů v neurální síti místo statického zrušení registrace kroků opakování. Výsledkem je mnohem obecnější, stručnější a efektivnější reprezentace a provádění rekurentních neurálních sítí.

Všechny základní výpočty, učení a abstrakce rozhraní API pro čtení dat v rozhraní PYTHON API CNTK jsou velmi snadno rozšiřitelné jak z Pythonu, tak z jazyka C++, což uživatelům umožňuje snadno implementovat nové operátory, žáky a čtečky dat, které volně tvoří pomocí integrovaných zařízení knihovny.

Rozhraní API zavádí nový formát serializace modelu založený na vyrovnávací paměti protokolu , který podporuje zpětnou a vyšší kompatibilitu uložených modelů.

Rozhraní API C++

Rozhraní C++ API knihovny CNTK zpřístupňuje základní výpočetní, neurální složení sítě cntk & trénování, efektivní čtení dat a škálovatelné trénování modelů pro vývojáře. Rozhraní API jazyka C++ jsou plně vybavená jak pro trénování modelu, tak pro vyhodnocení, což umožňuje řídit trénování i model sloužící z nativního kódu. To vašemu nativnímu kódu umožní vyladit online model pomocí nových dat v rámci žádosti o vyhodnocení (tj. online učení).

V současné době je nejlepším zdrojem dokumentace k rozhraní API vložený soubor hlaviček rozhraní API (CNTKLibrary.h), který obsahuje úplnou definici rozhraní API jazyka C++. Hlavičkové soubory rozhraní API jsou také součástí binárního balíčku verze v adresáři Include.

C#/.NET API

Spravované rozhraní API knihovny CNTK zpřístupňuje rozhraní API související s trénováním a vyhodnocením pro vývojáře používající jazyk C# nebo jiné jazyky .NET. Poskytuje se jako balíčky NuGet. Balíček NuGet CNTK. CpuOnly je určen pouze pro zařízení s procesorem a cntk. GPU podporuje procesor i NVIDIA GPU.

Podrobnosti týkající se spravovaného rozhraní API knihovny CNTK najdete na stránce spravovaného rozhraní API knihovny CNTK .

V projektu CNTKLibraryEvalExamples.sln je několik příkladů vyhodnocení modelu v jazyce C#.

Příklady trénování s využitím rozhraní API jazyka C# najdete v CNTKLibraryCSharpTrainingExamples.sln

Rozhraní Java API (experimentální)

Rozhraní JAVA API CNTK podporuje vyhodnocení modelů v Javě. Toto rozhraní API je stále experimentální a může se změnit. Poskytuje se jako soubor JAR (cntk.jar), který je možné zahrnout do projektů v Javě.

Informace o používání rozhraní Java API najdete v pokynech pro Windows a Linux .

Příklad Javy ukazuje, jak vyhodnotit model v Javě.