Compartilhar via


API da Biblioteca CNTK

O CNTK fornece bibliotecas em Python, C++ para composição e treinamento de rede, bem como para avaliação de modelo. Ele também fornece bibliotecas em C#/.NET e Java para acessar as instalações de avaliação do modelo CNTK.

API de Python

A API python do CNTK consiste em abstrações para definição de modelo e computação, algoritmos de aprendizado, leitura de dados e treinamento distribuído.

  • Flexibilidade e compactação: essas abstrações compõem ortogonalmente oferecendo flexibilidade e concisidade na definição e no treinamento de redes neurais arbitrárias.
  • Interfaces de dados eficientes: interfaces de dados simples, mas leves, permitem que os usuários alimentem dados com eficiência na forma de matrizes numpy nativas para o mecanismo de computação.
  • Leitores de dados internos: os leitores de dados internos otimizados e escalonáveis do CNTK para formatos de dados de imagem, formato de texto e HTK de fala também estão disponíveis nas APIs do Python para facilitar o treinamento direto com os dados existentes sem que os usuários precisem criar nenhum código de leitura de dados.
  • Aprendizado altamente escalonável: a API expõe os recursos de treinamento distribuído altamente escalonáveis do CNTK (algoritmos de paralelização, como SGD de 1 bit). O exemplo de treinamento distribuído ilustra a API de paralelização de treinamento.
  • Definição de rede concisa: a API inclui uma biblioteca de camadas de alto nível que permite a definição concisa de redes neurais avançadas, incluindo recorrências semelhantes ao CNTK V1. O kit de ferramentas dá suporte à representação de modelos recorrentes em formato simbólico como ciclos na rede neural, em vez de exigir o cancelamento estático das etapas de recorrência. Isso resulta em uma representação e execução muito mais geral, concisa e eficiente de redes neurais recorrentes.

Todas as abstrações principais da API de computação, aprendizado e leitura de dados na API CNTK do Python são facilmente extensíveis do Python e do C++ permitindo que os usuários implementem facilmente novos operadores, alunos e leitores de dados que compõem livremente com as instalações internas da biblioteca.

A API apresenta o novo formato de serialização de modelo baseado em Buffers de Protocolo que dá suporte à compatibilidade com versões anteriores e superiores para modelos salvos.

API de C++

A API C++ da Biblioteca CNTK expõe a composição de rede neural e computacional principal do CNTK & treinamento, leitura eficiente de dados e recursos de treinamento de modelo escalonáveis para desenvolvedores. As APIs do C++ são totalmente apresentadas para treinamento de modelo, bem como avaliação, permitindo que o treinamento e o serviço de modelo sejam orientados do código nativo. Isso permite que seu código nativo ajuste o modelo online usando novos dados como parte de uma solicitação de avaliação (ou seja, aprendizado online).

Atualmente, a melhor fonte da documentação da API está embutida no arquivo de cabeçalho da API (CNTKLibrary.h) que contém a definição completa da API C++. Os arquivos de cabeçalho da API também estão incluídos no pacote de versão binária no diretório Incluir.

C#/.NET API

A API Gerenciada da Biblioteca CNTK expõe APIs relacionadas a Treinamento e Avaliação para desenvolvedores que usam C# ou outras linguagens .NET. Ele é fornecido como pacotes NuGet. O CNTK do pacote NuGet. CPUOnly é apenas para dispositivos CPU e CNTK. A GPU dá suporte à CPU e à GPU NVIDIA.

Para obter detalhes sobre a API gerenciada da Biblioteca CNTK, consulte a página da API Gerenciada da Biblioteca CNTK .

Há vários exemplos de avaliação dentro do projeto CNTKLibraryEvalExamples.sln mostra como avaliar um modelo em C#.

Exemplos de treinamento usando a API C# podem ser encontrados dentro de CNTKLibraryCSharpTrainingExamples.sln

API Java (Experimental)

A API Java do CNTK dá suporte à avaliação de modelo em Java. Essa API ainda é experimental e está sujeita a alterações. Ele é fornecido como um arquivo jar (cntk.jar) que pode ser incluído em projetos Java.

Consulte as instruções do Windows e do Linux para saber como usar a API Java.

O exemplo de Java mostra como avaliar um modelo em Java.