web-dev-qa-db-fra.com

Imprévisible CUDNN_STATUS_NOT_INITIALIZED sous Windows

J'exécute la formation et la prévision sur le réseau neuronal keras sur GTX 1070 sous Windows 10. La plupart du temps, cela fonctionne, mais de temps en temps, il se plaint.

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
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
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
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)

Cela ne peut être expliqué ni par le sens littéral de l'erreur, ni par l'erreur de MOO.

Comment réparer? 

5
Dims

Vous avez la solution à ce problème ..___ J'ai eu le même problème sous Windows 10 avec Nvidia GEforce 920M . Recherchez la version correcte de la bibliothèque cudnn. Si la version n'est pas compatible avec la version CUDA, l'erreur ne sera pas générée lors de l'installation de tensorflow mais interviendra lors de l'allocation de mémoire dans le GPU . Vérifiez vos versions CUDA et CUDNN. Suivez également les instructions relatives à la création des sessions mentionnées ci-dessus.

3
Junaid Ahmad

Essayez de limiter votre utilisation de gpu avec l'option set gpu per_process_gpu_memory_fraction. 

Faite-le avec lui pour voir ce qui fonctionne et ce qui ne fonctionne pas. 

Je recommande d'utiliser .7 comme base de départ.

3
Liam Healy

Enfin, le problème est maintenant résolu pour moi, j'ai passé de nombreuses heures à lutter contre cela.

Je recommande de suivre toutes les étapes de l’installation correctement, comme indiqué dans Links

TensorFlow- https://www.tensorflow.org/install/install_windows

et pour CuDNN - 

https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#install-windows

pour moi cela ne suffisait pas, j'ai essayé de mettre à jour mon pilote GeForce Game Ready depuis la fenêtre GeForce Experience et, après le redémarrage, cela a commencé à fonctionner pour moi.

Expérience GeForce

le pilote peut également être téléchargé à partir de link https://www.geforce.com/drivers

2
Arkil Shaikh

J'ai rencontré le problème parfois sur Windows10 et Keras . Redémarrer résoudre le problème pour une courte période, mais se reproduise.

Je me réfère à https://github.com/fchollet/keras/issues/1538

import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.3
set_session(tf.Session(config=config))

les paramètres résolvent le problème d'arrêt.

2
peroon

le tf doku m'aide beaucoup Permet une croissance de la mémoire GPU

La première est l’option allow_growth, qui tente d’allouer autant de mémoire GPU que d’allocations d’exécution: elle commence par allouer très peu de mémoire, et à mesure que les sessions sont exécutées et que de plus en plus de mémoire GPU est nécessaire, nous étendons la région de mémoire GPU requise par le système. Processus TensorFlow. Notez que nous ne libérons pas de mémoire, car cela pourrait aggraver la fragmentation de la mémoire. Pour activer cette option, définissez-la dans ConfigProto en:

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config, ...)

ou

with tf.Session(graph=graph_node, config=config) as sess:
     ...

La deuxième méthode est l'option per_process_gpu_memory_fraction, qui détermine la fraction de la quantité totale de mémoire allouée à chaque processeur graphique visible. Par exemple, vous pouvez indiquer à TensorFlow de n'allouer que 40% de la mémoire totale de chaque processeur graphique:

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