2016-10-26 1 views
4

J'ai déjà installé CUDA 8.0 et copié le fichier cuDNN dans le répertoire comme le dit Install CUDA (GPUs on Linux).Keras, Tensorflow Impossible d'ouvrir la bibliothèque CUDA libcudnn.so. LD_LIBRARY_PATH :?

je lance mnist_cnn.py et a obtenu les informations suivantes:

Using TensorFlow backend. 
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcublas.so locally 
I tensorflow/stream_executor/dso_loader.cc:105] Couldn't open CUDA library libcudnn.so. LD_LIBRARY_PATH: 
I tensorflow/stream_executor/cuda/cuda_dnn.cc:3448] Unable to load cuDNN DSO 
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcufft.so locally 
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcuda.so.1 locally 
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcurand.so locally 
X_train shape: (60000, 28, 28, 1) 
60000 train samples 

et enfin

Traceback (most recent call last): 
    File "mnist_cnn.py", line 65, in <module> 
    model.add(Dropout(0.25)) 
    File "/home/nsknsl/.local/lib/python3.5/site-packages/keras/models.py", line 308, in add 
    output_tensor = layer(self.outputs[0]) 
    File "/home/nsknsl/.local/lib/python3.5/site-packages/keras/engine/topology.py", line 514, in __call__ 
    self.add_inbound_node(inbound_layers, node_indices, tensor_indices) 
    File "/home/nsknsl/.local/lib/python3.5/site-packages/keras/engine/topology.py", line 572, in add_inbound_node 
    Node.create_node(self, inbound_layers, node_indices, tensor_indices) 
    File "/home/nsknsl/.local/lib/python3.5/site-packages/keras/engine/topology.py", line 149, in create_node 
    output_tensors = to_list(outbound_layer.call(input_tensors[0], mask=input_masks[0])) 
    File "/home/nsknsl/.local/lib/python3.5/site-packages/keras/layers/core.py", line 90, in call 
    x = K.in_train_phase(K.dropout(x, self.p, noise_shape), x) 
    File "/home/nsknsl/.local/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py", line 1304, in in_train_phase 
    x = tf.python.control_flow_ops.cond(tf.cast(_LEARNING_PHASE, 'bool'), 
AttributeError: module 'tensorflow.python' has no attribute 'control_flow_ops' 
Exception ignored in: <bound method BaseSession.__del__ of <tensorflow.python.client.session.Session object at 0x7ff2a70e4ba8>> 
Traceback (most recent call last): 
    File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 532, in __del__ 
AttributeError: 'NoneType' object has no attribute 'TF_DeleteStatus' 

Comment puis-je charger cuDNN DSO?

+0

Je pense que vous devez ajouter le répertoire qui contient 'libcudnn.so' à votre variable' DL_LIBRARY_PATH', comme décrit [sur le même site] (https: // www. tensorflow.org/versions/master/get_started/os_setup.html#optional-linux-enable-gpu-support) – Marco13

+0

Le lien du site a été changé en https://www.tensorflow.org/versions/master/install/install_linux – Hong

Répondre

4

Comme mentionné dans les commentaires, si vous ne l'avez pas encore, vous devez exécuter les commandes suivantes pour définir vos variables d'environnement:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64" 
export CUDA_HOME=/usr/local/cuda 

Vous pouvez également ajouter ces commandes à la fin de votre ~/.bashrc afin qu'ils soient exécutés la prochaine fois que vous vous connectez.

De: https://www.tensorflow.org/versions/master/install/install_linux#nvidia_requirements_to_run_tensorflow_with_gpu_support

0
  1. Tout d'abord, s'il vous plaît assurez-vous que vous avez déjà installé cudnn. L'installation doit être effectuée séparément après l'installation de Cuda.

  2. Ensuite, vous devez trouver votre chemin de 'libcudnn.so.' par: sudo find /usr/ -name 'libcudnn.so'

Pour moi, je suis /usr/local/cuda-8.0/targets/x86_64-linux/lib.

  1. Vous devez également trouver votre chemin où les bibliothèques pourraient être trouvées en utilisant la bibliothèque bien chargée, comme libcufft.so sudo find /usr/ -name 'libcufft.so' Pour moi, je me suis /usr/lib.

  2. Maintenant, copiez les fichiers à bon endroit: sudo cp /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcud* /usr/lib

  3. Quitter la session précédente tensorflow et commencer une nouvelle et à tester. Cela fonctionne pour moi :)