web-dev-qa-db-fra.com

Scikit-learn utilisera-t-il le GPU?

Lecture de l'implémentation de scikit-learn dans tensroflow: http://learningtensorflow.com/lesson6/ et scikit-learn: http://scikit-learn.org/stable/modules/generated /sklearn.cluster.KMeans.html J'ai du mal à décider quelle implémentation utiliser.

scikit-learn est installé avec le conteneur docker tensorflow et peut donc utiliser l'une ou l'autre implémentation.

Raison d'utiliser scikit-learn:

scikit-learn contient moins de plaque chauffante que l’implémentation tensorflow.

Raison d'utiliser tensorflow:

Si vous utilisez un GPU Nvidia, l'algorithme sera exécuté en parallèle, je ne sais pas si scikit-learn utilisera tous les GPU disponibles?

Lecture https://www.quora.com/What-are-the-main-differences-between-TensorFlow-and-SciKit-Learn

TensorFlow est plus bas niveau; En gros, les briques Lego vous aident à mettre en œuvre des algorithmes d’apprentissage automatique, tandis que scikit-learn vous propose des algorithmes standard, tels que des algorithmes de classification tels que les SVM, les forêts aléatoires, la régression logistique, et bien d’autres encore. TensorFlow brille vraiment si vous souhaitez implémenter des algorithmes d'apprentissage approfondi, car il vous permet de tirer parti des GPU pour une formation plus efficace.

Cette déclaration réaffirme mon affirmation selon laquelle "scikit-learn contient moins de plaque de chaudière que l'implémentation tensorflow" mais suggère également que scikit-learn n'utilisera pas tous les GPU disponibles.

31
blue-sky

Tensorflow n’utilise le GPU que s’il est construit contre Cuda et CuDNN. Par défaut, aucun des deux n'utilisera le GPU, en particulier s'il fonctionne dans Docker, à moins que vous n'utilisiez nvidia-docker et une image capable de le faire.

Scikit-learn n'est pas conçu pour être utilisé en tant que framework d'apprentissage en profondeur et semble ne pas prendre en charge les calculs de GPU.

Pourquoi n'y a-t-il pas de soutien pour l'apprentissage en profondeur ou de renforcement/Y aura-t-il un soutien pour l'apprentissage en profondeur ou de renforcement dans scikit-learn?

L'apprentissage en profondeur et l'apprentissage par renforcement requièrent tous les deux un vocabulaire riche pour définir une architecture, l'apprentissage en profondeur nécessitant en outre des GPU pour un calcul efficace. Cependant, aucun de ceux-ci ne correspond aux contraintes de conception de scikit-learn; par conséquent, l'apprentissage en profondeur et l'apprentissage par renforcement sont actuellement hors de portée de ce que scikit-learn cherche à réaliser.

Extrait de http://scikit-learn.org/stable/faq.html#why-is-there-no-support-for-deep-or-reinforcement-learning-will-there-be-support- pour-approfondir-ou-renforcer-apprendre-dans-scikit-apprendre

Allez-vous ajouter le support GPU dans scikit-learn?

Non, ou du moins pas dans un proche avenir. La raison principale est que le support GPU introduira de nombreuses dépendances logicielles et introduira des problèmes spécifiques à la plate-forme. scikit-learn est conçu pour être facile à installer sur une grande variété de plates-formes. En dehors des réseaux de neurones, les GPU ne jouent pas un rôle important dans l’apprentissage automatique, et des gains de vitesse bien plus importants peuvent souvent être obtenus par un choix judicieux d’algorithmes.

Extrait de http://scikit-learn.org/stable/faq.html#will-you-add-gpu-support

61
Ivan De Paz Centeno

Simplement non.

Jetez un oeil à FAQ "Voulez-vous ajouter le support GPU?" Fourni par scikit-learn ici . Ils ont clairement expliqué pourquoi.

0
Veera Srikanth