Комментарии 18
Ребят, сделайте нормальную документацию к C++ API и люди к вам потянутся.
Отрасль уже готова выйти за рамки Питона и Луа.
Вы сравниваете CNTK с TensorFlow. Но все кто хоть немного поработал в отрасли уже знают о больячках TensorFlow. И это сравнение не выглядит убедительным.
Сейчас CNTK — просто ещё один фреймворк на Питоне и, внезапно, BrainScript.
Киллер-фич по сравнению с Torch, Caffe или тем же Teano не видно.
И опять, нет ясной и удобной документации C++, а это как раз то, чего не хватает остальным мейнстримовым фреймворкам.
+4
Похоже, основная фича у CNTK это скорость на LSTM сетях, нашел пару бенчмарков arxiv.org/abs/1608.07249 и minimaxir.com/2017/06/keras-cntk на обучении до 3-5 раз быстрее чем TF.
+1
Статья в духе «у нас есть всякое хорошее и нет ничего плохого», попахивает классическим маркетинговым булшитом. Не хватает более конкретных примеров, кусков кода и т.п. Сравните, например, с недавней статьей про Pytorch.
+9
НЛО прилетело и опубликовало эту надпись здесь
Подправил фразу в разделе про производительность, чтобы не вводить в заблуждение.
Идея утверждения про точность состоит в том, что на базе CNTK удалось показать большую точность на той же архитектуре, чем при использовании TensorFlow. С учетом специфик алгоритмов и процедур обучения, «багов» разные фреймворки могут показывать разную максимальную точность одной и той же сети на одних и тех же данных. Это позволяет в некоторой мере говорить о таком понятии как «точность Фреймворка.»
Идея утверждения про точность состоит в том, что на базе CNTK удалось показать большую точность на той же архитектуре, чем при использовании TensorFlow. С учетом специфик алгоритмов и процедур обучения, «багов» разные фреймворки могут показывать разную максимальную точность одной и той же сети на одних и тех же данных. Это позволяет в некоторой мере говорить о таком понятии как «точность Фреймворка.»
+2
На самом деле почти все фреймворки реализуют одну и ту же функциональность и дублируют друг друга. При этом они создают здоровую конкуренцию, что хорошо. Из описанных преимуществ CNTK самым важным, на мой взгляд, является сквозное многоуровневое API на C++, которое позволяет описывать архитектуру сети на низком уровне, как в TF, или же на высокоуровневом функциональном API, как в Keras. Реализация обучения в виде C++ API, масштабирование на кластеры из GPU в разных конфигурациях, эффективная и удобная поддержка RNN — вот, наверное, основные преимущества. Тянут ли они на killer feature — вопрос скорее терминологический.
Кстати, поддержка Keras недавно тоже добавилась, поэтому если вы используете Keras — можно просто попробовать CNTK как другой бэкенд и посмотреть на разницу. Если у кого-то будет такой опыт — поделитесь с нами!
Кстати, поддержка Keras недавно тоже добавилась, поэтому если вы используете Keras — можно просто попробовать CNTK как другой бэкенд и посмотреть на разницу. Если у кого-то будет такой опыт — поделитесь с нами!
+1
Лично меня пока бесит нетрадиционная pyton ориентация, вообще нет совместимости с C# на котором пишет большинство разработчиков… то есть большинство нейросетевых фрейворков просто не возможно использовать… это в полной мере касается CNTK. Убедите меня примером на C# если я не прав.
-11
На самом деле нетрадиционная ориентация неслучайна — Python является стандартом де-факто для Data Science. Именно поэтому Microsoft добавил Python API. Изначально (и именно в таком режиме CNTK использовался внутри компании) идея была в том, чтобы тренировать сетки на BrainScript, а использовать — через API (в т.ч. C#/.NET). Пример использования на .NET есть тут: github.com/Microsoft/CNTK/tree/master/Examples/Evaluation
Однако что выгодно отличает CNTK от Tensorflow (и что обеспечивает прирост в скорости) — это тот факт, что API для обучения также реализовано на C++ (в отличие от Python в случае TF). Это позволяет достаточно просто перейти к обучению сетей также из языков типа C# — и сейчас такая работа ведется. Вот тут github.com/Microsoft/CNTK/issues/2194 например обещают предварительное API для обучения на C# к середине сентября. Другое дело, что обучать на C# будет не так комфортно, как на Python, поскольку нет таких мощных библиотек для работы с матрицами, как numpy.
Однако что выгодно отличает CNTK от Tensorflow (и что обеспечивает прирост в скорости) — это тот факт, что API для обучения также реализовано на C++ (в отличие от Python в случае TF). Это позволяет достаточно просто перейти к обучению сетей также из языков типа C# — и сейчас такая работа ведется. Вот тут github.com/Microsoft/CNTK/issues/2194 например обещают предварительное API для обучения на C# к середине сентября. Другое дело, что обучать на C# будет не так комфортно, как на Python, поскольку нет таких мощных библиотек для работы с матрицами, как numpy.
+2
>Вот тут github.com/Microsoft/CNTK/issues/2194 например обещают предварительное API для обучения на C# к середине сентября
было бы здорово… и скорее бы… так как фреймворки нейронных сетей и c# что то ни как не могут состыковаться
>обучать на C# будет не так комфортно, как на Python, поскольку нет таких мощных библиотек для работы с матрицами, как numpy
что мешает сделать так чтобы было комфортно и что мешает добавить необходимые библиотеки?
было бы здорово… и скорее бы… так как фреймворки нейронных сетей и c# что то ни как не могут состыковаться
>обучать на C# будет не так комфортно, как на Python, поскольку нет таких мощных библиотек для работы с матрицами, как numpy
что мешает сделать так чтобы было комфортно и что мешает добавить необходимые библиотеки?
+1
Выглядит как маркейтинг. Где графики, где бенчмарки, где точные цифры?
Сплошные «CNTK в целом работает быстрее, чем TensorFlow» и «Точность выше». Где пример как «всего несколько строк кода» распараллеливает обучение на 4 видюхи?
Сплошные «CNTK в целом работает быстрее, чем TensorFlow» и «Точность выше». Где пример как «всего несколько строк кода» распараллеливает обучение на 4 видюхи?
+3
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Почему CNTK?