Tensorflow: Crash : impossible de créer un handle cuDNN lorsque des convnets sont utilisés

Créé le 6 janv. 2017  ·  145Commentaires  ·  Source: tensorflow/tensorflow

Tensorflow (GPU) a été importé avec succès, mais lors de l'exécution d'une session impliquant un réseau de neurones convolutifs (CNN), Python se bloque avec le message suivant :

E tensorflow/stream_executor/cuda/cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:605] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)

Le problème persiste sur toute combinaison de la boîte à outils CUDA 7.5/8.0 et de Tensorflow installée à partir de pip/source. Les sessions de test qui n'utilisent pas de CNN sont exécutées avec succès.

Quels problèmes liés à GitHub ou à des threads StackOverflow avez-vous trouvés en recherchant votre problème sur le Web ?

Le problème est similaire à https://github.com/tensorflow/tensorflow/issues/6586 , où j'ai commenté pour la première fois. Mais comme je rencontre le problème sur un Mac, on m'a suggéré d'ouvrir un problème séparé.

Informations sur l'environnement

Système d'exploitation : macOS Sierra 10.12.2
Xcode version 8.2 (8C38) (Lorsque j'ai essayé plus tard CUDA 7.5, j'ai installé Command Line Tools version 7.3.1 car CUDA 7.5 ne prenait pas en charge les compilateurs les plus récents.)
Python 3.5.2 (anaconda)

Version installée de CUDA : essayé à la fois 8.0 (initialement) et 7.5 (rapporté ici, boîte à outils uniquement - le pilote est toujours 8.0)
Version installée de cuDNN : 5.1 (différentes installations selon les versions de CUDA)
(veuillez joindre la sortie de ls -l /path/to/cuda/lib/libcud* ):

lrwxr-xr-x  1 root   wheel        33  5 Jan 20:33 /usr/local/cuda/lib/libcuda.1.dylib -> /usr/local/cuda/lib/libcuda.dylib
-rwxr-xr-x@ 1 root   wheel      8280 13 Apr  2016 /usr/local/cuda/lib/libcuda.dylib
lrwxr-xr-x@ 1 root   wheel        45 13 Apr  2016 /usr/local/cuda/lib/libcudadevrt.a -> /Developer/NVIDIA/CUDA-7.5/lib/libcudadevrt.a
lrwxr-xr-x@ 1 root   wheel        50 13 Apr  2016 /usr/local/cuda/lib/libcudart.7.5.dylib -> /Developer/NVIDIA/CUDA-7.5/lib/libcudart.7.5.dylib
lrwxr-xr-x@ 1 root   wheel        46 13 Apr  2016 /usr/local/cuda/lib/libcudart.dylib -> /Developer/NVIDIA/CUDA-7.5/lib/libcudart.dylib
lrwxr-xr-x@ 1 root   wheel        49 13 Apr  2016 /usr/local/cuda/lib/libcudart_static.a -> /Developer/NVIDIA/CUDA-7.5/lib/libcudart_static.a
lrwxr-xr-x  1 root   wheel        16  5 Jan 17:14 /usr/local/cuda/lib/libcudnn.5 -> libcudnn.5.dylib
-rwxr-xr-x@ 1 ymfa   staff  58975112 10 Jun  2016 /usr/local/cuda/lib/libcudnn.5.dylib
lrwxr-xr-x@ 1 ymfa   staff        16 10 Jun  2016 /usr/local/cuda/lib/libcudnn.dylib -> libcudnn.5.dylib
lrwxr-xr-x  1 root   wheel        16  5 Jan 17:14 /usr/local/cuda/lib/libcudnn5.dylib -> libcudnn.5.dylib
-rw-r--r--@ 1 ymfa   staff  56392320 10 Jun  2016 /usr/local/cuda/lib/libcudnn_static.a

J'ai essayé à la fois d'installer à partir de pip et de la source. J'ai d'abord installé à partir du paquet binaire pip :

  1. Un lien vers le package pip que vous avez installé :
    tensorflow-gpu
  2. La sortie de python -c "import tensorflow; print(tensorflow.__version__)" .
    0.12.head

Plus tard, j'ai installé à partir des sources (le paquet pip a été désinstallé):

  1. Le hachage de commit ( git rev-parse HEAD )
    d67c09d98a576e1fbf2f3609ddb842e53890f31c
  2. La sortie de bazel version

    Étiquette de construction : 0.4.3-homebrew
    Cible de compilation : bazel-out/local-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
    Temps de construction : jeu. 22 décembre 15:20:15 2016 (1482420015)
    Horodatage de la construction : 1482420015
    Horodatage de la compilation au format int : 1482420015

Si possible, fournissez un exemple reproductible minimal

J'ai fait un exemple minimal en simplifiant le réseau et en réduisant les données d'apprentissage à seulement vingt images et deux classes pour la classification. issue.zip contient le code Python et les données. J'ai écrit deux couches convolutives car j'ai trouvé que le réseau avec une seule couche convolutive fonctionnait sans problème.

Journal complet à l'aide de CUDA 7.5 et Tensorflow compilé à partir de la source

I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcublas.7.5.dylib locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcudnn.5.dylib locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcufft.7.5.dylib locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcuda.1.dylib locally
I tensorflow/stream_executor/dso_loader.cc:125] successfully opened CUDA library libcurand.7.5.dylib locally
W tensorflow/core/platform/cpu_feature_guard.cc:95] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:95] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:95] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:874] OS X does not support NUMA - returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 650M
major: 3 minor: 0 memoryClockRate (GHz) 0.9
pciBusID 0000:01:00.0
Total memory: 1023.69MiB
Free memory: 740.18MiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 650M, pci bus id: 0000:01:00.0)
E tensorflow/stream_executor/cuda/cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:605] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)

Journal complet à l'aide de CUDA 8.0 et Tensorflow installé à partir de pip

I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.1.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.dylib locally
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:901] OS X does not support NUMA - returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 650M
major: 3 minor: 0 memoryClockRate (GHz) 0.9
pciBusID 0000:01:00.0
Total memory: 1023.69MiB
Free memory: 590.00MiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 650M, pci bus id: 0000:01:00.0)
E tensorflow/stream_executor/cuda/cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
E tensorflow/stream_executor/cuda/cuda_dnn.cc:392] error retrieving driver version: Invalid argument: expected %d.%d or %d.%d.%d form for driver version; got ""
E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:532] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)
awaiting tensorflower builinstall

Commentaire le plus utile

Voici un peu plus d'informations sur la façon dont je l'ai temporairement résolu. Je pense que ces problèmes sont tous liés à l'allocation de mémoire GPU et n'ont rien à voir avec les erreurs signalées. Il y avait d'autres erreurs avant cela indiquant une sorte de problème d'allocation de mémoire, mais le programme a continué à progresser, donnant finalement les erreurs cudnn que tout le monde obtient. La raison pour laquelle je pense que cela fonctionne parfois est que si vous utilisez le GPU pour d'autres choses que le tensorflow, comme votre affichage principal, la mémoire disponible fluctue. Parfois, vous pouvez allouer ce dont vous avez besoin et d'autres fois non.

Depuis l'API
https://www.tensorflow.org/versions/r0.12/how_tos/using_gpu/
"Par défaut, TensorFlow mappe la quasi-totalité de la mémoire GPU de tous les GPU (sous réserve de CUDA_VISIBLE_DEVICES) visible par le processus. Ceci est fait pour utiliser plus efficacement les ressources de mémoire GPU relativement précieuses sur les appareils en réduisant la fragmentation de la mémoire."

Je pense que cette allocation par défaut est rompue d'une manière qui fait que ce comportement erratique et certaines situations fonctionnent et d'autres échouent.

J'ai résolu ce problème en modifiant le comportement par défaut de TF pour allouer une quantité minimale de mémoire et augmenter selon les besoins, comme indiqué dans la page Web.
config = tf.ConfigProto()
config.gpu_options.allow_growth = Vrai
session = tf.Session(config=config, ...)

J'ai également essayé la méthode alternative et j'ai réussi à la faire fonctionner et j'ai échoué en choisissant expérimentalement un pourcentage qui a fonctionné. Dans mon cas, il a fini par être d'environ 0,7.

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
session = tf.Session(config=config, ...)

Toujours aucun mot de l'équipe TF confirmant cela, mais cela vaut la peine de voir si d'autres peuvent confirmer un comportement similaire.

Tous les 145 commentaires

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
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties:
name: GeForce GTX 1080
major: 6 minor: 1 memoryClockRate (GHz) 1.835
pciBusID 0000:02:00.0
Total memory: 7.92GiB
Free memory: 3.76GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:02:00.0)
E tensorflow/stream_executor/cuda/cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:532] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)

J'ai rencontré exactement le même problème que vous avec CUDA8 et TF r0.12.1.

@EncodeTS Je viens d'ajouter un exemple reproductible minimal à mon premier message. Pourriez-vous vérifier si cela reproduit le problème sur votre machine ? Sur ma machine, une couche convolutive fonctionne mais pas deux couches convolutives, ce qui m'a amené à penser que le problème pouvait être causé par certaines limitations de ressources.

Je peux confirmer que l'exemple minimal @ymfa échoue sur MacOS NVidia 750, mais le même exemple fonctionne également sur Linux/Titan X

L'exemple minimal fonctionne sur mon Ubuntu. Il semble que le problème que j'ai rencontré a une probabilité d'occurrence très faible sur mon ordinateur.

Je rencontre le même problème. Le graphique fonctionnera correctement lorsqu'il sera forcé sur le processeur, mais s'est écrasé sur le processeur.

Environnement

Système d'exploitation : macOS 10.12.2
Processeur graphique : GeForce GT 750M
TF : 0.12.1 (installation de pip)
Python : 3.6.0
CUDA : 8,0
cDNN : 5,1

(sortie de ls -l /path/to/cuda/lib/libcud* ):

lrwxr-xr-x  1 root  wheel     33 Dec 14 14:25 /usr/local/cuda/lib/libcuda.1.dylib -> /usr/local/cuda/lib/libcuda.dylib
-rwxr-xr-x  1 root  wheel  13504 Dec  2 16:48 /usr/local/cuda/lib/libcuda.dylib
lrwxr-xr-x  1 root  wheel     45 Nov  3 11:40 /usr/local/cuda/lib/libcudadevrt.a -> /Developer/NVIDIA/CUDA-8.0/lib/libcudadevrt.a
lrwxr-xr-x  1 root  wheel     50 Nov  3 11:40 /usr/local/cuda/lib/libcudart.8.0.dylib -> /Developer/NVIDIA/CUDA-8.0/lib/libcudart.8.0.dylib
lrwxr-xr-x  1 root  wheel     46 Nov  3 11:40 /usr/local/cuda/lib/libcudart.dylib -> /Developer/NVIDIA/CUDA-8.0/lib/libcudart.dylib
lrwxr-xr-x  1 root  wheel     49 Nov  3 11:40 /usr/local/cuda/lib/libcudart_static.a -> /Developer/NVIDIA/CUDA-8.0/lib/libcudart_static.a
lrwxr-xr-x  1 root  wheel     47 Dec 14 10:21 /usr/local/cuda/lib/libcudnn.5.dylib -> /Developer/NVIDIA/CUDA-8.0/lib/libcudnn.5.dylib
lrwxr-xr-x  1 root  wheel     45 Dec 14 10:21 /usr/local/cuda/lib/libcudnn.dylib -> /Developer/NVIDIA/CUDA-8.0/lib/libcudnn.dylib
lrwxr-xr-x  1 root  wheel     48 Dec 14 10:21 /usr/local/cuda/lib/libcudnn_static.a -> /Developer/NVIDIA/CUDA-8.0/lib/libcudnn_static.a

Exemple

L'exemple minimal fourni par @ymfa échoue et réussit sur ma configuration. Voici trois résultats qui ont été produits.
échouer(1)

I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.1.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.dylib locally
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:901] OS X does not support NUMA - returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 750M
major: 3 minor: 0 memoryClockRate (GHz) 0.9255
pciBusID 0000:01:00.0
Total memory: 2.00GiB
Free memory: 1.76GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:01:00.0)
Training...
E tensorflow/stream_executor/cuda/cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:532] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms) 
Abort trap: 6

échouer(2)

I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.1.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.dylib locally
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:901] OS X does not support NUMA - returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 750M
major: 3 minor: 0 memoryClockRate (GHz) 0.9255
pciBusID 0000:01:00.0
Total memory: 2.00GiB
Free memory: 1.53GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:01:00.0)
Training...
E tensorflow/stream_executor/cuda/cuda_blas.cc:372] failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED
W tensorflow/stream_executor/stream.cc:1390] attempting to perform BLAS operation using StreamExecutor without BLAS support
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1021, in _do_call
    return fn(*args)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1003, in _run_fn
    status, run_metadata)
  File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/contextlib.py", line 89, in __exit__
    next(self.gen)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/framework/errors_impl.py", line 469, in raise_exception_on_not_ok_status
    pywrap_tensorflow.TF_GetCode(status))
tensorflow.python.framework.errors_impl.InternalError: Blas SGEMM launch failed : a.shape=(20, 400), b.shape=(400, 2), m=20, n=2, k=400
     [[Node: MatMul = MatMul[T=DT_FLOAT, transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/gpu:0"](Flatten/Reshape, Variable_4/read)]]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "issue.py", line 52, in <module>
    sess.run(training_operation, feed_dict={x: X, y: Y})
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 766, in run
    run_metadata_ptr)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 964, in _run
    feed_dict_string, options, run_metadata)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1014, in _do_run
    target_list, options, run_metadata)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1034, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InternalError: Blas SGEMM launch failed : a.shape=(20, 400), b.shape=(400, 2), m=20, n=2, k=400
     [[Node: MatMul = MatMul[T=DT_FLOAT, transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/gpu:0"](Flatten/Reshape, Variable_4/read)]]

Caused by op 'MatMul', defined at:
  File "issue.py", line 43, in <module>
    logits = SimpleNet(x)
  File "issue.py", line 34, in SimpleNet
    logits = tf.matmul(fc1, fc1_W) + fc1_b
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/ops/math_ops.py", line 1729, in matmul
    a, b, transpose_a=transpose_a, transpose_b=transpose_b, name=name)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/ops/gen_math_ops.py", line 1442, in _mat_mul
    transpose_b=transpose_b, name=name)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/framework/op_def_library.py", line 759, in apply_op
    op_def=op_def)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 2240, in create_op
    original_op=self._default_original_op, op_def=op_def)
  File "/usr/local/lib/python3.6/site-packages/tensorflow/python/framework/ops.py", line 1128, in __init__
    self._traceback = _extract_stack()

InternalError (see above for traceback): Blas SGEMM launch failed : a.shape=(20, 400), b.shape=(400, 2), m=20, n=2, k=400
     [[Node: MatMul = MatMul[T=DT_FLOAT, transpose_a=false, transpose_b=false, _device="/job:localhost/replica:0/task:0/gpu:0"](Flatten/Reshape, Variable_4/read)]]

passe

I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.1.dylib locally
I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.dylib locally
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:901] OS X does not support NUMA - returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 750M
major: 3 minor: 0 memoryClockRate (GHz) 0.9255
pciBusID 0000:01:00.0
Total memory: 2.00GiB
Free memory: 1.71GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:01:00.0)
Training...
Training complete!

Fermeture automatique en raison d'un manque d'activité récente. Veuillez mettre à jour le problème lorsque de nouvelles informations seront disponibles, et nous rouvrirons le problème. Merci!

Pas si vite, je vois aussi ce crash. Macbook pro, geforce 650. TF v1. Fonctionnant via des noyaux jupyter, que je dois redémarrer fréquemment. Peut-être que cette carte graphique est tout simplement trop faible ? Vu comment l'op utilise la même carte : probable.

I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.8.0.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.5.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.8.0.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.1.dylib locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.8.0.dylib locally
...
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: 
name: GeForce GT 650M
major: 3 minor: 0 memoryClockRate (GHz) 0.9
pciBusID 0000:01:00.0
Total memory: 1023.69MiB
Free memory: 870.46MiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 650M, pci bus id: 0000:01:00.0)
E tensorflow/stream_executor/cuda/cuda_dnn.cc:397] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:364] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:605] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms) 

J'ai le même problème avec GTX 960m, cudnn5.1.5 et cuda-8.0.44.

J'ai le même problème avec centOS, titan X

J'ai le même problème avec ubuntu (14.04) et GRID K520 (aws g2.2)

J'ai le même problème Windows 10 cudnn 5.1 cuda 8 gtx 1060. Le programme fonctionne sur la version cpu de tensor flow mais obtient ces mêmes erreurs avec la version gpu.

J'ai eu le même problème avec gtx1060, win8.1, cuda8.0.60, cudnn5.0. Mise à niveau vers la dernière version stable de tensorflow-gpu nightly (actuellement http://ci.tensorflow.org/job/nightly-win/133/) et cudnn5.1. Problème résolu.

Même problème ici.

J'avais ce problème avec les versions logicielles répertoriées ci-dessous, sauf que TF était la version 1.0.0. J'ai ensuite mis à niveau vers TF 1.0.1. J'ai exécuté le même programme une fois et cela a fonctionné . Je l'ai ensuite réexécuté et cela n'a pas fonctionné - cela a produit la même erreur qu'avant.

Tensorflow-gpu 1.0.1
Mac OS X 10.12.3
Cuda 8.0.61
CuDNN 5.1
GeForce GT 750M

avoir le même problème avec gtx650, ubuntu 16.04, CUDA version 8.0.61, TF version 1.0.0
cela fonctionnait à l'instant, mais en donnant des avertissements de faible mémoire. Cependant, il fonctionnait
Maintenant, il ne fonctionne plus du tout, ce qui me donne le même échec de la vérification : erreur stream->parent()->GetConvolveAlgorithms(&algorithms)

Ayant le même problème avec gtx 1080 ti, windows 10, CUDA version 8.0.61, TF version 1.0.1, 5.1 Cudann, cuda 8.0.61

J'ai pu faire fonctionner un programme en limitant l'utilisation du GPU. Dans mon cas avec un gtx 1060 de 3 Go sur Ubuntu 16.04, si je définis l'option gpu per_process_gpu_memory_fraction sur 0,7, cela fonctionne. Rien de plus haut, j'obtiens ces erreurs

E tensorflow/stream_executor/cuda/cuda_dnn.cc:397] n'a pas pu créer le handle cudnn : CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:364] n'a pas pu détruire le handle cudnn : CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:605] Échec de la vérification : stream->parent()->GetConvolveAlgorithms(&algorithms)

Cela pourrait être un cas de mauvais rapport d'erreur par tensorflow. Semble complètement sans rapport. C'est peut-être un indice pour résoudre ce problème d'une meilleure manière?

@zheng-xq y a-t-il un problème de configuration évident ?

Même problème aussi. Je suis sous Windows 10, GTX1070, CUDA 8.0, cuDNN 5.1.

E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:359] n'a pas pu créer le handle cudnn : CUDNN_STATUS_NOT_INITIALIZED
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:366] erreur lors de la récupération de la version du pilote : Non implémenté : la version du pilote signalée par le noyau n'est pas implémentée sous Windows
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:326] n'a pas pu détruire le handle cudnn : CUDNN_STATUS_BAD_PARAM
F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\kernels\conv_ops.cc:659] Échec de la vérification : stream->parent()->GetConvolveAlgorithms(&algorithms)

Si cela aide quelqu'un, il semble qu'il reste parfois des processus zombies qui empêchent tf de redémarrer correctement et m'ont donné cette erreur. les tuer contourne le problème.

Voici un peu plus d'informations sur la façon dont je l'ai temporairement résolu. Je pense que ces problèmes sont tous liés à l'allocation de mémoire GPU et n'ont rien à voir avec les erreurs signalées. Il y avait d'autres erreurs avant cela indiquant une sorte de problème d'allocation de mémoire, mais le programme a continué à progresser, donnant finalement les erreurs cudnn que tout le monde obtient. La raison pour laquelle je pense que cela fonctionne parfois est que si vous utilisez le GPU pour d'autres choses que le tensorflow, comme votre affichage principal, la mémoire disponible fluctue. Parfois, vous pouvez allouer ce dont vous avez besoin et d'autres fois non.

Depuis l'API
https://www.tensorflow.org/versions/r0.12/how_tos/using_gpu/
"Par défaut, TensorFlow mappe la quasi-totalité de la mémoire GPU de tous les GPU (sous réserve de CUDA_VISIBLE_DEVICES) visible par le processus. Ceci est fait pour utiliser plus efficacement les ressources de mémoire GPU relativement précieuses sur les appareils en réduisant la fragmentation de la mémoire."

Je pense que cette allocation par défaut est rompue d'une manière qui fait que ce comportement erratique et certaines situations fonctionnent et d'autres échouent.

J'ai résolu ce problème en modifiant le comportement par défaut de TF pour allouer une quantité minimale de mémoire et augmenter selon les besoins, comme indiqué dans la page Web.
config = tf.ConfigProto()
config.gpu_options.allow_growth = Vrai
session = tf.Session(config=config, ...)

J'ai également essayé la méthode alternative et j'ai réussi à la faire fonctionner et j'ai échoué en choisissant expérimentalement un pourcentage qui a fonctionné. Dans mon cas, il a fini par être d'environ 0,7.

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
session = tf.Session(config=config, ...)

Toujours aucun mot de l'équipe TF confirmant cela, mais cela vaut la peine de voir si d'autres peuvent confirmer un comportement similaire.

Je reçois également l'erreur CUDNN_STATUS_NOT_INITIALIZED . Voici le journal des erreurs complet :

2017-04-26 00:08:57.526234: I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:977] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)
2017-04-26 00:09:01.111706: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:359] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
2017-04-26 00:09:01.111805: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:366] error retrieving driver version: Unimplemented: kernel reported driver version not implemented on Windows
2017-04-26 00:09:01.114040: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:326] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2017-04-26 00:09:01.114232: F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\kernels\conv_ops.cc:659] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)

Je suis sous Windows 10, CUDA 8.0, cuDNN 5.1 . Peut-on faire quelque chose pour les éviter ? J'ai pu exécuter plus tôt d'autres tests de tensorflow et cela a bien fonctionné (y compris conv op), mais maintenant cela ne fonctionne plus sur ce nouveau test ...

@serans1 De quels processus zombies parlez-vous ?

S'il vous plaît laissez-moi savoir s'il existe une solution de contournement pour cela. Merci!

EDIT Cela a peut-être été une erreur de débutant, mais je vais juste le mentionner ici, au cas où quelqu'un d'autre rencontrerait le même problème :
Mon problème était que j'avais déjà exécuté une instance d'un Jupyter Python Notebook (dont les cellules étaient déjà toutes exécutées, donc chargées dans la mémoire), ainsi qu'un autre processus qui prenait de la mémoire GPU (jeu vidéo minimisé). Par conséquent, lorsque j'ai vérifié l'utilisation de la mémoire sur mon GPU, elle était déjà d'environ 4 + Go (50 + %). J'ai fermé le Jupyter Notebook et l'autre application, et j'ai réexécuté mon test de tensorflow. Maintenant, tout s'est bien déroulé :) De plus, pendant l'exécution, j'ai remarqué qu'au maximum, il utilisait jusqu'à 90% de ma mémoire GPU, et il est donc logique qu'il ne puisse pas initialiser CUDNN alors qu'il avait moins de 50% disponible dans ma situation initiale .

Désolé encore pour mon erreur ! Je suis juste au début de jouer avec ça :)

Même problème, y a-t-il une solution ?

Je c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:885] J'ai trouvé le périphérique 0 avec les propriétés :
nom : GeForce GTX 960M
majeur : 5 mineur : 0 memoryClockRate (GHz) 1,176
pciBusID 0000:01:00.0
Mémoire totale : 4,00 Gio
Mémoire libre : 3,35 Go
Je c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:906] DMA : 0
Je c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:916] 0 : O
Je c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:975] Création d'un périphérique TensorFlow (/gpu:0) -> (périphérique : 0, nom : GeForce GTX 960M, identifiant de bus pci : 0000:01:00.0)
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:586] Impossible d'identifier le nœud NUMA de /job:localhost/replica:0 /task:0/gpu:0, la valeur par défaut est 0. Votre noyau n'a peut-être pas été compilé avec le support NUMA.
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:385] n'a pas pu créer le handle cudnn : CUDNN_STATUS_NOT_INITIALIZED
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:392] erreur lors de la récupération de la version du pilote : autorisation refusée : impossible d'ouvrir le chemin de la version du pilote pour la lecture : /proc/pilote/nvidia/version
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:352] n'a pas pu détruire le handle cudnn : CUDNN_STATUS_BAD_PARAM
F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\kernels\conv_ops.cc:532] Échec de la vérification : stream->parent()->GetConvolveAlgorithms(&algorithms)

J'ai exactement le même problème.
Mais je peux exécuter mes codes avec un accès root (avec sudo).
Actuellement, je travaille sur Ubuntu 16.04 avec GTX 960.
Ma version CUDA est 8.0 et j'utilise tensorflow 1.01

Windows 10 / Tensorflow 1.01
Je l'utilisais parfaitement mais maintenant accidentellement la même erreur m'arrive

nom : GeForce GTX 1070
majeur : 6 mineur : 1 mémoireClockRate (GHz) 1,7715
pciBusID 0000:03:00.0
Mémoire totale : 8,00 Go
Mémoire libre : 6,68 Gio
2017-05-08 21:12:16.103654 : Je c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:908] DMA : 0
2017-05-08 21:12:16.105184: Je c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:918] 0: Oui
2017-05-08 21:12:16.106710 : je c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:977] Création d'un périphérique TensorFlow (/gpu:0) -> (périphérique : 0, nom : GeForce GTX 1070, identifiant de bus pci : 0000 :03 :00.0)
2017-05-08 21:12:24.395060 : E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:359] n'a pas pu créer de poignée cudnn : CUDNN_STATUS_NOT_INITIALIZED
2017-05-08 21:12:24.395177: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:366] erreur lors de la récupération de la version du pilote : Non implémenté : la version du pilote signalée par le noyau n'est pas implémentée sous Windows
2017-05-08 21:12:24.396636: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:326] n'a pas pu détruire le handle cudnn : CUDNN_STATUS_BAD_PARAM
2017-05-08 21:12:24.396846 : F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\kernels\conv_ops.cc:659] Échec de la vérification : stream- >parent()->GetConvolveAlgorithms(&algorithms)

La méthode de @strickon a fonctionné pour moi. On dirait que tensorflow essaie de monopoliser trop de ressources à la fois et ne peut pas, ce qui fait planter l'opération. J'ai notamment utilisé :

config.gpu_options.allow_growth = Vrai

Confirmer la suggestion de @strickon fonctionne pour moi.

J'exécute https://github.com/awjuliani/DeepRL-Agents/blob/master/Double-Dueling-DQN.ipynb et j'obtenais les échecs mentionnés dans ce fil lors du premier appel à sess.run dans le bloc de mise à jour ( Le ligne : Q1 = sess.run(mainQN.predict,feed_dict={mainQN.scalarInput:np.vstack(trainBatch[:,3])}) .

L'ajout de l'indicateur allow_growth (comme ci-dessous) m'a permis de dépasser cette bosse - le code s'exécute actuellement en arrière-plan, nous verrons jusqu'où il ira.

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)

Empiler:

  • MacBook Pro, exécutant Sierra 10.12.4, avec NVIDIA GeForce GT 750M 2048 Mo. En général, ne disposent que de 1,7 Go d'espace libre.
  • TensorFlow 1.1 Utilisation des instructions d'installation d'Anaconda.
  • Python 3.6, pas virtuel (Anaconda)
  • CUDA 8 / cuDNN 5

Je serais d'accord avec le dumping de plus de statistiques sur demande.

Je travaillais avec deux terminaux en même temps et j'ai eu le même problème. Il a été résolu en fermant un terminal.

Fermeture automatique en raison d'un manque d'activité récente. Veuillez mettre à jour le problème lorsque de nouvelles informations seront disponibles, et nous rouvrirons le problème. Merci!

Après avoir mis en œuvre les modifications suggérées par @strickon , j'ai commencé à voir apparaître un nouvel ensemble de journaux d'informations :

2017-06-23 04:45:57.156787: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\common_runtime\gpu\pool_allocator.cc:247] PoolAllocator: After 3205 get requests, put_count=2333 evicted_count=1000 eviction_rate=0.428633 and unsatisfied allocation rate=0.615289
2017-06-23 04:45:57.156880: I c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\35\tensorflow\core\common_runtime\gpu\pool_allocator.cc:259] Raising pool_size_limit_ from 100 to 110
step 0 - loss = 5.632, (19.351 sec/step)

Je ne sais pas si c'est lié.

Même erreur ici.

Windows 10 x86_64, GeForce GTX 970, pilotes 376.53, Cuda 8.0, cuDNN 5.1., tensorflow-gpu 1.2.0 de pip, python 3.6

J'essaie d'exécuter l'exemple par défaut de la section tutoriels du site Web :

https://www.tensorflow.org/tutorials/image_recognition

python classify_image.py

J'ai la même erreur:

`
```
(C:\ProgramData\Anaconda3) C:\Users\Locky\Google Диск\MachineLearning\Tensorflow-Tutorials\Repo\models\tutorials\image\imagenet>python classify_image.py
2017-06-25 18:36:32.318287: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\platform\cpu_feature_guard.cc:45] La bibliothèque TensorFlow n'a pas été compilé pour utiliser les instructions SSE, mais celles-ci sont disponibles sur votre machine et pourraient accélérer les calculs du processeur.
2017-06-25 18:36:32.318514: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\platform\cpu_feature_guard.cc:45] La bibliothèque TensorFlow n'a pas été compilé pour utiliser les instructions SSE2, mais celles-ci sont disponibles sur votre machine et pourraient accélérer les calculs du processeur.
2017-06-25 18:36:32.323556: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\platform\cpu_feature_guard.cc:45] La bibliothèque TensorFlow n'a pas été compilé pour utiliser les instructions SSE3, mais celles-ci sont disponibles sur votre machine et pourraient accélérer les calculs du processeur.
2017-06-25 18:36:32.323719: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\platform\cpu_feature_guard.cc:45] La bibliothèque TensorFlow n'a pas été compilé pour utiliser les instructions SSE4.1, mais celles-ci sont disponibles sur votre machine et pourraient accélérer les calculs du processeur.
2017-06-25 18:36:32.323834: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\platform\cpu_feature_guard.cc:45] La bibliothèque TensorFlow n'a pas été compilé pour utiliser les instructions SSE4.2, mais celles-ci sont disponibles sur votre machine et pourraient accélérer les calculs du processeur.
2017-06-25 18:36:32.323930: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\platform\cpu_feature_guard.cc:45] La bibliothèque TensorFlow n'a pas été compilé pour utiliser les instructions AVX, mais celles-ci sont disponibles sur votre machine et pourraient accélérer les calculs du processeur.
2017-06-25 18:36:32.324205: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\platform\cpu_feature_guard.cc:45] La bibliothèque TensorFlow n'a pas été compilé pour utiliser les instructions AVX2, mais celles-ci sont disponibles sur votre machine et pourraient accélérer les calculs du processeur.
2017-06-25 18:36:32.324351: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\platform\cpu_feature_guard.cc:45] La bibliothèque TensorFlow n'a pas été compilé pour utiliser les instructions FMA, mais celles-ci sont disponibles sur votre machine et pourraient accélérer les calculs du processeur.
2017-06-25 18:36:32.707933: Je c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\common_runtime\gpu\gpu_device.cc:940] Trouvé périphérique 0 avec propriétés :
nom : GeForce GTX 970
majeur : 5 mineur : 2 mémoireClockRate (GHz) 1,253
pciBusID 0000:01:00.0
Mémoire totale : 4,00 Gio
Mémoire libre : 3,31 Gio
2017-06-25 18:36:32.708332: Je c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\common_runtime\gpu\gpu_device.cc:961] DMA : 0
2017-06-25 18:36:32.713764: Je c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\common_runtime\gpu\gpu_device.cc:971] 0 : Oui
2017-06-25 18:36:32.713991: Je c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\common_runtime\gpu\gpu_device.cc:1030] Création Appareil TensorFlow (/gpu:0) -> (appareil : 0, nom : GeForce GTX 970, identifiant de bus pci : 0000:01:00.0)
2017-06-25 18:36:34.854555: W c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\framework\op_def_util.cc:332] Op BatchNormWithGlobalNormalisation est obsolète. Il cessera de fonctionner dans GraphDef version 9. Utilisez tf.nn.batch_normalization().
2017-06-25 18:36:35.836895: E c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\stream_executor\cuda\cuda_dnn.cc:359] n'a pas pu créer poignée cudnn : CUDNN_STATUS_NOT_INITIALIZED
2017-06-25 18:36:35.837068: E c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\stream_executor\cuda\cuda_dnn.cc:366] erreur lors de la récupération du pilote version : non implémentée : la version du pilote signalée par le noyau n'est pas implémentée sous Windows
2017-06-25 18:36:35.841593: E c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\stream_executor\cuda\cuda_dnn.cc:326] n'a pas pu détruire poignée cudnn : CUDNN_STATUS_BAD_PARAM
2017-06-25 18:36:35.841690: F c:\tf_jenkins\home\workspace\release-win\m\windows-gpu\py\36\tensorflow\core\kernels\conv_ops.cc:671] Échec de la vérification : stream->parent()->GetConvolveAlgorithms(&algorithms)

(C:\ProgramData\Anaconda3) C:\Users\Locky\Google Диск\MachineLearning\Tensorflow-Tutorials\Repo\models\tutorials\image\imagenet>

````

Dans mon cas, cela s'est produit parce que d'autres instances de tensorflow détenaient le GPU. (Autres scripts en cours d'exécution.)

Pourrais-je proposer un meilleur message d'erreur ? Dites : "Erreur : d'autres instances de tensorflow en cours d'exécution, alors qu'une seule est prise en charge."

J'ai le même problème. Exécution de macOS 10.12.5 GT 750M 2 Go

python neural_style.py --content /Users/qinyuhang/Pictures/0.jpeg  --styles IMG_1105.JPG --output 1.out.jpg --iterations 500
2017-07-05 22:16:54.531699: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:857] OS X does not support NUMA - returning NUMA node zero
2017-07-05 22:16:54.532257: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 0 with properties: 
name: GeForce GT 750M
major: 3 minor: 0 memoryClockRate (GHz) 0.9255
pciBusID 0000:01:00.0
Total memory: 2.00GiB
Free memory: 1.54GiB
2017-07-05 22:16:54.532435: I tensorflow/core/common_runtime/gpu/gpu_device.cc:961] DMA: 0 
2017-07-05 22:16:54.532461: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971] 0:   Y 
2017-07-05 22:16:54.532471: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:01:00.0)
2017-07-05 22:17:07.284016: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:01:00.0)
2017-07-05 22:17:44.973549: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GT 750M, pci bus id: 0000:01:00.0)
Optimization started...
Iteration    1/ 500
2017-07-05 22:17:47.485948: E tensorflow/stream_executor/cuda/cuda_dnn.cc:359] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2017-07-05 22:17:47.485977: E tensorflow/stream_executor/cuda/cuda_dnn.cc:326] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2017-07-05 22:17:47.485983: F tensorflow/core/kernels/conv_ops.cc:671] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms) 
[1]    66448 abort      python neural_style.py --content /Users/qinyuhang/Pictures/0.jpeg --styles   

Résolu (au moins pour moi). Le message d'erreur ne vous mène pas au bon problème. J'ai eu cette erreur de 2 sources différentes :

Premièrement (comme @lockywolf l'a dit) :
J'utilise jupyter notebook et parfois le noyau TF ne libère pas la mémoire GPU et vous devez redémarrer jupyter pour le faire fonctionner à nouveau . Cela se produit généralement après des erreurs d'exécution ou un redémarrage incorrect du noyau...

Seconde:
Parfois, vous devenez gourmand en mémoire GPU et essayez des choses comme ceci :

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.9)
sess = tf.InteractiveSession(config=tf.ConfigProto(gpu_options=gpu_options))

Cela a été fatal à ma configuration et a commencé à obtenir cette erreur. La solution était d' utiliser la méthode par défaut pour démarrer la session interactive :
sess = tf.InteractiveSession()

Système:

Ubuntu 14.04
GeForce GTX 780
Version du pilote CUDA = 8.0
Version CUDNN = 5.1
Version TensorFlow = 1.2.1

J'ai le même problème en exécutant mes propres scripts maintenant.
Je pense que c'est la même raison que celle décrite par

Dans mon cas, cela s'est produit parce que d'autres instances de tensorflow détenaient le GPU. (Autres scripts en cours d'exécution.)

J'ai eu cette erreur assez souvent mais irrégulière, puis j'ai suivi l' exemple de j'ai ajouté une session à mon script. Cependant, j'ai exécuté le script avec succès, j'ai redémarré le noyau et j'ai à nouveau reçu le même message d'erreur. Existe-t-il une solution pour ouvrir la session, réclamer le GPU et le fermer une fois le calcul terminé ?

Tchin Tchin!

Éditer:
À côté de la solution de introduction de Keras TF où ils disent :

Nous devrions commencer par créer une session TensorFlow et l'enregistrer auprès de Keras. Cela signifie que Keras utilisera la session que nous avons enregistrée pour initialiser toutes les variables qu'il crée en interne.

importer tensorflow en tant que tf
sess = tf.Session()

de Keras importer le backend en tant que K
K.set_session(sess)

Même problème. Je me suis battu pour que cela fonctionne toute la journée.

$ ~/neural-style$ python neural_style.py --content ~/Documents/8UhFDcjT.jpg --styles ~/Documents/9odz6-jbngd.png --output ./Documents/Scott.png
2017-07-26 20:57:08.373361: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
2017-07-26 20:57:08.373397: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
2017-07-26 20:57:08.373413: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
2017-07-26 20:57:08.373417: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
2017-07-26 20:57:08.373421: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
2017-07-26 20:57:08.431319: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:893] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2017-07-26 20:57:08.431630: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 0 with properties: 
name: GeForce GTX 870M
major: 3 minor: 0 memoryClockRate (GHz) 0.967
pciBusID 0000:01:00.0
Total memory: 2.95GiB
Free memory: 2.53GiB
2017-07-26 20:57:08.431664: I tensorflow/core/common_runtime/gpu/gpu_device.cc:961] DMA: 0 
2017-07-26 20:57:08.431674: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971] 0:   Y 
2017-07-26 20:57:08.431690: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 870M, pci bus id: 0000:01:00.0)
2017-07-26 20:57:11.692616: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 870M, pci bus id: 0000:01:00.0)
2017-07-26 20:57:19.800938: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 870M, pci bus id: 0000:01:00.0)
Optimization started...
Iteration    1/1000
2017-07-26 20:57:20.535515: E tensorflow/stream_executor/cuda/cuda_dnn.cc:359] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2017-07-26 20:57:20.535573: E tensorflow/stream_executor/cuda/cuda_dnn.cc:326] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2017-07-26 20:57:20.535588: F tensorflow/core/kernels/conv_ops.cc:671] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms) 

J'ai constaté que dans certains cas, la réinitialisation du noyau jupyter ne fonctionnerait pas. En fait, cela m'est arrivé lors de l'utilisation de jupyterhub.
J'ai redémarré le noyau, désactivé mon virtualenv et la mémoire GPU était toujours détenue par un processus. La commande nvidia-smi indiqué qu'il n'y avait aucun processus utilisant le GPU et lorsque j'ai essayé de le réinitialiser avec sudo nvidia-smi --gpu-reset -i 0 (pour le noyau 0 gpu), il a dit ce qui suit :

Impossible de réinitialiser ce GPU car il est utilisé par un autre processus (par exemple, une application CUDA, une application graphique comme le serveur X, une application de surveillance comme une autre instance de nvidia-smi). Veuillez d'abord tuer tous les processus utilisant ce GPU et toutes les applications de calcul s'exécutant sur le système (même lorsqu'elles s'exécutent sur d'autres GPU), puis réessayez de réinitialiser le GPU.
Résiliation anticipée en raison d'erreurs précédentes.

Il y avait donc un processus contenant le GPU, et je les ai recherchés en utilisant sudo fuser -v /dev/nvidia* qui disait qu'il y avait en fait quelque chose qui retenait le GPU... python lui-même... le tuer et relancer virtualenv et jupyter a fait le tour.
Je ne suis peut-être pas le meilleur moyen de résoudre ce problème, mais c'est mieux que de réinitialiser l'ordinateur lorsque toutes les autres options échouent.

Avoir le même problème. Le GPU est GTX 1070 et CUDA 8.0 et CUDNN 5.1 pour CUDA 8.0.

Le problème ne dépend pas du code utilisateur, il dépend du matériel ou de l'état du logiciel Nvidia ou Google. Cette erreur peut commencer à augmenter à tout moment et le redémarrage peut la corriger avec le même code utilisateur.

Même problème avec Windows 10, GTX770, CUDA 8.0, CUDNN 5.1, TF-GPU 1.1.0, je ne sais pas où obtenir la version du pilote de périphérique, mais le gestionnaire de périphériques Windows signale 21.21.13.7651 pour le pilote d'affichage.

connect  84557d348c06492e80ff0304d516367b
2017-08-11 15:51:41.974028: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:359] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
2017-08-11 15:51:41.974536: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:366] error retrieving driver version: Unimplemented: kernel reported driver version not implemented on Windows
2017-08-11 15:51:41.974923: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:326] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2017-08-11 15:51:41.975194: F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\kernels\conv_ops.cc:659] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)

Même problème avec Windows 10, GTX770, CUDA 8.0, CUDNN 5.1, TF-GPU 1.1.0, je ne sais pas où obtenir la version du pilote de périphérique, mais le gestionnaire de périphériques Windows signale 21.21.13.7651 pour le pilote d'affichage.

connect  84557d348c06492e80ff0304d516367b
2017-08-11 15:51:41.974028: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:359] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
2017-08-11 15:51:41.974536: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:366] error retrieving driver version: Unimplemented: kernel reported driver version not implemented on Windows
2017-08-11 15:51:41.974923: E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_dnn.cc:326] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2017-08-11 15:51:41.975194: F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\kernels\conv_ops.cc:659] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)

Le correctif de

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)

Dans mon cas, le même problème a été résolu en mettant à jour le pilote gpu NVIDIA.

Ce problème a-t-il été complètement résolu. J'exécute TF 1.3.0 sur Ubuntu 16.04 avec CUDA 8.0 et cuDNN 5.1. J'ai utilisé Anaconda pour installer mes packages. Il y a 4 jours au hasard, j'ai moi aussi rencontré cette erreur

name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate (GHz) 1.582 pciBusID 0000:05:00.0 Total memory: 10.91GiB Free memory: 10.30GiB 2017-09-05 07:47:05.397839: W tensorflow/stream_executor/cuda/cuda_driver.cc:523] A non-primary context 0x30028e0 exists before initializing the StreamExecutor. We haven't verified StreamExecutor works with that. 2017-09-05 07:47:05.401343: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 1 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate (GHz) 1.582 pciBusID 0000:06:00.0 Total memory: 10.91GiB Free memory: 10.75GiB 2017-09-05 07:47:05.658932: W tensorflow/stream_executor/cuda/cuda_driver.cc:523] A non-primary context 0x2ffe910 exists before initializing the StreamExecutor. We haven't verified StreamExecutor works with that. 2017-09-05 07:47:05.659690: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 2 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate (GHz) 1.582 pciBusID 0000:09:00.0 Total memory: 10.91GiB Free memory: 10.75GiB 2017-09-05 07:47:05.898536: W tensorflow/stream_executor/cuda/cuda_driver.cc:523] A non-primary context 0x2ffa940 exists before initializing the StreamExecutor. We haven't verified StreamExecutor works with that. 2017-09-05 07:47:05.899294: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 3 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate (GHz) 1.582 pciBusID 0000:0a:00.0 Total memory: 10.91GiB Free memory: 10.75GiB 2017-09-05 07:47:05.903197: I tensorflow/core/common_runtime/gpu/gpu_device.cc:976] DMA: 0 1 2 3 2017-09-05 07:47:05.903209: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 0: Y Y Y Y 2017-09-05 07:47:05.903215: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 1: Y Y Y Y 2017-09-05 07:47:05.903218: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 2: Y Y Y Y 2017-09-05 07:47:05.903223: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 3: Y Y Y Y 2017-09-05 07:47:05.903236: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:05:00.0) 2017-09-05 07:47:05.903242: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:1) -> (device: 1, name: GeForce GTX 1080 Ti, pci bus id: 0000:06:00.0) 2017-09-05 07:47:05.903248: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:2) -> (device: 2, name: GeForce GTX 1080 Ti, pci bus id: 0000:09:00.0) 2017-09-05 07:47:05.903252: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:3) -> (device: 3, name: GeForce GTX 1080 Ti, pci bus id: 0000:0a:00.0) 2017-09-05 07:47:20.297138: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:05:00.0) 2017-09-05 07:47:20.297190: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:1) -> (device: 1, name: GeForce GTX 1080 Ti, pci bus id: 0000:06:00.0) 2017-09-05 07:47:20.297206: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:2) -> (device: 2, name: GeForce GTX 1080 Ti, pci bus id: 0000:09:00.0) 2017-09-05 07:47:20.297220: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:3) -> (device: 3, name: GeForce GTX 1080 Ti, pci bus id: 0000:0a:00.0) 2017-09-05 07:47:24.845499: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:05:00.0) 2017-09-05 07:47:24.845534: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:1) -> (device: 1, name: GeForce GTX 1080 Ti, pci bus id: 0000:06:00.0) 2017-09-05 07:47:24.845542: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:2) -> (device: 2, name: GeForce GTX 1080 Ti, pci bus id: 0000:09:00.0) 2017-09-05 07:47:24.845548: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:3) -> (device: 3, name: GeForce GTX 1080 Ti, pci bus id: 0000:0a:00.0) 2017-09-05 07:47:34.884524: E tensorflow/stream_executor/cuda/cuda_dnn.cc:371] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR 2017-09-05 07:47:34.884597: E tensorflow/stream_executor/cuda/cuda_dnn.cc:338] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM 2017-09-05 07:47:34.884616: F tensorflow/core/kernels/conv_ops.cc:672] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms)

J'ai 4 GPU 1080ti. Pendant l'exécution de mon modèle, j'ai surveillé nvidia-smi et j'ai obtenu

-------------------------------------------------- ---------------------------+
| Processus : Mémoire GPU |
| Type de PID GPU Nom du processus Utilisation |
|================================================= ============================|
| 0 1422G /usr/lib/xorg/Xorg 279MiB |
| 0 3530 G compiz 195MiB |
| 0 11249 C /home/simon/anaconda3/bin/python 10157MiB |
| 1 11249 C /home/simon/anaconda3/bin/python 10611MiB |
| 2 11249 C /home/simon/anaconda3/bin/python 10611MiB |
| 3 11249 C /home/simon/anaconda3/bin/python 10611MiB |
+---------------------------------------------------------------- ----------------------------+

Donc, pour une raison quelconque, Python monopolise la mémoire. Bien sûr, si je tue ça, ça tue mon cahier jupyter. Je n'ai aucun processus zombie en cours d'exécution. J'ai essayé.

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.1) sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

ce qui réduit l'utilisation du GPU, mais j'obtiens toujours la même erreur de gestion cuDDN. J'ai réinstallé TF. CUDA, cuDNN, Anaconda sans impact sur le problème.

Pourquoi cette erreur se produit-elle de manière aléatoire et comment peut-elle être résolue.

TensorFlow 1.3 est basé sur cuDNN 6.
Veuillez mettre à niveau votre installation cuDNN.

Merci, Gunan - cela ne fait aucune différence, malheureusement. Même avec cuDNN 6, je reçois toujours le cuDNN ne peut pas créer d'erreur de gestion. Même la définition directe des options GPU n'empêche pas l'erreur, bien que cela réduise la quantité de mémoire GPU utilisée. La mémoire GPU est occupée par Python, donc si je l'éteint, cela ferme mon notebook Jupyter. Je suis bloqué là-dessus depuis près de 4 jours maintenant et je semble avoir épuisé toutes les suggestions que j'ai vues en ligne. Serait-ce un problème de TF 1.3 ?

Juste pour ceux qui sont rendus fous par ça :

J'ai aussi parfois une erreur CUBLAS. J'ai donc fait ceci :

cd /usr/local/cuda/samples/7_CUDALibraries/simpleCUBLAS
make
./simpleCUBLAS

et découvert que je ne pouvais pas initialiser CUBLAS

Ensuite, j'ai fait ceci (basé sur des conseils)

sudo rm -f ~/.nv

Et ça a marché. Bravo... c'est 4 jours de perdu. J'espère que cela sauvera quelqu'un d'autre

@SimonWalsh1000 Cela a fonctionné !! Merci

vérifiez votre .theanorc dans votre chemin d'accueil (si Ubuntu), et définissez le cnmem plus petit .... peut-être cnmem = 0,8, et cela a fonctionné pour moi maintenant

Je l'ai fait fonctionner parfaitement sous Windows 10 avec GTX 1070.
J'utilisais cudnn 7.0.2
La mise à niveau vers la version 6.0 m'a résolu les problèmes :

cuda_8.0.61_win10.exe
cudnn-8.0-windows10-x64-v6.0.zip
python-3.6.2-amd64.exe

Posté l'ensemble du processus d'installation ici:
http://klaatuveratanecto.com/installing-tensorflow-gpu-windows-10-running-image_retraining/

Salut, j'ai eu la même question. Cependant, j'ai trouvé que la raison en est que j'ai utilisé tensorflow deux fois en même temps.

Par exemple, j'utilisais généralement le bloc-notes Jupyter pour le script simple et j'utilisais PyCharm pour le projet. Si je n'arrêtais pas le notebook jupyter, je pourrais rencontrer cette erreur dans le Pycharm.

J'aimerais que cela puisse aider.


Windows10 64,
NVIDIA TitanX,
Pilote 385.41,
Cuda 8.0.60
Cudnn 6.0
Python 3.5.2
Tensorflow 1.3

Je suis d'accord avec @strickon : cela semble être un problème d'allocation de mémoire.
J'avais un ordinateur portable avec le programme tensorflow en cours d'exécution et j'ai essayé d'exécuter un python + tensorflow dans un autre terminal Windows et j'ai obtenu l'erreur. Ensuite, j'ai redémarré mon ordinateur portable (libérer la mémoire GPU) et j'ai réessayé d'exécuter le python sur le terminal Windows et cela a fonctionné ! Je pense que tensorflow devrait fournir un meilleur message d'erreur pour conseiller l'utilisateur avec une explication plus détaillée.

Je suis sous windows 10, cuda 8 et cudnn 6 avec :

nom: Quadro K620
majeur : 5 mineur : 0 memoryClockRate (GHz) 1,124
pciBusID 0000:01:00.0
Mémoire totale : 2,00 Go
Mémoire libre : 1,66 Gio

À peu près les mêmes étapes ont fonctionné pour moi aussi, je comprends peu comment cela a fonctionné. Je ferme simplement toutes les fenêtres, le terminal python fermé ouvert sur pycharm - y compris les fenêtres ouvertes par l'exécution précédente du même programme pour tracer les progrès de la formation et rouvrir et exécuter - cela fonctionne sans erreur. Les erreurs signalées précédemment ne semblent donner aucun indice direct ---

Bonjour,
J'ai eu le même problème, exécuter python avec sudo a résolu mon problème.

@SimonWalsh1000 Tu es mon héros !! ça marche pour moi aussi !

@hesamaraghi Courir avec sudo nous a également aidés. Nous avons pu exécuter en tant que non-root en ajoutant notre utilisateur non-root au groupe nvidia-persistenced . Voir mon commentaire original : https://github.com/tensorflow/tensorflow/issues/14048#issuecomment -340898847

J'ai eu le même problème dans Ubuntu 16.04 et cuda-8.0 (avec GTX1080Ti). Je voudrais juste informer l'un d'entre vous ayant le même problème que la solution donnée par @SimonWalsh1000 a parfaitement fonctionné pour moi (c'est-à-dire que le problème d'initialisation de CUBLAS a été résolu par sudo rm -rf ~/.nv/ ). Alors, merci beaucoup @SimonWalsh1000 , cela m'a coûté quelques heures...

@SimonWalsh1000 Cela fonctionne vraiment. Merci beaucoup!

@SimonWalsh1000 ça marche comme un charme, merci !!!!

J'ai eu le même problème sous Windows 10, CUDA 8.0, cuDNN 6.1 avec GTX1070Ti.
Je trouve la raison: j'ai exécuté du code tensorflow dans annconda spyder IDE, après cela, j'exécute un autre code tensorflow dans l'invite annconda.
le résoudre en fermant spyder IDE
@lockywolf a raison

J'ai eu le même problème. J'essaie la méthode de mettant à jour le cuDNN 7.0 pour CUDA8.0

système au début :

  • Windows10
  • CUDA8.0
  • cuDNN6.0
  • Anaconda3.5 (python3.5)
  • GeForce 840M majeur : 5 mineur : 0 mémoireClockRate (GHz) : 1,124
  • 2,00 Gio de mémoire libre : 1,66 Gio

système après résolu:

  • Windows10
  • CUDA8.0
  • cuDNN7.0
  • Anaconda3.5 (python3.5)
  • GeForce 840M majeur : 5 mineur : 0 mémoireClockRate (GHz) : 1,124
  • 2,00 Gio de mémoire libre : 1,66 Gio

Je pense que ce problème peut être causé par la non-concordance de la version de la bibliothèque et du matériel. @chleibig résout également ce problème en

Pour moi, mettre: config.gpu_options.allow_growth = True dans la session tensorflow a résolu le problème.
Cuda 8, tf 1.4, cudnn 6

exécuter ce résoudre le problème.

sudo rm -rf ~/.nv

meme question. Existe-t-il une solution pour résoudre le problème ?
Ma situation est :
nom : GeForce GTX 1080
mémoire totale : 7,92 GoMémoire libre : 2,50 Go
tensorflow : gpu-1.4.0

Je teste un GPU mais j'exécute trois instances tensorflow.
dans mon code comme ceci :
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.3)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

les deux autres instances de tensorflow fonctionnent correctement, mais seule la dernière exécute une erreur comme celle-ci :

E tensorflow/stream_executor/cuda/cuda_dnn.cc:371] n'a pas pu créer le handle cudnn : CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:338] n'a pas pu détruire le handle cudnn : CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:672] Échec de la vérification : stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo(), &algorithmes)

Pourquoi? La configuration gpu est-elle trop petite : gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.3)
Je ne suis pas sûr. veux une suggestion. J'essaierai.

Découvrez ma solution....

Le 19 décembre 2017 à 08h20, tbchj [email protected] a écrit :

meme question. Existe-t-il une solution pour résoudre le problème ?
Ma situation est :
nom : GeForce GTX 1080
mémoire totale : 7,92 GoMémoire libre : 2,50 Go
tensorflow : gpu-1.4.0

Je teste un GPU mais j'exécute trois instances tensorflow.
dans mon code comme ceci :
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.3)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

les deux autres instances de tensorflow s'exécutent correctement, mais seule la dernière s'exécute
erreur comme celle-ci :

E tensorflow/stream_executor/cuda/cuda_dnn.cc:371] n'a pas pu créer cudnn
poignée : CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:338] n'a pas pu détruire
poignée cudnn : CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:672] Échec de la vérification :
stream->parent()->GetConvolveAlgorithms( conv_parameters.
DevraitInclureWinogradNonfusedAlgo(), &algorithmes)

Pourquoi? La configuration gpu est-elle trop petite : gpu_options = tf.GPUOptions(per_process_gpu_
memory_fraction=0.3)
Je ne suis pas sûr. veux une suggestion. J'essaierai.

-
Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/tensorflow/tensorflow/issues/6698#issuecomment-352670885 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AJq-HpINYs1Uae6ghIW3qKCD56SUDhFeks5tB3HZgaJpZM4Lc7S1
.

--
Meilleur
Simon

SLFWalsh MD MRCP FFRRCSI
[email protected]

Dans mon cas, je faisais tourner la torche sur un arrière-plan et j'ai le même problème.
Je pense que ... CUDNN_STATUS_INTERNAL_ERROR peut se produire lorsqu'un autre programme utilisant cudnn

Dans mon cas, je peux exécuter le cudnn dans l'environnement ipython, cependant, j'ai eu les mêmes messages d'erreur lorsque j'ai essayé d'exécuter le code dans jupyter notebook

Bonjour, j'ai le même problème et aucune des suggestions jusqu'à présent ne m'a aidé à le résoudre.
J'utilise un ordinateur portable Asus Zenbook Pro avec Windows 10 avec les spécifications suivantes :

imagen

Mes spécifications GPU sont les suivantes :

imagen

Je suis ce tutoriel : https://www.tensorflow.org/get_started/mnist/pros, dans lequel vous devez implémenter et entraîner 1) une régression softmax et 2) un CNN multicouche avec le jeu de données MNIST.

Ce sont mes codes : MNIST_Tutorial.zip . Le zip contient 2 fichiers : MNIST_softmax_regression.py et MNIST_multilayer_CNN.py.

1) Lorsque j'exécute MNIST_softmax_regression.py, cela fonctionne bien :
imagen
Comme vous pouvez le voir, le GPU s'habitue et la précision finale est d'environ 92% comme prévu selon le tutoriel.

2) Cependant, lorsque j'exécute MNIST_multilayer_CNN.py, python plante :
imagen

J'ai essayé 2 solutions de contournement basées sur les suggestions précédentes:

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
with tf.Session(config=config) as sess:

et

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.8
with tf.Session(config=config) as sess:

Aucun d'entre eux n'a fonctionné, bien que le second produise le résultat suivant :

imagen

comme vous pouvez le voir, tensorflow essaie d'abord d'allouer de la mémoire plusieurs fois (CUBLAS_STATUS_ALLOC_FAILED) jusqu'à ce qu'il réussisse apparemment, mais l'erreur CUDNN_STATUS_NOT_INITIALIZED apparaît et tout échoue à nouveau.

Au fait, j'ai installé tensorflow selon l'approche alternative à la fin de ces instructions : http://www.python36.com/install-tensorflow-gpu-windows/
imagen

J'ai utilisé ce programme d'installation CUDA :
imagen
imagen

Et utilisé ce fichier .whl pour installer tensorflow :
imagen

Voici quelques informations supplémentaires sur python, pip et conda :
imagen

Toute aide sera très appréciée.
Merci d'avance.

Bonjour,
Je rencontre le même problème sur deux machines différentes :

Configuration 1 :
Windows 10 Professionnel 64 bits
Informations sur le GPU
Cuda 8.0
cudnn 6.0
Tensorflow 1.4
Python 3.6.4

Configuration2 :
Windows 10 Professionnel 64 bits
Informations sur le GPU
CUDA 8.0
cudnn 6.0
Tensorflow 1.4
Python 3.6.2

Les mises à jour?

Avoir une configuration très similaire à ci-dessus, s'exécutant sur :

fenêtres 10
GPU
tensorflow 1.5
CUDA 9.0.176
cudnn 7
python 3.6.4, anaconda

J'ai essayé les modifications de configuration et j'obtiens toujours l'ensemble d'erreurs "CUDNN_STATUS_NOT_INITIALIZED".

Je ne sais pas où réside l'équivalent du dossier .nv sur Windows, je n'ai donc pas pu exécuter la solution @SimonWalsh1000 .

@HeinzBenjamin , un succès ?

EDIT : Toujours perplexe, est-ce parce que je suis sur tensorflow 1.5 & CUDA 9 ?

J'ai rencontré le même problème.
Cependant, j'ai constaté qu'après avoir installé CUDA 9.0, mon pilote ne sera pas la dernière version.
Donc, essayez de mettre à jour votre pilote Nvdia vers la dernière version et redémarrez votre PC. Ça marche pour moi!

hier, mon code fonctionnait très bien, il y a eu une mise à jour d'ubuntu ce matin et maintenant mon code produit ceci. rien d'autre n'a changé.

2018-02-11 07:54:57.097712: E tensorflow/stream_executor/cuda/cuda_dnn.cc:385] n'a pas pu créer le handle cudnn : CUDNN_STATUS_INTERNAL_ERROR
2018-02-11 07:54:57.097756: E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] n'a pas pu détruire le handle cudnn : CUDNN_STATUS_BAD_PARAM
2018-02-11 07:54:57.097767: F tensorflow/core/kernels/conv_ops.cc:667] Échec de la vérification : stream->parent()->GetConvolveAlgorithms(conv_parameters.ShouldIncludeWinogradNonfusedAlgo(), &algorithms)

J'ai redémarré le système une dizaine de fois.
après quelques redémarrages, l'erreur est devenue

2018-02-11 07:19:33.487404: I tensorflow/stream_executor/cuda/cuda_dnn.cc:393] version du pilote éventuellement insuffisante: 384.111.0 2018-02-11 07:19:33.487423: E tensorflow/stream_executor/cuda/ cuda_dnn.cc:352] n'a pas pu détruire le handle cudnn : CUDNN_STATUS_BAD_PARAM 2018-02-11 07:19:33.487439: F tensorflow/core/kernels/conv_ops.cc:667] Échec de la vérification : stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo(), &algorithmes)

mais après la mise à niveau vers 390.25, il produit à nouveau la première erreur.

mon autre code tensorflow fonctionne très bien.

j'ai aussi essayé de supprimer le répertoire nv mais cela n'a eu aucun effet

Ubuntu 17.10, gtx 1060 6 Go

J'ai eu cette erreur sur Windows 10 avec CUDA 9.0 et un GT 750M je l'ai résolu en limitant l'utilisation du GPU à 0.7 avec : config.gpu_options.per_process_gpu_memory_fraction = 0.7

Comme quelqu'un d'autre l'a posté, tout ce qui est supérieur à 0,7 fait planter Python.

Après avoir également reçu la trinité des erreurs :

CUDNN_STATUS_NOT_INITIALIZED
conv_parameters.ShouldIncludeWinogradNonfusedAlgo(), &algorithms)

J'ai essayé la solution de @zzhang68 ... Pilotes mis à jour après l'installation des anciens pilotes par 9.0.
_Et ça a marché !_

Windows 10 | GTX 980 Ti
CUDA 9.0 (qui est venu avec des pilotes obsolètes !!!!)
\cudnn-9.0-windows10-x64-v7\cuda\bin (cudann64_7.dll) dans PATH

python 3.6 miniconda
tensorflow-gpu 1.5.0

face au même problème. tf1.5 py2.7 titan x cuda8.
config.gpu_options.allow_growth = True
ne fonctionne pas

J'ai eu cette erreur sur Windows 10 avec CUDA 9.0 et GTX 1060.
python 3.5
tensorflow-gpu 1.5.0
Je trouve un moyen simple de le résoudre : mettre à jour mon pilote d'affichage NVIDIA vers la dernière version, redémarrer le PC
alors ça a marché !

@SimonWalsh1000 , ça marche vraiment pour moi, merci beaucoup !

La solution de @strickon et @ggranum ainsi qu'une mise à jour du pilote ont résolu ce

la mise à jour de mon pilote gpu a résolu ce problème pour moi. mon pilote gpu était en décembre 2017 et le dernier en date était le 26 février 2018.

vous devez avoir le bon tensorflow, la version CUDA, la version cuDNN et le pilote gpu afin d'éviter ce problème

ma spécification :
tensorflow 1.6
cuDNN v7.0.4 (13 novembre 2017), pour CUDA 9.0 (j'ai dû utiliser cette version pour que mon TF fonctionne)

Voici comment je l'ai réparé. J'avais installé CUDA 9.1 et CUDA 9.0. Comme d'autres, j'ai dû à nouveau mettre à niveau mes pilotes GPU après avoir installé CUDA (via le programme Geforce Experience). Le backend de Keras, TensorFlow, utilise CUDA 9.0 à la date d'aujourd'hui, alors assurez-vous de l'avoir installé. Ensuite, téléchargez cuDNN 7.0.5 (pas la dernière version 7.1) à partir de https://developer.nvidia.com/rdp/cudnn-download , puis extrayez-le et copiez les dossiers bin, include, etc. sur votre C:\Program Dossiers\NVIDIA GPU Computing Toolkit\CUDA\v9.0. Maintenant, ça devrait fonctionner.

Merci pour toute cette aide et après avoir essayé de dégrader mon cuCNN de cnDNN-9.1 en cnDNN-9.0 et cela fonctionne.
Mon environnement est Centos7 + CUDA 9.0 + Tensorflow 1.6

Même erreur sur Python3.5, ubuntu 16.04, tf1.5
La mise à jour du pilote gpu vers la version 390.42 a résolu ce problème pour moi.

Salut les gars,

je viens d'avoir le même problème
" E tensorflow/stream_executor/cuda/cuda_dnn.cc:385] n'a pas pu créer le handle cudnn : CUDNN_STATUS_INTERNAL_ERRORE tensorflow/stream_executor/cuda/cuda_dnn.cc:352] n'a pas pu détruire le handle cudnn : CUDNN_STATUS_BAD_PARAMF tensorflow/core/kernels/conv_ops.cc:605] Échec de la vérification : stream->parent()->GetConvolveAlgorithms(&algorithms) "

et résolu par :
1- Mise à jour du pilote de la NVIDIA Geforce920M
2- Paramétrer correctement la session tf comme suit :
config = tf.ConfigProto()
config.gpu_options.allow_growth = Vrai
sess = tf.Session(config=config)
3- Redémarrage du PC

Après cela, j'ai eu un message d'erreur plus précis :
"cuDNN7.1 trouvé, mais cuDNN7.0 attendu. Mise à niveau"

Et résolu par :
au lieu de mettre à niveau le reste (tf, cuda, ..) pour répondre à cuDNN, j'ai plutôt rétrogradé cuDNN7.0 pour répondre au reste.
(rétrogradation de cuDNN de 7.1 à 7.0.4 ) et cela a bien fonctionné.

J'ai également rencontré cette erreur lorsque j'exécutais The Cnn_Mnist.py

INFO environnement:

  • Window10 + tensorflow_gpuV1.6 + cudav9.0, cudnnv7.0 + Python3.5(Anaconda)+ GeForce 920MX
| NVIDIA-SMI 385.54                 Driver Version: 385.54                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce 920MX      WDDM  | 00000000:01:00.0 Off |                  N/A |
| N/A   37C    P0    N/A /  N/A |     84MiB /  2048MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0     11988      C   ...naconda3\envs\tensorflow_GPU\python.exe N/A      |
+-----------------------------------------------------------------------------+

Informations sur l'erreur :

2018-03-20 13:38:27.439071: E C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\35\tensorflow\stream_executor\cuda\cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2018-03-20 13:38:27.443473: E C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\35\tensorflow\stream_executor\cuda\cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2018-03-20 13:38:27.449591: F C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\35\tensorflow\core\kernels\conv_ops.cc:717] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms)

J'espère sincèrement avoir l'aide de tout le monde :D

Dans mon cas (Windows 10), ce problème était dû à l'utilisation de la mauvaise version de cuDNN. Bien que j'aie suivi de près les instructions officielles de TensorFlow, j'ai accidentellement téléchargé la version 7.0.5 pour CUDA 9.1, alors que TF appelle explicitement CUDA 9.0.

Dès que j'ai corrigé l'erreur cuDNN, mes convnets ont commencé à fonctionner 💯 👍 🥇 :)

Même problème tf 1.2, cuda 8.0, cudnn 5.1
Nvidia a mis à jour les pilotes

Eh bien, j'ai réussi à mettre à jour le pilote nvidia vers la dernière version selon cuda, et cela fonctionne. Vous pouvez donc essayer cette méthode.

Bien bien. Cela ne peut pas bien fonctionner. Le problème se reproduit

Utilisation : cudnn-9.0-windows10-x64-v7 et tensorflow-gpu==1.7.0

tutoriels\image\imagenet>python classify_image.py
échoue avec une erreur : impossible de créer le descripteur cudnn : CUDNN_STATUS_INTERNAL_ERROR

L'ajout des trois lignes de code de ggranum ci-dessus résout le problème

Pour moi, le problème était d'utiliser la mauvaise lib cudnn
J'ai utilisé cudnn pour cuda 9.1 quand j'avais cuda 9.0. J'ai donc réinstallé cudnn pour cuda 9.0 et tout a fonctionné.

J'ai le même problème avec Win10/Anaconda3/tf-1.3/keras-2.1.3
ajoutez le code suivant au tout début du fichier .py, ce qui résout mon problème.

from __future__ import print_function, division
import tensorflow as tf
from keras.backend.tensorflow_backend import set_session  
config = tf.ConfigProto()  
config.gpu_options.allow_growth = True  
set_session(tf.Session(config=config)) 

@serans1
Cela fonctionne pour moi :)

Merci @zzhang68 . Votre solution a fonctionné pour moi.

L'ajout de ceci au début du fichier a fonctionné pour moi :

config = tf.ConfigProto()
config.gpu_options.allow_growth = Vrai
sess = tf.Session(config=config)

GTX 1070. J'avais ce problème. Mon pilote a été mis à jour pour la dernière fois en 2017. Je l'ai mis à jour avec le dernier pilote (mai 2018), réinitialisé mon ordinateur et cessé d'avoir le problème. J'espère que cela t'aides

fonctionne pour moi aussi avec la solution @zzhang68 .
Ubuntu16.04, tensorflow1.7, nvidia1080, cuda9.0, cudnn7.05.
Après la mise à jour du pilote vers 390.59, le problème a disparu.

Une autre option pour win10 utilisant tensorflow cpu ... essayez

def run_inference_for_single_image (image, graphique):
avec graph.as_default() :
config = tf.ConfigProto(
device_count = {'GPU' : 0}
)
avec tf.Session(config=config) comme session :

@ lwd1132438569 Puis-je demander de quelle "dernière version" voulez-vous dire? Je rencontre également ce problème avec mon Ubuntu, et j'ai python 3.5.2, CUDA 9.0, tensorflow-gpu 1.9.0, le pilote est actuellement 390.48.
Je veux essayer, mais j'ai peur que tensorflow ne supporte pas la "dernière" version maintenant...
Merci1

@vburca merci beaucoup. Je ne savais pas qu'avoir un autre bloc-notes jupyter utiliserait la mémoire GPU. Merci beaucoup!!!

J'ai rencontré le même problème. Dans mon cas, j'ai rétrogradé la version de tensorflow et cela a fonctionné pour mon application.

J'ai trouvé le même problème. Dans mon cas, cette raison était un manque de mémoire système. Lorsque j'ai terminé l'exécution d'une autre application, ce problème avait disparu.

2018-09-03 22:50:26.576765: E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] Could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
2018-09-03 22:50:26.576831: E tensorflow/stream_executor/cuda/cuda_dnn.cc:360] Possibly insufficient driver version: 390.77.0
[1]    8515 segmentation fault (core dumped)  python3 training.py

GTX1070
CUDA9.0
CUDNN7.1 pour CUDA9.0
TensorFlow 1.10.1
Exécuter un simple tensorflow comme hello world sans problème.
Nulle part pour savoir pourquoi cela se produit.............

problème de mémoire définitivement lié à cuda, tuez tous les autres processus liés à cuda et entraînez/testez votre modèle, cela devrait résoudre le problème

La solution

[Résolu] Dans mon cas, j'avais installé CUDA v9.2 et le cuDNN correspondant, mais n'avais pas correctement installé le cuDNN spécifique à CUDA v9.0 dont tensorflow a besoin.

Assurez-vous de télécharger la bonne version de cuDNN à partir d'ici : https://developer.nvidia.com/rdp/cudnn-archive

et PAS celui d'ici : https://developer.nvidia.com/cudnn

Le truc d'or, tout recommencer, a fonctionné pour moi.

Redémarrer a fait l'affaire pour moi aussi 👍
(Mais une explication pourquoi cela se produit serait vraiment sympa)

cuDNN

J'étais confronté au même problème. Les modèles avec des couches de convolution ne fonctionneraient pas.
J'ai téléchargé la version 7.0 de cuDNN pour CUDA 9.0 . Après avoir remplacé le fichier cudnn64_7.dll , je peux utiliser convnets sans aucun problème.

Version de la DLL à l'origine des problèmes => 6.14.11.9020
Version de la DLL qui a résolu le problème => 6.14.11.9000
Version GPU Tensorflow=> 1.11.00
Version CUDA=> 9.0
Version Python=> 3.5
SE => Windows 10
Autres étapes => Créez un fichier BAT à ajouter à la variable PATH, puis lancez CMD.EXE avec l'option /k
Merci a tous.

J'ai pu faire fonctionner un programme en limitant l'utilisation du GPU. Dans mon cas avec un gtx 1060 de 3 Go sur Ubuntu 16.04, si je définis l'option gpu per_process_gpu_memory_fraction sur 0,7, cela fonctionne. Rien de plus haut, j'obtiens ces erreurs

E tensorflow/stream_executor/cuda/cuda_dnn.cc:397] n'a pas pu créer le handle cudnn : CUDNN_STATUS_INTERNAL_ERROR
E tensorflow/stream_executor/cuda/cuda_dnn.cc:364] n'a pas pu détruire le handle cudnn : CUDNN_STATUS_BAD_PARAM
F tensorflow/core/kernels/conv_ops.cc:605] Échec de la vérification : stream->parent()->GetConvolveAlgorithms(&algorithms)

Cela pourrait être un cas de mauvais rapport d'erreur par tensorflow. Semble complètement sans rapport. C'est peut-être un indice pour résoudre ce problème d'une meilleure manière?

Super, quand je diminue le gpu_memory_fraction de 0,8 à 0,7, ça commence à fonctionner !

J'ai rencontré ce problème après avoir accidentellement mis à niveau tensorflow-gpu de la version 1.6.0 à 1.18.0. Cela a provoqué une instabilité en raison des versions de CUDA et de cuDNN. La solution revenait à tensorflow-gpu 1.6.0.

C'était la solution à mes problèmes:

https://stackoverflow.com/questions/50622525/which-tensorflow-and-cuda-version-combinations-are-compatible

Chaque fois que vous commencez à faire face à ce type de problèmes, avant de mettre à niveau vos dépendances NVIDIA, essayez TOUJOURS de résoudre le problème en désinstallant les versions de tensorflow et en installant d'abord une version compatible avec vos dépendances CUDA.

Étape 1 : Vérifiez les versions de vos packages tensorflow. Si vous avez un GPU, je vous recommande de désinstaller la version cpu de tensorflow afin d'éviter les conflits.

pip list | grep tensorflow

Étape 2 : Désinstallation de tensorflow-gpu.

pip uninstall tensorflow

Étape 3 : Vérifiez vos versions CUDA et cuDNN. Vous devrez peut-être ajuster ces chemins.

-- CUDA
cat /usr/local/cuda/version.txt
En cas d'échec, recherchez votre fichier texte de version cuda en utilisant :
sudo find / -name version.txt

--cuDNN
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
En cas d'échec, recherchez votre fichier texte de version cuda en utilisant :
sudo find / -name cudnn.h

Étape 4 : Vérifiez si vos versions tensorflow-gpu, cuda et cudnn correspondent à ce tableau.
image

Dans mon cas, j'avais besoin de tensorflow-gpu 1.6.0 pour répondre aux autres exigences.

J'ai donc installé cette version en utilisant :
pip install tensorflow-gpu==1.6.0
ce sont les spécifications qui ont fonctionné !

Système d'exploitation : Ubuntu 16.04
Version CUDA : 9.0, V9.0.176
Version cuDNN : 7.0
Tensorflow-gpu Version : 1.6.0
Version Python : 3.5.0

Bonne chance!

Dans mon cas, j'ai oublié de fermer jupyter notebook lorsque j'ai commencé à exécuter un autre morceau de code dans le code VS, Close jupyter notebook a résolu le problème.

J'ai rencontré ce même problème.
Dans mon cas, j'exécutais le notebook Jupyter pendant la formation de mon réseau.
La fermeture du notebook Jupyter a résolu mon problème.

(Je pense que cela pourrait devoir faire quelque chose avec des exigences trop élevées de mon GPU)

J'espère que cela a aidé!

salut, les gars, j'ai rencontré les mêmes problèmes. J'utilise win10 tensorflow-gpu1.8.0 cuda 9.0 NVIDA gtx1050Ti, lorsque je change la version de cudann de 7.0 à 7.1, le problème est résolu

J'ai rencontré le même problème aujourd'hui (gtx1080, cuda 9.2, tfversion = 1.12.0). Donc, dans mon cas, j'exécutais Jupyter notebook , puis j'essayais d'exécuter mon autre script, c'est à ce moment-là que l'erreur s'est produite. Ce qui est résolu, c'est, comme l' a dit

cela a fonctionné pour moi lors de l'ajout de ces lignes de code au début du script @Codersadis

ajoutez le code suivant au tout début du fichier .py, ce qui résout mon problème.

de __future__ import print_function, division
importer tensorflow en tant que tf
depuis keras.backend.tensorflow_backend importer set_session
config = tf.ConfigProto()
config.gpu_options.allow_growth = Vrai
set_session(tf.Session(config=config))

@drproy2k merci, cela a fonctionné pour moi aussi. J'exécutais l'invite anaconda pendant que Spyder était en cours d'exécution. après avoir arrêté Spyder, cela a parfaitement fonctionné !

Cette erreur est due à un problème de mémoire RAM. Je vous suggère d'augmenter à 32 Go ou 64 Go de RAM DDR3 ou DDR4.
Réduisez également la quantité/taille des données inférées.

Ce n'est pas le GPU. J'ai 2 cartes X 1080Ti en SLI.

J'ai suivi le guide d'installation de la version pour résoudre ce problème-
https://www.tensorflow.org/install/source#tested_source_configurations. La configuration compatible : -
TF 1.12
TF-gpu 1.9
CUDA 8

même problème avec GeForce GTX 970, CUDNN 7.4.1, CUDA 9.0.176, TF-gpu 1.12.0

J'étais confronté au même problème lors de l'utilisation de la version de tensorflow prise en charge par la communauté dans un environnement conda (c'est-à-dire en utilisant > conda install tensorflow-gpu )

Il s'avère que cette version n'est pas vraiment bonne dans toutes les situations (même si je l'ai utilisée sur d'autres machines). La meilleure version à utiliser est la version installable de pip https://www.tensorflow.org/install/pip dans un environnement conda. Quand j'ai fait ça, tout a fonctionné.

Je n'avais pas réalisé que la version Cuda 10.0 de la bibliothèque CUDNN était installée à côté de CUDA 9.0 que j'avais installé actuellement. Une fois que j'ai téléchargé et remplacé le V10 CUDNN par le V9.0 CUDNN, tout a bien fonctionné !
C'était un oubli de ne pas avoir installé les choses correctement, et en regardant en arrière, je peux voir pourquoi... Si vous êtes arrivé jusqu'ici et êtes fatigué d'expérimenter, j'ai écrit un article de blog sur

@kheffah ayant le même problème dans conda. Vous utilisez déjà pip pour installer TF et Keras.
GPU GT 840M, calcul compatible 5.0, CUDA 9, cuDNN 7.4.2, TF 1.12.0. Windows 8x64

le code de test fonctionne très bien

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)

c'est l'erreur dans Spyder. essayez déjà la mémoire 0.7 et l'astuce de croissance. pas de chance

classifier.fit_generator(training_set,
                    steps_per_epoch=32,
                    epochs=25,
                    verbose=1,
                    validation_data=test_set,
                    validation_steps=6.25)
Epoch 1/25
Traceback (most recent call last):

  File "<ipython-input-4-6d704090deaf>", line 11, in <module>
    validation_steps=6.25)

  File "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\legacy\interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)

  File "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\engine\training.py", line 1418, in fit_generator
    initial_epoch=initial_epoch)

  File "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\engine\training_generator.py", line 217, in fit_generator
    class_weight=class_weight)

  File "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\engine\training.py", line 1217, in train_on_batch
    outputs = self.train_function(ins)

  File "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\backend\tensorflow_backend.py", line 2715, in __call__
    return self._call(inputs)

  File "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\backend\tensorflow_backend.py", line 2675, in _call
    fetched = self._callable_fn(*array_vals)

  File "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\tensorflow\python\client\session.py", line 1439, in __call__
    run_metadata_ptr)

  File "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 528, in __exit__
    c_api.TF_GetCode(self.status.status))

UnknownError: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
     [[{{node conv2d_1/convolution}} = Conv2D[T=DT_FLOAT, _class=["loc:@training/Adam/gradients/conv2d_1/convolution_grad/Conv2DBackpropFilter"], data_format="NCHW", dilations=[1, 1, 1, 1], padding="VALID", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](training/Adam/gradients/conv2d_1/convolution_grad/Conv2DBackpropFilter-0-TransposeNHWCToNCHW-LayoutOptimizer, conv2d_1/kernel/read)]]
     [[{{node loss/mul/_91}} = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_609_loss/mul", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

Passer au tensorflow 1.7

Le jeu. 3 janvier 2019, 19:29 maxi.wu < [email protected] a écrit :

@kheffah https://github.com/kheffah ayant le même problème dans conda.
Vous utilisez déjà pip pour installer TF et Keras.
GPU GT 840M, calcul compatible 5.0, CUDA 9, cuDNN 7.4.2, TF 1.12.0.
Windows 8x64

le code de test fonctionne très bien

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], forme=[3, 2], nom='b')
c = tf.matmul(a, b)

c'est l'erreur dans Spyder. essayez déjà la mémoire 0.7 et l'astuce de croissance.
pas de chance

classifier.fit_generator(training_set,
step_per_epoch=32,
époques=25,
verbeux=1,
validation_data=test_set,
validation_steps=6.25)
Epoque 1/25
Traceback (appel le plus récent en dernier) :

Déposer "", ligne 11, dans
validation_steps=6.25)

Fichier "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\legacy\interfaces.py", ligne 91, dans un wrapper
return func( args, * kwargs)

Fichier "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\engine\training.py", ligne 1418, dans fit_generator
époque_initiale=époque_initiale)

Fichier "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\engine\training_generator.py", ligne 217, dans fit_generator
poids_classe=poids_classe)

Fichier "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\engine\training.py", ligne 1217, dans train_on_batch
sorties = self.train_function(ins)

Fichier "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\backend\tensorflow_backend.py", ligne 2715, dans __call__
return self._call(entrées)

Fichier "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\keras\backend\tensorflow_backend.py", ligne 2675, dans _call
récupéré = self._callable_fn(*array_vals)

Fichier "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\tensorflow\python\client\session.py", ligne 1439, dans __call__
run_metadata_ptr)

Fichier "c:\Users\maxi.wu\AppData\Local\conda\conda\envs\tfgpu\lib\site-packages\tensorflow\python\framework\errors_impl.py", ligne 528, dans __exit__
c_api.TF_GetCode(self.status.status))

UnknownError : impossible d'obtenir l'algorithme de convolution. C'est probablement parce que cuDNN n'a pas pu s'initialiser, alors essayez de voir si un message de journal d'avertissement a été imprimé ci-dessus.
[[{{node conv2d_1/convolution}} = Conv2D[T=DT_FLOAT, _class=[" loc:@training/Adam/gradients/conv2d_1/convolution_grad/Conv2DBackpropFilter "], data_format="NCHW", dilatations=[1, 1 , 1, 1], padding="VALID", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true, _device="/ job:localhost/replica :0/ task:0/device : GPU:0 " ](training/Adam/gradients/conv2d_1/convolution_grad/Conv2DBackpropFilter-0-TransposeNHWCToNCHW-LayoutOptimizer, conv2d_1/kernel/read)]]
[[{{node loss/mul/_91}} = _Recv[client_terminated=false, recv_device="/ job:localhost/replica :0/ task:0/device : CPU:0 ", send_device="/ job:localhost/ réplique :0/ task:0/device : GPU:0 ", send_device_incarnation=1, tensor_name="edge_609_loss/mul", tensor_type=DT_FLOAT, _device="/ job:localhost/replica :0/ task:0/device : CPU :0 "]()]]

-
Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/tensorflow/tensorflow/issues/6698#issuecomment-451079405 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/ABE215xY0OhbFjA_GhVtEIDl_IB4qQGmks5u_b9NgaJpZM4Lc7S1
.

J'ai eu le même problème sur le système win10. mais il s'avère qu'il s'agit d'un problème de mémoire. tuez l'autre application en cours d'exécution qui consomme d'énormes ressources mémoire et essayez.

J'ai eu un problème similaire sur Windows 10 NVIDIA GEFORCE GTX 1050 et dès que j'ai fermé toutes les autres tâches en cours d'exécution et réessayé comme suggéré par @ xhm1014 ci-dessus, mon code a juste commencé à s'exécuter comme ça. Je pense que cela doit être un problème lié à la mémoire.

Certainement lié à la mémoire. Vous devez mettre à niveau votre RAM jusqu'à 64 Go.

Le vendredi 18 janvier 2019 à 17h30, Samuel Nde [email protected] a écrit :

J'ai eu un problème similaire sur windows 10 NVIDIA GEFORCE GTX 1050 et dès
car j'ai fermé toutes les autres tâches en cours et j'ai réessayé comme suggéré par @ xhm1014
https://github.com/xhm1014 ci-dessus, mon code vient de commencer à s'exécuter comme
cette. Je pense que cela doit être un problème lié à la mémoire.

-
Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/tensorflow/tensorflow/issues/6698#issuecomment-455441208 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/ABE217cdDKUuRtdD9jJ_eh2tJWrm2fjeks5vEWnwgaJpZM4Lc7S1
.

J'ai eu l'erreur et je l'ai « corrigée » en fermant mes multiples instances de Jupyter et en fermant d'autres applications. Je suis nouveau dans l'utilisation de tensorflow en général, il est donc probable que cela n'ait fait que résoudre mon problème.

E tensorflow/stream_executor/cuda/cuda_dnn.cc:353] Impossible de créer le handle cudnn : CUDNN_STATUS_INTERNAL_ERROR

J'ai eu ce problème avec 10.1 Cuda+cuDNN7.5 et TF 1.11 compilé à partir de la source avec cuda. Le script que j'essayais d'utiliser nécessitait l'insertion de ces lignes quelque part :
config = tf.ConfigProto() config.gpu_options.allow_growth = True

puis plus tard :
sess = tf.Session(graph=detection_graph,config=config)

Cela fait, beaucoup d'"erreurs de mémoire GPU insuffisante" - mais la détection se déroule très rapidement, comme je suppose qu'elle devrait le faire lorsque nous utilisons le GPU. Merci d'avoir partagé!

J'ai rencontré les mêmes problèmes. Et l'utilisation de la ligne ci-dessous l'a corrigé. vérifier ici obtenir des détails.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64

@EncodeTS Je viens d'ajouter un exemple reproductible minimal à mon premier message. Pourriez-vous vérifier si cela reproduit le problème sur votre machine ? Sur ma machine, une couche convolutive fonctionne mais pas deux couches convolutives, ce qui m'a amené à penser que le problème pouvait être causé par certaines limitations de ressources.

En fait, je travaille sur Ubuntu 18.04, pas sur macOS, mais cela semble logique que cela puisse être causé par certaines limitations de ressources. Moi non plus, j'ai rencontré le même problème sur GTX 1050 ti (4 Go), mais le problème a disparu lorsque j'exécute la même architecture sur GTX 1080 ti (11 Go). Bien que tous les environnements ne soient pas les mêmes entre les deux systèmes, j'ai fait de mon mieux en utilisant le conteneur Docker.

Ce problème est généralement lié à la version de la mémoire cuda et GPU, si ancienne, le plus simple est de changer votre version cuda par Anaconda ! si plus tard, vous pouvez trouver des moyens de résoudre dans d'autres réponses.
Ce problème est généralement lié à la mémoire vidéo et à la version de cuda. ​​Si la méthode ci-dessus de modification de la mémoire GPU n'est pas valide, envisagez de changer la version de cuda. ​​Le moyen le plus simple est de ne pas vous soucier de la version de cuda installée sur le système, directement sous le environnement de projet dans Anaconda Il suffit de modifier la version cuda, et le pro-test est valide.

si vous rencontrez toujours ce problème, essayez ce qui suit. ça a marché pour moi
tf.config.gpu.set_per_process_memory_growth(True); tf.config.gpu.set_per_process_memory_fraction(0.4);

tensorflow 2 alpha
cuda 10.0
GTX 1650

J'ai un problème similaire : CUDNN_STATUS_ALLOC_FAILED.
Je me suis cassé la tête pendant 3-4 heures. Enfin fixé.
cela fonctionne en effet, comme mentionné ci-dessus par beaucoup :
config = tf.ConfigProto()
config.gpu_options.allow_growth = Vrai
session = tf.Session(config=config)

Mais la clé est de l'écrire immédiatement en dessous de "import tensorflow as tf", ce que je ne faisais pas. Je l'avais écrit après toutes les importations.

Peut-être que la version tensorflow-gpu a des problèmes, vous devriez vérifier vos propres versions essayer encore et encore, désinstaller et installer... tensorflow-gpu trouver le numéro de version correspondant, puis désinstaller et réinstaller

cela a fonctionné pour moi lors de l'ajout de ces lignes de code au début du script @Codersadis

ajoutez le code suivant au tout début du fichier .py, ce qui résout mon problème.

à partir du futur import print_function, division
importer tensorflow en tant que tf
depuis keras.backend.tensorflow_backend importer set_session
config = tf.ConfigProto()
config.gpu_options.allow_growth = Vrai
set_session(tf.Session(config=config))

J'obtiens la même erreur avec tensorflow-gpu == 1.8.0 , cudnn version = 7.0.5 et cuda 9.1.85
, ubuntu 16.04 même après avoir ajouté la solution suggérée ci-dessus.
Voici la trace de la pile :

INFO - Waveunet Training - Running command 'run'
INFO - Waveunet Training - Started
SCRIPT START
EPOCH: 0
Dataset ready!
Training...
Sep_Vars: 10265550
Num of variables65
2019-07-25 05:10:09.872823: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-07-25 05:10:10.286584: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:898] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-07-25 05:10:10.286914: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1356] Found device 0 with properties: 
name: Quadro P4000 major: 6 minor: 1 memoryClockRate(GHz): 1.48
pciBusID: 0000:00:05.0
totalMemory: 7.92GiB freeMemory: 7.83GiB
2019-07-25 05:10:10.286964: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1435] Adding visible gpu devices: 0
2019-07-25 05:10:10.640890: I tensorflow/core/common_runtime/gpu/gpu_device.cc:923] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-07-25 05:10:10.640952: I tensorflow/core/common_runtime/gpu/gpu_device.cc:929]      0 
2019-07-25 05:10:10.640968: I tensorflow/core/common_runtime/gpu/gpu_device.cc:942] 0:   N 
2019-07-25 05:10:10.641194: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1053] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 7566 MB memory) -> physical GPU (device: 0, name: Quadro P4000, pci bus id: 0000:00:05.0, compute capability: 6.1)
2019-07-25 05:10:27.643833: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:94] Filling up shuffle buffer (this may take a while): 2054 of 4000
2019-07-25 05:10:35.917445: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:129] Shuffle buffer filled.
2019-07-25 05:10:36.175698: E tensorflow/stream_executor/cuda/cuda_dnn.cc:455] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
2019-07-25 05:10:36.175820: E tensorflow/stream_executor/cuda/cuda_dnn.cc:463] possibly insufficient driver version: 384.183.0
2019-07-25 05:10:36.175842: E tensorflow/stream_executor/cuda/cuda_dnn.cc:427] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2019-07-25 05:10:36.175859: F tensorflow/core/kernels/conv_ops.cc:713] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms) 
Aborted (core dumped)

S'il vous plaît aider

J'ai un problème similaire : CUDNN_STATUS_ALLOC_FAILED.
Je me suis cassé la tête pendant 3-4 heures. Enfin fixé.
cela fonctionne en effet, comme mentionné ci-dessus par beaucoup :
config = tf.ConfigProto()
config.gpu_options.allow_growth = Vrai
session = tf.Session(config=config)

Mais la clé est de l'écrire immédiatement en dessous de "import tensorflow as tf", ce que je ne faisais pas. Je l'avais écrit après toutes les importations.

super réponse, a fonctionné pour moi !!

cela a fonctionné pour moi lors de l'ajout de ces lignes de code au début du script @Codersadis
ajoutez le code suivant au tout début du fichier .py, ce qui résout mon problème.
à partir du futur import print_function, division
importer tensorflow en tant que tf
depuis keras.backend.tensorflow_backend importer set_session
config = tf.ConfigProto()
config.gpu_options.allow_growth = Vrai
set_session(tf.Session(config=config))

J'obtiens la même erreur avec tensorflow-gpu == 1.8.0 , cudnn version = 7.0.5 et cuda 9.1.85
, ubuntu 16.04 même après avoir ajouté la solution suggérée ci-dessus.
Voici la trace de la pile :

INFO - Waveunet Training - Running command 'run'
INFO - Waveunet Training - Started
SCRIPT START
EPOCH: 0
Dataset ready!
Training...
Sep_Vars: 10265550
Num of variables65
2019-07-25 05:10:09.872823: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-07-25 05:10:10.286584: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:898] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-07-25 05:10:10.286914: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1356] Found device 0 with properties: 
name: Quadro P4000 major: 6 minor: 1 memoryClockRate(GHz): 1.48
pciBusID: 0000:00:05.0
totalMemory: 7.92GiB freeMemory: 7.83GiB
2019-07-25 05:10:10.286964: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1435] Adding visible gpu devices: 0
2019-07-25 05:10:10.640890: I tensorflow/core/common_runtime/gpu/gpu_device.cc:923] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-07-25 05:10:10.640952: I tensorflow/core/common_runtime/gpu/gpu_device.cc:929]      0 
2019-07-25 05:10:10.640968: I tensorflow/core/common_runtime/gpu/gpu_device.cc:942] 0:   N 
2019-07-25 05:10:10.641194: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1053] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 7566 MB memory) -> physical GPU (device: 0, name: Quadro P4000, pci bus id: 0000:00:05.0, compute capability: 6.1)
2019-07-25 05:10:27.643833: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:94] Filling up shuffle buffer (this may take a while): 2054 of 4000
2019-07-25 05:10:35.917445: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:129] Shuffle buffer filled.
2019-07-25 05:10:36.175698: E tensorflow/stream_executor/cuda/cuda_dnn.cc:455] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
2019-07-25 05:10:36.175820: E tensorflow/stream_executor/cuda/cuda_dnn.cc:463] possibly insufficient driver version: 384.183.0
2019-07-25 05:10:36.175842: E tensorflow/stream_executor/cuda/cuda_dnn.cc:427] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2019-07-25 05:10:36.175859: F tensorflow/core/kernels/conv_ops.cc:713] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms) 
Aborted (core dumped)

S'il vous plaît aider

Changer le pilote Nvidia en 396+ a résolu le problème pour moi.

Cela a à voir avec la fraction de mémoire disponible pour charger les ressources GPU afin de créer un handle cudnn, également connu sous le nom de per_process_gpu_memory_fraction .
Réduire cette fraction de mémoire par vous-même résoudra l'erreur.

> sess_config = tf.ConfigProto(gpu_options =
> tf.GPUOptions(per_process_gpu_memory_fraction=0.7),
> allow_soft_placement = True)
> 
> with tf.Session(config=sess_config) as sess:
>      sess.run([whatever])

Utilisez la plus petite fraction possible dans votre mémoire. (Dans le code, j'utilise 0,7, vous pouvez commencer avec 0,3 ou même plus petit, puis augmenter jusqu'à ce que vous obteniez la même erreur, c'est votre limite.)
Transmettez-le à votre tf.Session() ou tf.train.MonitoredTrainingSession() ou le sv.managed_session() de votre superviseur comme config.

Cela devrait permettre à votre GPU de créer un handle cudnn pour votre code TensorFlow.

J'obtenais l'erreur suivante avec tensorflow 2.0 dans mon environnement conda.

```2019-12-03 23:48:29.888625: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Ouverture réussie de la bibliothèque dynamique cudart64_100.dll
2019-12-03 23:49:06.381259: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Ouverture réussie de la bibliothèque dynamique nvcuda.dll
2019-12-03 23:49:07.220066: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Appareil trouvé 0 avec les propriétés :
nom : GeForce GTX 1660 Ti majeur : 7 mineur : 5 memoryClockRate (GHz) : 1,59
pciBusID : 0000:01:00.0
2019-12-03 23:49:07.236411: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] Les bibliothèques GPU sont liées de manière statique, ignorez la vérification dlopen.
2019-12-03 23:49:07.247476 : I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Ajout de périphériques gpu visibles : 0
2019-12-03 23:49:07.256881: I tensorflow/core/platform/cpu_feature_guard.cc:142] Votre CPU prend en charge les instructions que ce binaire TensorFlow n'a pas été compilé pour utiliser : AVX2
2019-12-03 23:49:07.269536: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Appareil trouvé 0 avec les propriétés :
nom : GeForce GTX 1660 Ti majeur : 7 mineur : 5 memoryClockRate (GHz) : 1,59
pciBusID : 0000:01:00.0
2019-12-03 23:49:07.281954: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] Les bibliothèques GPU sont liées de manière statique, ignorez la vérification dlopen.
2019-12-03 23:49:07.295302: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Ajout de périphériques gpu visibles : 0
2019-12-03 23:49:08.589865: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1159] Interconnexion de périphérique StreamExecutor avec matrice de bord de force 1:
2019-12-03 23:49:08.599121: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1165] 0
2019-12-03 23:49:08.610543: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1178] 0: N
03/12/2019 23:49:08.616005: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1304] Appareil TensorFlow créé (/job:localhost/replica:0/task:0/device:GPU:0 avec 4627 Mo de mémoire) -> GPU physique (appareil : 0, nom : GeForce GTX 1660 Ti, identifiant de bus pci : 0000 : 01:00.0, capacité de calcul : 7.5)
2019-12-03 23:49:58.521484: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Ouverture réussie de la bibliothèque dynamique cublas64_100.dll
2019-12-03 23:49:59.604517: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Bibliothèque dynamique ouverte avec succès cudnn64_7.dll
2019-12-03 23:50:04.209110: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Impossible de créer le handle cudnn : CUDNN_STATUS_NOT_INITIALIZED
2019-12-03 23:50:04.216670: E tensorflow/stream_executor/cuda/cuda_dnn.cc:333] Erreur lors de la récupération de la version du pilote : Non implémenté : la version du pilote signalée par le noyau n'est pas implémentée sous Windows
2019-12-03 23:50:04.226172: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Impossible de créer le handle cudnn : CUDNN_STATUS_NOT_INITIALIZED
2019-12-03 23:50:04.234741: E tensorflow/stream_executor/cuda/cuda_dnn.cc:333] Erreur lors de la récupération de la version du pilote : Non implémenté : la version du pilote signalée par le noyau n'est pas implémentée sous Windows
2019-12-03 23:50:04.244958: W tensorflow/core/common_runtime/base_collective_executor.cc:216] BaseCollectiveExecutor::StartAbort Unknown: Impossible d'obtenir l'algorithme de convolution. C'est probablement parce que cuDNN n'a pas pu s'initialiser, alors essayez de voir si un message de journal d'avertissement a été imprimé ci-dessus.
[[{{nœud séquentiel/conv2d/Conv2D}}]]

so i added the following code to my CNN

gpus = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(gpus[0], True)

My output is now

2019-12-04 00:10:07.708573: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Bibliothèque dynamique ouverte avec succès cudart64_100.dll
2019-12-04 00:10:11.643304: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Bibliothèque dynamique ouverte avec succès nvcuda.dll
2019-12-04 00:10:12.753615: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Appareil trouvé 0 avec les propriétés :
nom : GeForce GTX 1660 Ti majeur : 7 mineur : 5 memoryClockRate (GHz) : 1,59
pciBusID : 0000:01:00.0
2019-12-04 00:10:12.769498: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] Les bibliothèques GPU sont liées de manière statique, ignorez la vérification dlopen.
2019-12-04 00:10:12.783900: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Ajout de périphériques gpu visibles : 0
2019-12-04 00:10:54.941468: I tensorflow/core/platform/cpu_feature_guard.cc:142] Votre CPU prend en charge les instructions pour lesquelles ce binaire TensorFlow n'a pas été compilé pour être utilisé : AVX2
2019-12-04 00:10:55.372516 : I tensorflow/core/common_runtime/gpu/gpu_device.cc:1618] Appareil trouvé 0 avec les propriétés :
nom : GeForce GTX 1660 Ti majeur : 7 mineur : 5 memoryClockRate (GHz) : 1,59
pciBusID : 0000:01:00.0
2019-12-04 00:10:55.383385: I tensorflow/stream_executor/platform/default/dlopen_checker_stub.cc:25] Les bibliothèques GPU sont liées de manière statique, ignorez la vérification dlopen.
2019-12-04 00:10:55.406053 : I tensorflow/core/common_runtime/gpu/gpu_device.cc:1746] Ajout de périphériques gpu visibles : 0
2019-12-04 00:10:56.741665: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1159] Interconnexion de périphérique StreamExecutor avec matrice de bord de force 1:
2019-12-04 00:10:56.747255: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1165] 0
04-12-2019 00:10:56.752302: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1178] 0: N
04-12-2019 00:10:56.756861: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1304] Appareil TensorFlow créé (/job:localhost/replica:0/task:0/device:GPU:0 avec 4627 Mo de mémoire) -> GPU physique (appareil : 0, nom : GeForce GTX 1660 Ti, identifiant de bus pci : 0000 : 01:00.0, capacité de calcul : 7.5)
2019-12-04 00:11:08.281356: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Ouverture réussie de la bibliothèque dynamique cublas64_100.dll
2019-12-04 00:11:08.934804: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Ouverture réussie de la bibliothèque dynamique cudnn64_7.dll
2019-12-04 00:11:11.870237 : W tensorflow/stream_executor/cuda/redzone_allocator.cc:312] Interne : l'appel de ptxas n'est pas pris en charge sous Windows
S'appuyer sur le pilote pour effectuer la compilation ptx. Ce message ne sera enregistré qu'une seule fois.
```

Comme tout le monde l'a suggéré, cela est dû au tensorflow utilisant tous les GPU/GPU. Mon CNN s'entraîne sans erreur maintenant.

J'étais confronté au même problème lors de l'utilisation de la version de tensorflow prise en charge par la communauté dans un environnement conda (c'est-à-dire en utilisant > conda install tensorflow-gpu )

Il s'avère que cette version n'est pas vraiment bonne dans toutes les situations (même si je l'ai utilisée sur d'autres machines). La meilleure version à utiliser est la version installable de pip https://www.tensorflow.org/install/pip dans un environnement conda. Quand j'ai fait ça, tout a fonctionné.

C'est résolu pour moi, merci !

Cela a également résolu le problème pour moi.

GeForce GTX 1050, CUDA 10.0

Remarque: c'est la seule chose que je peux trouver qui fonctionne dans TF 2.0 pour le moment. Merci!

gpus = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(gpus[0], True)

Cela a également résolu le problème pour moi.

GeForce GTX 1050, CUDA 10.0

Remarque: c'est la seule chose que je peux trouver qui fonctionne dans TF 2.0 pour le moment. Merci!

gpus = tf.config.experimental.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(gpus[0], True)

Cela n'a fait aucune différence pour moi... TF 2.0, RTX 2060, CUDA 10.1, CuDNN 7.6

C'est avec 16 Go de RAM, 6 Go de mémoire vidéo et un modèle de jouet MNIST de base avec une couche de conv. Aucun problème de mémoire, juste une trace de pile.

Aucun problème de GPU avec Pytorch, comme d'habitude

Dans mon cas, j'ai deux machines, toutes deux avec RTX 2080Ti, TF 2.1, CUDA 10.1, CuDNN 7.6. L'un fonctionne, l'autre soulève l'erreur précitée. Les deux machines ont la même quantité de RAM, 16 Go. Il existe cependant des différences matérielles, comme le processeur. Mais le problème ne se produit que lors de l'utilisation du GPU.

Dans mon cas, j'ai deux machines, toutes deux avec RTX 2080Ti, TF 2.1, CUDA 10.1, CuDNN 7.6. L'un fonctionne, l'autre soulève l'erreur précitée. Les deux machines ont la même quantité de RAM, 16 Go. Il existe cependant des différences matérielles, comme le processeur. Mais le problème ne se produit que lors de l'utilisation du GPU.

Même plateforme, même problème

Si vous utilisez les derniers tensorflow et keras. Essayez ceci à partir d' ici , cela a fonctionné pour moi:

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
  try:
    # Currently, memory growth needs to be the same across GPUs
    for gpu in gpus:
      tf.config.experimental.set_memory_growth(gpu, True)
    logical_gpus = tf.config.experimental.list_logical_devices('GPU')
    print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
  except RuntimeError as e:
    # Memory growth must be set before GPUs have been initialized
    print(e)

Celui-ci fonctionne pour moi.
physical_devices = tf.config.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(physical_devices[0], True)

Celui-ci fonctionne pour moi.
physical_devices = tf.config.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(physical_devices[0], True)

Cela a fonctionné pour moi. Merci

@Samaritan1011001 votre solution fonctionne pour moi merci beaucoup.

Cette page vous a été utile?
0 / 5 - 0 notes