Dela via


API för CNTK-bibliotek

CNTK tillhandahåller bibliotek i Python, C++ för nätverkssammansättning och utbildning samt för modellutvärdering. Den tillhandahåller även bibliotek i C#/.NET och Java för att få åtkomst till CNTK-modellutvärderingsanläggningarna.

Python API

CNTK Python API består av abstraktioner för modelldefinition och beräkning, inlärningsalgoritmer, dataläsning och distribuerad träning.

  • Flexibilitet och komprimering: Dessa abstraktioner består av både flexibilitet och koncishet vid definition och träning av godtyckliga neurala nätverk.
  • Effektiva datagränssnitt: Enkla men lätta datagränssnitt gör det möjligt för användare att effektivt mata in data i form av interna numpy-matriser till beräkningsmotorn.
  • Inbyggda dataläsare: CNTK:s inbyggda optimerade och skalbara dataläsare för bild-, textformat- och tal-HTK-dataformat är också tillgängliga från Python-API:erna för att underlätta direkt träning med befintliga data utan att användarna behöver skriva någon dataläsningskod.
  • Mycket skalbar inlärning: API:et exponerar CNTK:s mycket skalbara distribuerade träningsfunktioner (parallelliseringsalgoritmer som 1-bitars SGD). Det distribuerade träningsexemplet illustrerar API:et för träningsparallellisering.
  • Koncis nätverksdefinition: API:et innehåller ett bibliotek med hög nivå som möjliggör koncisa definitioner av avancerade neurala nätverk, inklusive upprepningar som liknar CNTK V1. Verktygslådan stöder representation av återkommande modeller i symbolisk form som cykler i det neurala nätverket i stället för att kräva statisk avregistrering av upprepningsstegen. Detta resulterar i mycket mer allmän, koncis och effektiv representation och körning av återkommande neurala nätverk.

Alla api-abstraktioner för kärnberäkning, inlärning och dataläsning i CNTK Python-API:et är mycket enkla att utökningsbara från både Python och C++ så att användarna enkelt kan implementera nya operatorer, elever och dataläsare som fritt skapar med de inbyggda faciliteterna i biblioteket.

API:et introducerar nya protokollbuffertar baserade modell serialisering format som stöder bakåt och uppåt kompatibilitet för sparade modeller.

C++ API

CNTK-bibliotekets C++ API exponerar CNTK:s kärnberäkning, neurala nätverkssammansättning & träning, effektiv dataläsning och skalbara modellträningsanläggningar för utvecklare. C++-API:erna är fullt tillgängliga för både modellträning och utvärdering, vilket gör att både träning och modell kan drivas från intern kod. Detta gör att din interna kod kan justera onlinemodellen med hjälp av nya data som en del av en utvärderingsbegäran (t.ex. onlineinlärning).

För närvarande är den bästa källan till API-dokumentationen infogad i API-huvudfilen (CNTKLibrary.h) som innehåller den fullständiga C++ API-definitionen. API-huvudfilerna ingår också i det binära versionspaketet under katalogen Inkludera.

C#/.NET API

Det hanterade API:et för CNTK-bibliotek exponerar tränings- och utvärderingsrelaterade API:er för utvecklare som använder C# eller andra .NET-språk. Det tillhandahålls som NuGet-paket. NuGet-paketet CNTK. CPUOnly är endast för cpu-enheter och CNTK. GPU stöder både CPU och NVIDIA GPU.

Mer information om det hanterade API:et för CNTK-bibliotek finns på sidan hanterat API för CNTK-bibliotek .

Det finns flera Eval-exempel i CNTKLibraryEvalExamples.sln-projektet som visar hur du utvärderar en modell i C#.

Träningsexempel med C#-API finns i CNTKLibraryCSharpTrainingExamples.sln

Java API (experimentellt)

CNTK Java API stöder modellutvärdering i Java. Det här API:et är fortfarande experimentellt och kan komma att ändras. Den tillhandahålls som en jar-fil (cntk.jar) som kan ingå i Java-projekt.

Se Windows - och Linux-instruktioner för hur du använder Java-API:et.

Java-exemplet visar hur du utvärderar en modell i Java.