CNTK-Bibliotheks-API
CNTK stellt Bibliotheken in Python, C++ für die Netzwerkkomposition und das Training sowie für die Modellauswertung bereit. Außerdem werden Bibliotheken in C#/.NET und Java für den Zugriff auf die CNTK-Modellauswertungsfunktionen bereitgestellt.
Python-API
Die CNTK-Python-API besteht aus Abstraktionen für Modelldefinition und Compute, Lernalgorithmen, Datenlese und verteiltes Training.
- Flexibilität und Kompaktheit: Diese Abstraktionen bilden orthogonal und bieten sowohl Flexibilität als auch Prägnanz bei der Definition und dem Training beliebiger neuronaler Netze.
- Effiziente Datenschnittstellen: Einfache, aber dennoch leichte Datenschnittstellen ermöglichen es Benutzern, Daten in Form nativer Numpy-Arrays effizient an die Compute-Engine zu feeden.
- Integrierte Datenleser: Die integrierten optimierten und skalierbaren Datenleser für Bild-, Textformat- und Sprach-HTK-Datenformate von CNTK sind auch über die Python-APIs verfügbar, um das direkte Training mit vorhandenen Daten zu erleichtern, ohne dass Benutzer Code zum Lesen von Daten erstellen müssen.
- Hochgradig skalierbares Lernen: Die API macht die hochgradig skalierbaren verteilten Trainingsfunktionen (Parallelisierungsalgorithmen wie 1-Bit SGD) von CNTK verfügbar. Das Beispiel für verteiltes Training veranschaulicht die Trainingsparallelisierungs-API.
- Präzise Netzwerkdefinition: Die API enthält eine allgemeine Ebenenbibliothek , die präzise erweiterte Definition neuronaler Netze ermöglicht, einschließlich Wiederholungen ähnlich CNTK V1. Das Toolkit unterstützt die Darstellung wiederkehrender Modelle in symbolischer Form als Zyklen im neuronalen Netzwerk, anstatt die statische Aufrollung der Wiederholungsschritte zu erfordern. Dies führt zu einer viel allgemeineren, präziseren und effizienteren Darstellung und Ausführung wiederkehrender neuronaler Netze.
Alle grundlegenden Berechnungen, Lern- und Datenlese-API-Abstraktionen in der CNTK-Python-API sind sehr einfach von Python und C++ erweiterbar, sodass Benutzer problemlos neue Operatoren, Lernende und Datenleser implementieren können, die sich frei mit den integrierten Funktionen der Bibliothek zusammensetzen.
Die API führt ein neues auf Protokollpuffern basierendes Modellserialisierungsformat ein, das abwärts- und aufwärtskompatibilität für gespeicherte Modelle unterstützt.
C++-API
Die CNTK-Bibliotheks-C++-API macht die kernhaften computergestützten, neuronalen Netzwerkzusammensetzungen von CNTK & Training, effizientes Lesen von Daten und skalierbare Modelltrainingsfunktionen für Entwickler verfügbar. Die C++-APIs sind sowohl für das Modelltraining als auch für die Auswertung vollständig ausgestattet, sodass sowohl das Training als auch die Modellbereitstellung aus nativem Code gesteuert werden können. Dadurch kann Ihr nativer Code das Onlinemodell mithilfe neuer Daten im Rahmen einer Auswertungsanforderung (z. B. Onlinelernen) optimieren.
Die beste Quelle der API-Dokumentation ist derzeit inline in der API-Headerdatei (CNTKLibrary.h), die die vollständige C++-API-Definition enthält. Die API-Headerdateien sind auch im binären Releasepaket unter dem Verzeichnis Include enthalten.
C#/.NET-API
Die verwaltete API der CNTK-Bibliothek macht apIs im Zusammenhang mit Training und Auswertung für Entwickler verfügbar, die C# oder andere .NET-Sprachen verwenden. Sie wird als NuGet-Pakete bereitgestellt. Das NuGet-Paket CNTK. CPUOnly ist nur für CPU-Geräte und das CNTK vorgesehen. GPU unterstützt sowohl CPU als auch NVIDIA GPU.
Ausführliche Informationen zur verwalteten API der CNTK-Bibliothek finden Sie auf der Seite Verwaltete API für die CNTK-Bibliothek .
Es gibt mehrere Eval-Beispiele innerhalb des CNTKLibraryEvalExamples.sln Projekt zeigt, wie ein Modell in C# ausgewertet wird.
Trainingsbeispiele mit der C#-API finden Sie in CNTKLibraryCSharpTrainingExamples.sln
Java-API (experimentell)
Die CNTK-Java-API unterstützt die Modellauswertung in Java. Diese API ist noch experimentell und kann geändert werden. Sie wird als JAR-Datei (cntk.jar) bereitgestellt, die in Java-Projekte eingeschlossen werden kann.
Informationen zur Verwendung der Java-API finden Sie unter Windows - und Linux-Anweisungen .
Das Java-Beispiel zeigt, wie ein Modell in Java ausgewertet wird.