Delen via


CNTK-bibliotheek-API

CNTK biedt bibliotheken in Python, C++ voor netwerksamenstelling en -training, evenals voor modelevaluatie. Het biedt ook bibliotheken in C#/.NET en Java voor toegang tot de CNTK-modelevaluatiefaciliteiten.

Python-API

CNTK Python API bestaat uit abstracties voor modeldefinitie en berekening, leeralgoritmen, gegevens lezen en gedistribueerde training.

  • Flexibiliteit en compactheid: deze abstracties zijn orthogonaal samengesteld en bieden zowel flexibiliteit als beknoptheid in de definitie en training van willekeurige neurale netwerken.
  • Efficiënte gegevensinterfaces: met eenvoudige maar lichtgewicht gegevensinterfaces kunnen gebruikers efficiënt gegevens in de vorm van systeemeigen numpy-matrices invoeren in de berekeningsengine.
  • Ingebouwde gegevenslezers: CNTK's ingebouwde geoptimaliseerde en schaalbare gegevenslezers voor afbeeldings-, tekst- en spraak-HTK-gegevensindelingen zijn ook beschikbaar via de Python-API's om eenvoudig rechtstreeks te trainen met bestaande gegevens zonder dat gebruikers code voor het lezen van gegevens hoeven te schrijven.
  • Zeer schaalbaar leren: De API maakt de zeer schaalbare gedistribueerde trainingsmogelijkheden van CNTK beschikbaar (parallellisatiealgoritmen zoals 1-bits SGD). Het voorbeeld van gedistribueerde training illustreert de trainingsparallellisatie-API.
  • Beknopte netwerkdefinitie: De API bevat een bibliotheek met lagen op hoog niveau die beknopte geavanceerde definitie van neurale netwerken mogelijk maakt, inclusief terugkeerpatronen die vergelijkbaar zijn met CNTK V1. De toolkit ondersteunt de weergave van terugkerende modellen in symbolische vorm als cycli in het neurale netwerk, in plaats van het statisch uitschrijven van de terugkeerstappen te vereisen. Dit resulteert in een veel algemenere, beknoptere en efficiëntere weergave en uitvoering van terugkerende neurale netwerken.

Alle essentiële abstracties van de API voor berekeningen, leren en gegevenslezen in de CNTK Python-API zijn zeer eenvoudig uitbreidbaar vanuit zowel Python als C++, zodat gebruikers eenvoudig nieuwe operators, cursisten en gegevenslezers kunnen implementeren die vrijelijk zijn samengesteld met de ingebouwde faciliteiten van de bibliotheek.

De API introduceert een nieuwe modelserialisatie-indeling op basis van protocolbuffers , die ondersteuning biedt voor compatibiliteit met eerdere en opwaartse versies voor opgeslagen modellen.

C++-API

De C++-API van de CNTK-bibliotheek maakt cntk's belangrijkste rekenkundige, neurale netwerksamenstelling & training, efficiënt lezen van gegevens en schaalbare modeltrainingsfaciliteiten voor ontwikkelaars beschikbaar. De C++-API's zijn volledig uitgerust voor zowel modeltraining als evaluatie, waardoor zowel training als model dienen kan worden gebaseerd op systeemeigen code. Hierdoor kan uw systeemeigen code het onlinemodel afstemmen met behulp van nieuwe gegevens als onderdeel van een evaluatieaanvraag (dat wil zeggen online leren).

Momenteel is de beste bron van API-documentatie inline in het API-headerbestand (CNTKLibrary.h) dat de volledige C++-API-definitie bevat. De API-headerbestanden zijn ook opgenomen in het binaire releasepakket onder de map Opnemen.

C#/.NET API

De beheerde API van de CNTK-bibliotheek maakt trainings- en evaluatie-gerelateerde API's beschikbaar voor ontwikkelaars die C# of andere .NET-talen gebruiken. Het wordt geleverd als NuGet-pakketten. Het NuGet-pakket CNTK. CPUOnly is alleen voor CPU-apparaten en de CNTK. GPU ondersteunt zowel CPU als NVIDIA GPU.

Raadpleeg de pagina Beheerde API voor cntk-bibliotheek voor meer informatie over de beheerde API van de CNTK-bibliotheek .

Er zijn verschillende Eval-voorbeelden in het CNTKLibraryEvalExamples.sln-project laat zien hoe u een model kunt evalueren in C#.

Trainingsvoorbeelden met C#-API vindt u in CNTKLibraryCSharpTrainingExamples.sln

Java-API (experimenteel)

De CNTK Java-API ondersteunt modelevaluatie in Java. Deze API is nog steeds experimenteel en kan worden gewijzigd. Het wordt geleverd als een JAR-bestand (cntk.jar) dat kan worden opgenomen in Java-projecten.

Raadpleeg de instructies voor Windows en Linux voor het gebruik van de Java-API.

In het Java-voorbeeld ziet u hoe u een model in Java evalueert.