Comments 30
Я не согласен с вашей логикой.
То, что все используют питон, не отменяет того факта, что библиотека написана на плюсах, и ее можно использовать на плюсах. И более того, ее используют и в плюсовой версии тоже.
Другое дело, что на питоне ресерч вести куда проще.
Вы просто не в теме.
Самый популярный tensorflow, внезапно, написан на C++
Следующий по популярности Caffe написан на C++
PyTorch, ой, внезапно тоже C++. Как же так?
И далее:
https://github.com/tiny-dnn/tiny-dnn
https://github.com/josephmisiti/awesome-machine-learning#general-purpose-machine-learning-2
А вы думали, всё на Python пишут? :) Нет, только интерфейсные обертки для удобного применения, прототипирования, визуализации и т. д.
А сеть сам писал или это всё есть в openBLAS? Тот же вопрос по CUDA и т.п. — сам или всё есть openBLAS?
У меня тоже есть небольшая библиотечка — актуальна была, лет 10 назад, когда не было CUDA, был однопоток и т.п. Но мне она интересна наличием в ней быстрого CCG алгоритма и GA, в котором ошибка на тестовой выборке меньше, чем на обучающей. Как можно разпараллелить обучение, перевести на CUDA и т.д.? Можешь что-то посоветовать.
CUDA — предоставляет свою имплементацию BLAS — cuBLAS, плюс предоставляет приличный набор примитивов для построения нейросетей — cuDNN.
Как можно разпараллелить обучен...
от задачи плясать надо. с мануала CUDA начать, дальше примеров в сети масса.
Cравнение с «PyTorch» на примере MNIST:
PyTorch: Accuracy: 98%, Time: 140 sec
SkyNet: Accuracy: 95%, Time: 150 sec
Т.е. работает хуже и медленнее?
Тогда это сравнение не даёт особой информации.
Попробуйте воспроизвести одну и ту же архитектуру один-в-один в PyTorch / TensorFlow и в вашей библиотеке. Вот такое сравнение было бы интересным.
Точно, я.
А автору жирый лайкище!
Такое ощущение, что сейчас 2007 год, где библиотеки для глубокого обучения — редкость.
Сейчас есть десятки огромных библиотек, написанных на плюсах, у которых есть обертки под высокоуровневый язык программирования на ваш вкус.
логику самому можно написать, которой не хватает (подготовка изображений, автокорр-ка lrate и тд).
Имхо, на самом деле, проблема в том, что у современных ML библиотек интерфейс проектировался(и реализовался) сразу с учетом использования на Python (или на другой скрипт язык). Поэтому, извиняюсь, кишки торчат наружу, те любая внутренняя структура имеет внешний handler, вся внутренняя кухня — engine, optimizer, lossfunc… все болтается в h-ках, которых тоже куча получается, для каждой внутренней сущности.
Соответственно пользоваться нативно таким винегретом, не разработчику, тяжело.
Приходится смотреть внутрь. Теперь о том что внутри.
Внутри С++ во всей красе, те не ограничен ничем — шаблоны в куче с наследованием, структуры магически выводящие описание и типы своих данных, портянки комментов, о том как работает код, авторы будто сами понимают, что без этого комментария вообще никак и т.д.
А теперь почему так (имхо все продолжается, если что). Потому что пишут люди близкие к науке, не программисты. По хорошему, им надо писать методики для программистов. Если бы был хороший понятный код, не только для питона, то мало кто стал бы писать велики.
Да откуда вы это взяли?
Я использую нейросети на плюсах в ежедневной работе и нормально себя чувствую.
Разумеется, мы сейчас говорим об инференсе сетей, правда? Потому что если вы хотите обучать сети на плюсах, то вам стоит пересмотреть свои взгляды на мир.
нормально себя чувствую
поздравляю
говорим об инференсе сетей
по-русски можете говорить?
вам стоит пересмотреть свои взгляды на мир
спасибо за совет. учту.
по-русски можете говорить?
Я и говорю. Это общепринятая терминология, которую используют, например, такие лидеры индустрии, как Nvidia.
поздравляю
Ваш сарказм неуместен. Я же серьёзно пишу, что есть фреймворки глубокого обучения отлично работают на плюсах.
я использовал mxnet года 2 назад, на плюсах, и было тяжело.
главное, было не понятно, почему должен использовать python, когда либа написана на плюсах.
Во-вторых, два года назад и на питоне многие deep learning фреймворки чувствовали себя не самым лучшим образом. TF был крайне нестабильным. Второй Keras вообще только вышел в основную ветке.
В-третьих, переадресую вам тот же вопрос, что и предыдущему комментатору: «Разумеется, мы сейчас говорим об инференсе сетей, правда?»
P.S. Сам достаточно длительное время посвятил оптимизациям прямого распространения сигнала в неросетях на CPU (проекты Simd и Synet). Если потребуется помощь — обращайтесь.
Нейросеть для разработчиков C++