Microsoft Cognitive Toolkit (CNTK) - Введение

В этой главе мы узнаем, что такое CNTK, его особенности, разница между версиями 1.0 и 2.0 и важные особенности версии 2.7.

Что такое Microsoft Cognitive Toolkit (CNTK)?

Microsoft Cognitive Toolkit (CNTK), ранее известный как Computational Network Toolkit, представляет собой бесплатный, простой в использовании набор инструментов коммерческого уровня с открытым исходным кодом, который позволяет нам обучать алгоритмы глубокого обучения, чтобы учиться подобно человеческому мозгу. Это позволяет нам создавать популярные системы глубокого обучения, такие какfeed-forward neural network time series prediction systems and Convolutional neural network (CNN) image classifiers.

Для оптимальной производительности функции его фреймворка написаны на C ++. Хотя мы можем вызывать его функцию с помощью C ++, но наиболее часто используемый подход - это использование программы Python.

Особенности CNTK

Ниже приведены некоторые функции и возможности, предлагаемые в последней версии Microsoft CNTK:

Встроенные компоненты

  • CNTK имеет хорошо оптимизированные встроенные компоненты, которые могут обрабатывать многомерные плотные или разреженные данные из Python, C ++ или BrainScript.

  • Мы можем внимательно реализовать CNN, FNN, RNN, Batch Normalization и Sequence-to-Sequence.

  • Он предоставляет нам возможность добавлять новые определяемые пользователем базовые компоненты на GPU из Python.

  • Он также обеспечивает автоматическую настройку гиперпараметров.

  • Мы можем реализовать обучение с подкреплением, генерирующие состязательные сети (GAN), контролируемое и неконтролируемое обучение.

  • Для массивных наборов данных CNTK имеет встроенные оптимизированные считыватели.

Эффективное использование ресурсов

  • CNTK обеспечивает параллелизм с высокой точностью на нескольких графических процессорах / машинах через 1-битный SGD.

  • Чтобы уместить самые большие модели в памяти графического процессора, он обеспечивает совместное использование памяти и другие встроенные методы.

Легко выражайте наши собственные сети

  • CNTK имеет полные API-интерфейсы для определения вашей собственной сети, учащихся, читателей, обучения и оценки на Python, C ++ и BrainScript.

  • Используя CNTK, мы можем легко оценивать модели с помощью Python, C ++, C # или BrainScript.

  • Он предоставляет как высокоуровневые, так и низкоуровневые API.

  • Основываясь на наших данных, он может автоматически формировать вывод.

  • Он имеет полностью оптимизированные символьные циклы рекуррентной нейронной сети (RNN).

Измерение производительности модели

  • CNTK предоставляет различные компоненты для измерения производительности создаваемых вами нейронных сетей.

  • Создает данные журнала из вашей модели и соответствующего оптимизатора, которые мы можем использовать для отслеживания процесса обучения.

Версия 1.0 против версии 2.0

В следующей таблице сравниваются версии CNTK 1.0 и 2.0:

Версия 1.0 Версия 2.0
Он был выпущен в 2016 году. Это значительная переработка версии 1.0, выпущенная в июне 2017 года.
Он использовал собственный язык сценариев под названием BrainScript. Его каркасные функции можно вызывать с помощью C ++, Python. Мы можем легко загрузить наши модули на C # или Java. BrainScript также поддерживается версией 2.0.
Он работает как в системах Windows, так и в Linux, но не непосредственно в Mac OS. Он также работает в системах Windows (Win 8.1, Win 10, Server 2012 R2 и новее) и Linux, но не непосредственно в Mac OS.

Важные особенности версии 2.7

Version 2.7это последняя основная выпущенная версия Microsoft Cognitive Toolkit. Имеет полную поддержку ONNX 1.4.1. Ниже приведены некоторые важные моменты этой последней выпущенной версии CNTK.

  • Полная поддержка ONNX 1.4.1.

  • Поддержка CUDA 10 для систем Windows и Linux.

  • Он поддерживает расширенный цикл рекуррентных нейронных сетей (RNN) в экспорте ONNX.

  • Он может экспортировать модели объемом более 2 ГБ в формате ONNX.

  • Он поддерживает FP16 в обучающем действии языка сценариев BrainScript.