Ознакомление с реализацией scikit-learn в tenSroflow: http://learningtensorflow.com/lesson6/ и scikit-learn: http://scikit-learn.org/stable/modules/generated /sklearn.cluster.KMeans.html Я пытаюсь решить, какую реализацию использовать.

Scikit-learn устанавливается как часть контейнера-установщика тензорного потока, поэтому может использовать любую реализацию.

Причина использования scikit-learn:

Scikit-Learn содержит меньше котла, чем реализация тензорного потока.

Причина использования tenorflow:

Если при работе на графическом процессоре Nvidia алгоритм будет работать параллельно, я не уверен, будет ли scikit-learn использовать все доступные графические процессоры?

Чтение https: //www.quora. ком / Что - в -Майне - различия между ними - TensorFlow - и - SciKit -Learn

TensorFlow более низкого уровня; в основном, кубики Lego, которые помогают вам реализовать алгоритмы машинного обучения, в то время как scikit-learn предлагает вам готовые алгоритмы, например алгоритмы классификации, такие как SVM, случайные леса, логистическая регрессия и многие, многие другие. TensorFlow действительно хорош, если вы хотите реализовать алгоритмы глубокого обучения, поскольку он позволяет вам использовать преимущества графических процессоров для более эффективного обучения.

Это утверждение подкрепляет мое утверждение о том, что «scikit-learn содержит меньше базовых данных, чем реализация тензорного потока», но также предполагает, что scikit-learn не будет использовать все доступные графические процессоры?

87
blue-sky 10 Янв 2017 в 14:37

3 ответа

Лучший ответ

Tensorflow использует только графический процессор, если он построен на Cuda и CuDNN. По умолчанию ни один из них не собирается использовать графический процессор, особенно если он работает в Docker, если вы не используете nvidia-docker и изображение, способное сделать это.

Scikit-learn не предназначен для использования в качестве основы глубокого обучения, и, похоже, он не поддерживает вычисления на GPU.

Почему нет поддержки для углубленного или подкрепляющего обучения / Будет ли поддержка глубокого или подкрепляющего обучения в scikit-learn?

Глубокое обучение и усиленное обучение требуют богатого словарного запаса для определения архитектуры, а глубокое обучение дополнительно требует графических процессоров для эффективных вычислений. Тем не менее, ни один из них не укладывается в конструктивные ограничения scikit-learn; в результате глубокое обучение и обучение с подкреплением в настоящее время находятся за рамками того, чего стремится достичь scikit-learn.

Извлечено из http://scikit-learn.org/stable/faq.html#why-is-there-no-support-for -deep или - упрочняющей обучения , будет - там -быть- поддержка - на - глубоководного или армирования -обучения -в- scikit учиться

Добавите ли вы поддержку GPU в scikit-learn?

Нет или, по крайней мере, не в ближайшем будущем. Основная причина заключается в том, что поддержка GPU привнесет много программных зависимостей и создаст проблемы, специфичные для платформы. Программа scikit-learn разработана таким образом, чтобы ее можно было легко устанавливать на самых разных платформах. Вне нейронных сетей графические процессоры сегодня не играют большой роли в машинном обучении, и при тщательном выборе алгоритмов часто можно добиться гораздо большего прироста в скорости.

Извлечено из http://scikit-learn.org/stable /faq.html#will-you-add-gpu-support

81
Ivan De Paz Centeno 10 Янв 2017 в 12:12

Просто нет

Взгляните на FAQ "Будете ли вы добавлять поддержку GPU?" предоставлено сайтом scikit-learn здесь. Они дали четкое объяснение почему.

-5
Veera Srikanth 23 Апр 2019 в 11:49

Да, если вы используете TensorFlow или PyTorch в конвейерах Scikit-Learn с помощью Neuraxle.

Neuraxle является расширением Scikit-Learn, чтобы сделать его более совместимым со всеми библиотеками глубокого обучения.

Вот полный пример проекта от А до Я, где TensorFlow используется с Neuraxle, как если бы это было используется с Scikit-Learn.

Вот еще один практический пример, где TensorFlow используется внутри конвейер, похожий на scikit

Трюк выполняется с помощью Neuraxle-TensorFlow или Neuraxle-PyTorch.

Почему так?

Использование одного из Neuraxle-TensorFlow или Neuraxle-PyTorch обеспечит вас заставкой для правильной сериализации вашей вещи. Вы хотите, чтобы он был правильно сериализован, чтобы обеспечить совместимость между scikit-learn и вашей средой глубокого обучения, когда придет время сохранять или распараллеливать вещи и так далее. Вы можете прочитать, как Neuraxle решает эту проблему с помощью заставок здесь.

1
Guillaume Chevalier 6 Мар 2020 в 03:45