web-dev-qa-db-fra.com

Tensorflow ne fonctionne pas sur le GPU

J'ai déjà passé beaucoup de temps à chercher un dépassement de pile et à chercher la réponse, mais je n'ai rien trouvé =

Salut à tous,

Je cours Tensorflow avec Keras sur le dessus. Je suis sûr à 90% que j'ai installé le GPU Tensorflow, y a-t-il un moyen de vérifier quelle installation j'ai faite?

J'essayais de faire fonctionner certains modèles CNN à partir du bloc-notes Jupyter et j'ai remarqué que Keras exécutait le modèle sur le processeur (gestionnaire de tâches vérifié, le processeur était à 100%).

J'ai essayé d'exécuter ce code à partir du site Web tensorflow:

# Creates a graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
# Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# Runs the op.
print(sess.run(c))

Et voici ce que j'ai eu:

MatMul: (MatMul): /job:localhost/replica:0/task:0/cpu:0
2017-06-29 17:09:38.783183: I c:\tf_jenkins\home\workspace\release-win\m\windows\py\35\tensorflow\core\common_runtime\simple_placer.cc:847] MatMul: (MatMul)/job:localhost/replica:0/task:0/cpu:0
b: (Const): /job:localhost/replica:0/task:0/cpu:0
2017-06-29 17:09:38.784779: I c:\tf_jenkins\home\workspace\release-win\m\windows\py\35\tensorflow\core\common_runtime\simple_placer.cc:847] b: (Const)/job:localhost/replica:0/task:0/cpu:0
a: (Const): /job:localhost/replica:0/task:0/cpu:0
2017-06-29 17:09:38.786128: I c:\tf_jenkins\home\workspace\release-win\m\windows\py\35\tensorflow\core\common_runtime\simple_placer.cc:847] a: (Const)/job:localhost/replica:0/task:0/cpu:0
[[ 22.  28.]
 [ 49.  64.]]

Ce qui pour moi montre que je cours sur mon processeur, pour une raison quelconque.

J'ai un GTX1050 (version du pilote 382.53), j'ai installé CUDA et Cudnn, et tensorflow installé sans aucun problème. J'ai également installé Visual Studio 2015 car il figurait dans la liste des versions compatibles.

Je me souviens que CUDA avait mentionné l’installation d’un pilote incompatible, mais si je me souviens bien, CUDA aurait dû installer son propre pilote.

Edit: J'ai lancé ces commandes pour lister les périphériques disponibles

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

et c'est ce que je reçois

[name: "/cpu:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 14922788031522107450
]

et beaucoup d'avertissements comme celui-ci

2017-06-29 17:32:45.401429: W c:\tf_jenkins\home\workspace\release-win\m\windows\py\35\tensorflow\core\platform\cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE instructions, but these are available on your machine and could speed up CPU computations.

Edit 2

Essayé de courir

pip3 install --upgrade tensorflow-gpu

et je reçois

Requirement already up-to-date: tensorflow-gpu in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages
Requirement already up-to-date: markdown==2.2.0 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: html5lib==0.9999999 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: werkzeug>=0.11.10 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: wheel>=0.26 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: bleach==1.5.0 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: six>=1.10.0 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: protobuf>=3.2.0 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: backports.weakref==1.0rc1 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: numpy>=1.11.0 in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from tensorflow-gpu)
Requirement already up-to-date: setuptools in c:\users\goofynose\appdata\local\programs\python\python35\lib\site-packages (from protobuf>=3.2.0->tensorflow-gpu)

Résolu: Vérifiez les commentaires pour trouver une solution. Merci à tous ceux qui ont aidé!

Je suis nouveau dans ce domaine, alors toute aide est grandement appréciée! Merci.

23
Goofynose

Pour vérifier quels appareils sont disponibles pour TensorFlow, vous pouvez utiliser ceci et voir si les cartes GPU sont disponibles:

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

Edit De plus, vous devriez voir ce type de journaux si vous utilisez la version de TensorFlow Cuda:

I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so.*.* locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so.*.*  locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so.*.*  locally
18
pfm

Cela peut sembler idiot, mais essayez de redémarrer. Cela m'a aidé, ainsi que d'autres personnes de GitHub.

9
QtRoS

Je n'arrivais toujours pas à prendre en charge le processeur graphique même après avoir correctement installé tensorflow-gpu via pip. Mon problème était que j'avais installé tensorflow 1.5 et CUDA 9.1 (la version par défaut vers laquelle Nvidia vous dirige), alors que le tensorflow précompilé 1.5 fonctionne avec les versions de CUDA <= 9.0. Voici la page de téléchargement sur le site de nvidia pour obtenir la bonne version de CUDA 9.0:

https://developer.nvidia.com/cuda-90-download-archive

Assurez-vous également de mettre à jour votre nom d'utilisateur (CuDNN) vers une version compatible avec CUDA 9.0 https://developer.nvidia.com/cudnnhttps://developer.nvidia.com/rdp/cudnn- télécharger

6
mboss