Microsoft Cognitive Toolkit (CNTK) - Introdução

Neste capítulo, aprenderemos o que é CNTK, suas características, diferença entre sua versão 1.0 e 2.0 e importantes destaques da versão 2.7.

O que é o Microsoft Cognitive Toolkit (CNTK)?

O Microsoft Cognitive Toolkit (CNTK), anteriormente conhecido como Computational Network Toolkit, é um kit de ferramentas gratuito, de código aberto e de nível comercial que nos permite treinar algoritmos de aprendizagem profunda para aprender como o cérebro humano. Isso nos permite criar alguns sistemas populares de aprendizado profundo, comofeed-forward neural network time series prediction systems and Convolutional neural network (CNN) image classifiers.

Para um desempenho ideal, suas funções de estrutura são escritas em C ++. Embora possamos chamar sua função usando C ++, a abordagem mais comumente usada para o mesmo é usar um programa Python.

Recursos do CNTK

A seguir estão alguns dos recursos e capacidades oferecidos na versão mais recente do Microsoft CNTK:

Componentes integrados

  • O CNTK possui componentes integrados altamente otimizados que podem lidar com dados multidimensionais densos ou esparsos de Python, C ++ ou BrainScript.

  • Podemos implementar CNN, FNN, RNN, normalização em lote e sequência a sequência com atenção.

  • Ele nos fornece a funcionalidade para adicionar novos componentes principais definidos pelo usuário na GPU do Python.

  • Ele também fornece ajuste automático de hiperparâmetros.

  • Podemos implementar aprendizagem por reforço, redes adversárias gerativas (GANs), aprendizagem supervisionada e não supervisionada.

  • Para conjuntos de dados massivos, o CNTK possui leitores otimizados integrados.

Uso de recursos de forma eficiente

  • O CNTK nos fornece paralelismo com alta precisão em várias GPUs / máquinas via SGD de 1 bit.

  • Para caber nos maiores modelos de memória GPU, ele fornece compartilhamento de memória e outros métodos integrados.

Expresse nossas próprias redes facilmente

  • CNTK tem APIs completas para definir sua própria rede, alunos, leitores, treinamento e avaliação de Python, C ++ e BrainScript.

  • Usando CNTK, podemos avaliar facilmente modelos com Python, C ++, C # ou BrainScript.

  • Ele fornece APIs de alto e baixo nível.

  • Com base em nossos dados, ele pode moldar automaticamente a inferência.

  • Ele tem loops de Rede Neural Recorrente Simbólica (RNN) totalmente otimizado.

Medindo o desempenho do modelo

  • O CNTK fornece vários componentes para medir o desempenho das redes neurais que você constrói.

  • Gera dados de registro do seu modelo e do otimizador associado, que podemos usar para monitorar o processo de treinamento.

Versão 1.0 vs Versão 2.0

A tabela a seguir compara o CNTK Versão 1.0 e 2.0:

Versão 1.0 Versão 2.0
Foi lançado em 2016. É uma reescrita significativa da versão 1.0 e foi lançada em junho de 2017.
Ele usava uma linguagem de script proprietária chamada BrainScript. Suas funções de framework podem ser chamadas usando C ++, Python. Podemos carregar facilmente nossos módulos em C # ou Java. BrainScript também é compatível com a versão 2.0.
Ele roda em sistemas Windows e Linux, mas não diretamente no Mac OS. Também é executado em sistemas Windows (Win 8.1, Win 10, Server 2012 R2 e posterior) e Linux, mas não diretamente no Mac OS.

Destaques importantes da versão 2.7

Version 2.7é a última versão principal lançada do Microsoft Cognitive Toolkit. Tem suporte total para ONNX 1.4.1. A seguir estão alguns destaques importantes desta última versão lançada do CNTK.

  • Suporte total para ONNX 1.4.1.

  • Suporte para CUDA 10 para sistemas Windows e Linux.

  • Suporta loop avançado de Redes Neurais Recorrentes (RNN) na exportação ONNX.

  • Pode exportar mais de modelos de 2 GB no formato ONNX.

  • Ele suporta FP16 na ação de treinamento da linguagem de script BrainScript.