Tensorflow: Falha: não foi possível criar identificador cuDNN quando convnets são usados

Criado em 6 jan. 2017  ·  145Comentários  ·  Fonte: tensorflow/tensorflow

Tensorflow (GPU) foi importado com sucesso, mas ao executar uma sessão que envolve uma rede neural convolucional (CNN), o Python falha com a seguinte mensagem:

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)

O problema persiste em qualquer combinação do kit de ferramentas CUDA 7.5 / 8.0 e Tensorflow instalado a partir do pip / fonte. As sessões de teste que não usam CNNs são executadas com êxito.

Quais problemas relacionados ao GitHub ou threads de StackOverflow você encontrou ao pesquisar o seu problema na web?

O problema é semelhante a https://github.com/tensorflow/tensorflow/issues/6586 , onde comentei pela primeira vez. Mas, como estou tendo o problema em um Mac, sugeriram que abrisse um problema separado.

Informação do ambiente

Sistema operacional: macOS Sierra 10.12.2
Xcode versão 8.2 (8C38) (mais tarde, quando tentei o CUDA 7.5, instalei as ferramentas de linha de comando 7.3.1 porque o CUDA 7.5 não tinha suporte para os compiladores mais recentes).
Python 3.5.2 (anaconda)

Versão instalada do CUDA: tentei 8.0 (inicialmente) e 7.5 (relatado aqui, apenas kit de ferramentas - o driver ainda é 8.0)
Versão instalada do cuDNN: 5.1 (instalações diferentes de acordo com as versões CUDA)
(anexe o resultado 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

Tentei instalar a partir do pip e da fonte. Instalei pela primeira vez a partir do pacote binário pip:

  1. Um link para o pacote pip que você instalou:
    tensorflow-gpu
  2. A saída de python -c "import tensorflow; print(tensorflow.__version__)" .
    0.12.head

Mais tarde, instalei a partir da fonte (o pacote pip foi desinstalado):

  1. O hash de confirmação ( git rev-parse HEAD )
    d67c09d98a576e1fbf2f3609ddb842e53890f31c
  2. A saída de bazel version

    Rótulo de compilação: 0.4.3-homebrew
    Destino da compilação: bazel-out / local-opt / bin / src / main / java / com / google / devtools / build / lib / bazel / BazelServer_deploy.jar
    Tempo de compilação: Qui, 22 de dezembro, 15:20:15 de 2016 (1482420015)
    Carimbo de data e hora da compilação: 1482420015
    Carimbo de data / hora como int: 1482420015

Se possível, forneça um exemplo reproduzível mínimo

Fiz um exemplo mínimo simplificando a rede e reduzindo os dados de treinamento para apenas vinte imagens e duas classes para classificação. issue.zip contém o código Python e os dados. Eu escrevi duas camadas convolucionais porque descobri que a rede com apenas uma camada convolucional funciona sem problemas.

Registro completo usando CUDA 7.5 e Tensorflow compilado da fonte

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)

Registro completo usando CUDA 8.0 e Tensorflow instalado do 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

Comentários muito úteis

Aqui estão um pouco mais de informações sobre como resolvi isso temporariamente. Acredito que todos esses problemas estão relacionados à alocação de memória da GPU e não têm nada a ver com os erros relatados. Houve outros erros antes disso, indicando algum tipo de problema de alocação de memória, mas o programa continuou a progredir, eventualmente apresentando os erros cudnn que todos estão recebendo. O motivo pelo qual acredito que às vezes funciona é que, se você usar a gpu para outras coisas além do tensorflow, como a tela principal, a memória disponível flutua. Às vezes você pode alocar o que precisa e outras vezes não.

Da API
https://www.tensorflow.org/versions/r0.12/how_tos/using_gpu/
"Por padrão, o TensorFlow mapeia quase toda a memória da GPU de todas as GPUs (sujeito a CUDA_VISIBLE_DEVICES) visíveis para o processo. Isso é feito para usar com mais eficiência os recursos de memória da GPU relativamente preciosos nos dispositivos, reduzindo a fragmentação da memória."

Acho que essa alocação padrão é interrompida de alguma forma que faz com que esse comportamento errático e certas situações funcionem e outras falhem.

Resolvi esse problema alterando o comportamento padrão do TF para alocar uma quantidade mínima de memória e aumentar conforme necessário, conforme detalhado na página da web.
config = tf.ConfigProto ()
config.gpu_options.allow_growth = True
session = tf.Session (config = config, ...)

Também tentei a forma alternativa e consegui fazê-la funcionar, mas falhei ao escolher experimentalmente uma porcentagem que funcionou. No meu caso acabou sendo cerca de 0,7.

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

Ainda nenhuma palavra de ninguém da equipe TF confirmando isso, mas vale a pena tentar para ver se outros podem confirmar um comportamento semelhante.

Todos 145 comentários

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)

Eu encontrei exatamente o mesmo problema que você encontra com CUDA8 e TF r0.12.1.

@EncodeTS Acabei de adicionar um exemplo reproduzível mínimo ao meu primeiro post. Você poderia verificar se ele reproduz o problema em sua máquina? Na minha máquina, uma camada convolucional funciona, mas não duas camadas convolucionais, o que me levou a pensar que o problema pode ser causado por algumas limitações de recursos.

Posso confirmar que o exemplo mínimo @ymfa falha no MacOS NVidia 750, mas também o mesmo exemplo funciona no Linux / Titan X

O exemplo mínimo funciona no meu Ubuntu. Parece que o problema que encontrei tem uma probabilidade de ocorrência muito baixa no meu computador.

Estou encontrando o mesmo problema. O gráfico funcionará bem quando forçado para a CPU, mas travou na GPU.

Ambiente

OS: macOS 10.12.2
GPU: GeForce GT 750M
TF: 0.12.1 (instalação pip)
Python: 3.6.0
CUDA: 8.0
cuDNN: 5.1

(saída 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

Exemplo

O exemplo mínimo fornecido por @ymfa falha e é bem-sucedido em minha configuração. A seguir estão três saídas que foram produzidas.
falha (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

falhar (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)]]

passar

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!

Fechando automaticamente devido à falta de atividade recente. Atualize o problema quando novas informações estiverem disponíveis e nós reabriremos o problema. Obrigado!

Não tão rápido, também vejo esta falha. Macbook pro, geforce 650. TF v1. Rodando via kernels jupyter, que tenho que reiniciar com frequência. Talvez esta placa gráfica seja muito fraca? Vendo como o op usa a mesma carta: provável.

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) 

Tenho o mesmo problema com GTX 960m, cudnn5.1.5 e cuda-8.0.44.

Tenho o mesmo problema com centOS, titan X

Têm o mesmo problema com ubuntu (14.04) e GRID K520 (aws g2.2)

Tenho o mesmo problema do windows 10 cudnn 5.1 cuda 8 gtx 1060. O programa funciona na versão cpu do tensor flow, mas obtém esses mesmos erros com a versão gpu.

Tive o mesmo problema com gtx1060, win8.1, cuda8.0.60, cudnn5.0. Atualizado para a última compilação noturna estável tensorflow-gpu (atualmente http://ci.tensorflow.org/job/nightly-win/133/) e cudnn5.1. Problema resolvido.

O mesmo problema aqui.

Eu estava tendo esse problema com as versões de software listadas abaixo, exceto que o TF era a versão 1.0.0. Em seguida, atualizei para o TF 1.0.1. Executei o mesmo programa uma vez e funcionou . Em seguida, executei novamente e não funcionou - produziu o mesmo erro de antes.

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

tendo o mesmo problema com gtx650, ubuntu 16.04, CUDA versão 8.0.61, TF versão 1.0.0
estava funcionando agora, mas dando alguns avisos de pouca memória. No entanto, estava funcionando
Agora ele não funciona, dando-me o mesmo Check failed: stream-> parent () -> GetConvolveAlgorithms (& algorítmos) erro

Tendo o mesmo problema com gtx 1080 ti, windows 10, CUDA versão 8.0.61, TF versão 1.0.1, 5.1 Cudann, cuda 8.0.61

Consegui fazer um programa funcionar limitando o uso de gpu. No meu caso, com um 3gb gtx 1060 no ubuntu 16.04, se eu definir a opção gpu per_process_gpu_memory_fraction para .7, ele funcionará. Qualquer coisa maior, recebo esses erros

E tensorflow / stream_executor / cuda / cuda_dnn.cc: 397] não foi possível criar o identificador cudnn: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow / stream_executor / cuda / cuda_dnn.cc: 364] não conseguiu destruir o identificador de cudnn: CUDNN_STATUS_BAD_PARAM
F tensorflow / core / kernels / conv_ops.cc: 605] Falha na verificação: stream-> parent () -> GetConvolveAlgorithms (& algoritmos)

Pode ser um caso de relatório de erro ruim por tensorflow. Parece completamente não relacionado. Talvez seja uma pista para resolver isso de uma maneira melhor?

@ zheng-xq há um problema de configuração óbvio?

O mesmo problema também. Estou no 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ão foi possível criar o identificador 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] erro ao recuperar a versão do driver: Não implementado: versão do driver relatada pelo kernel não implementada no Windows
E c: \ tf_jenkins \ home \ workspace \ release-win \ device \ gpu \ os \ windows \ tensorflow \ stream_executor \ cuda \ cuda_dnn.cc: 326] não conseguiu destruir 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] Falha na verificação: stream-> parent () -> GetConvolveAlgorithms (& algoritmos)

Se isso ajuda alguém, parece que às vezes há processos zumbis restantes que impedem o tf de iniciar novamente de forma adequada e me deram este erro. matá-los contornar o problema.

Aqui estão um pouco mais de informações sobre como resolvi isso temporariamente. Acredito que todos esses problemas estão relacionados à alocação de memória da GPU e não têm nada a ver com os erros relatados. Houve outros erros antes disso, indicando algum tipo de problema de alocação de memória, mas o programa continuou a progredir, eventualmente apresentando os erros cudnn que todos estão recebendo. O motivo pelo qual acredito que às vezes funciona é que, se você usar a gpu para outras coisas além do tensorflow, como a tela principal, a memória disponível flutua. Às vezes você pode alocar o que precisa e outras vezes não.

Da API
https://www.tensorflow.org/versions/r0.12/how_tos/using_gpu/
"Por padrão, o TensorFlow mapeia quase toda a memória da GPU de todas as GPUs (sujeito a CUDA_VISIBLE_DEVICES) visíveis para o processo. Isso é feito para usar com mais eficiência os recursos de memória da GPU relativamente preciosos nos dispositivos, reduzindo a fragmentação da memória."

Acho que essa alocação padrão é interrompida de alguma forma que faz com que esse comportamento errático e certas situações funcionem e outras falhem.

Resolvi esse problema alterando o comportamento padrão do TF para alocar uma quantidade mínima de memória e aumentar conforme necessário, conforme detalhado na página da web.
config = tf.ConfigProto ()
config.gpu_options.allow_growth = True
session = tf.Session (config = config, ...)

Também tentei a forma alternativa e consegui fazê-la funcionar, mas falhei ao escolher experimentalmente uma porcentagem que funcionou. No meu caso acabou sendo cerca de 0,7.

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

Ainda nenhuma palavra de ninguém da equipe TF confirmando isso, mas vale a pena tentar para ver se outros podem confirmar um comportamento semelhante.

Também estou recebendo o erro CUDNN_STATUS_NOT_INITIALIZED . Aqui está o registro de erros completo:

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)

Estou no Windows 10, CUDA 8.0, cuDNN 5.1. Algo pode ser feito para evitá-los? Consegui executar anteriormente alguns outros testes de tensorflow e funcionou bem (incluindo conv op), mas agora não funciona neste novo teste ...

@ serans1 A que processos zumbis você está se referindo?

Informe-me se houver uma solução alternativa para isso. Obrigado!

EDITAR Isso pode ter sido um erro de novato, mas vou apenas mencioná-lo aqui, caso outra pessoa tenha o mesmo problema:
Meu problema era que eu já tinha executado uma instância de um Jupyter Python Notebook (cujas células já estavam todas rodadas, portanto carregadas na memória), e também algum outro processo que estava ocupando memória GPU (videogame minimizado). Portanto, quando verifiquei o uso de memória na minha GPU, já estava em torno de 4 + GB (50 +%). Fechei o Jupyter Notebook e o outro aplicativo e executei novamente meu teste de tensorflow. Agora tudo correu bem :) Além disso, durante a execução, notei que no pico ele usa até 90% da minha memória GPU e, portanto, faz sentido porque não foi possível inicializar o CUDNN quando tinha menos de 50% disponível na minha situação inicial .

Desculpe novamente pelo meu erro! Estou apenas começando a brincar com isso :)

O mesmo problema, existe alguma solução para isso?

I c: \ tf_jenkins \ home \ workspace \ release-win \ device \ gpu \ os \ windows \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc: 885] Dispositivo 0 encontrado com propriedades:
nome: GeForce GTX 960M
maior: 5 menor: 0 memoryClockRate (GHz) 1,176
pciBusID 0000: 01: 00.0
Memória total: 4,00 GiB
Memória livre: 3,35 GiB
I c: \ tf_jenkins \ home \ workspace \ release-win \ device \ gpu \ os \ windows \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc: 906] DMA: 0
I c: \ tf_jenkins \ home \ workspace \ release-win \ device \ gpu \ os \ windows \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc: 916] 0: Y
I c: \ tf_jenkins \ home \ workspace \ release-win \ device \ gpu \ os \ windows \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc: 975] Criando dispositivo TensorFlow (/ gpu: 0) -> (dispositivo: 0, nome: GeForce GTX 960M, id de barramento 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] Não foi possível identificar o nó NUMA de / job: localhost / replica: 0 / task: 0 / gpu: 0, padronizado para 0. Seu kernel pode não ter sido construído com suporte NUMA.
E c: \ tf_jenkins \ home \ workspace \ release-win \ device \ gpu \ os \ windows \ tensorflow \ stream_executor \ cuda \ cuda_dnn.cc: 385] não foi possível criar o identificador 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] erro ao recuperar a versão do driver: Permissão negada: não foi possível abrir o caminho da versão do driver para leitura : / proc / driver / nvidia / versão
E c: \ tf_jenkins \ home \ workspace \ release-win \ device \ gpu \ os \ windows \ tensorflow \ stream_executor \ cuda \ cuda_dnn.cc: 352] não conseguiu destruir cudnn handle: CUDNN_STATUS_BAD_PARAM
F c: \ tf_jenkins \ home \ workspace \ release-win \ device \ gpu \ os \ windows \ tensorflow \ core \ kernels \ conv_ops.cc: 532] Falha na verificação: stream-> parent () -> GetConvolveAlgorithms (& algoritmos)

Eu tenho exatamente o mesmo problema.
Mas posso executar meus códigos com acesso root (com sudo).
Atualmente estou trabalhando no Ubuntu 16.04 com GTX 960.
Minha versão do CUDA é 8.0 e estou usando o tensorflow 1.01

Windows 10 / Tensorflow 1.01
Eu estava usando perfeitamente, mas agora acidentalmente o mesmo erro aconteceu comigo

nome: GeForce GTX 1070
maior: 6 menor: 1 memoryClockRate (GHz) 1,7715
pciBusID 0000: 03: 00.0
Memória total: 8,00 GiB
Memória livre: 6,68 GiB
2017-05-08 21: 12: 16.103654: I 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: I c: \ tf_jenkins \ home \ workspace \ release-win \ device \ gpu \ os \ windows \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc: 918] 0: Y
2017-05-08 21: 12: 16.106710: I c: \ tf_jenkins \ home \ workspace \ release-win \ device \ gpu \ os \ windows \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc: 977] Criando dispositivo TensorFlow (/ gpu: 0) -> (dispositivo: 0, nome: GeForce GTX 1070, id de barramento 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ão foi possível criar o cudnn handle : 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] erro ao recuperar a versão do driver: Não implementado: versão do driver relatada pelo kernel não implementada no 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ão conseguiu destruir o cudnn handle : 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] Falha na verificação: stream- > pai () -> GetConvolveAlgorithms (& algoritmos)

O método de @strickon funcionou para mim. Parece que o tensorflow está tentando monopolizar muitos recursos de uma vez e não consegue, o que interrompe a operação. Eu usei especificamente:

config.gpu_options.allow_growth = True

Confirmar a sugestão de @strickon funciona para mim.

Estou executando https://github.com/awjuliani/DeepRL-Agents/blob/master/Double-Dueling-DQN.ipynb e estava obtendo as falhas mencionadas neste tópico na primeira chamada para sess.run dentro do bloco de atualização (o linha: Q1 = sess.run(mainQN.predict,feed_dict={mainQN.scalarInput:np.vstack(trainBatch[:,3])}) .

Adicionar o sinalizador allow_growth (conforme abaixo) me ajudou a superar esse problema - o código está atualmente em execução em segundo plano, veremos até onde ele vai.

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

Pilha:

  • MacBook Pro, executando Sierra 10.12.4, com NVIDIA GeForce GT 750M 2048 MB. Normalmente, tem apenas 1,7 GB de espaço livre.
  • TensorFlow 1.1 Usando instruções de instalação do Anaconda.
  • Python 3.6, não virtual (Anaconda)
  • CUDA 8 / cuDNN 5

Eu ficaria bem em despejar mais estatísticas a pedido.

Eu estava trabalhando com dois terminais ao mesmo tempo e tinha o mesmo problema. Foi resolvido com o fechamento de um terminal.

Fechando automaticamente devido à falta de atividade recente. Atualize o problema quando novas informações estiverem disponíveis e nós reabriremos o problema. Obrigado!

Depois de implementar as mudanças sugeridas por @strickon , comecei a ver um novo conjunto de logs de informações aparecer:

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)

Não tenho certeza se relacionado.

Mesmo erro aqui.

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

Estou tentando executar o exemplo padrão da seção de tutoriais do site:

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

python classify_image.py

Eu tenho o mesmo erro:

`
`` `
(C: \ ProgramData \ Anaconda3) C: \ Users \ Locky \ Google Диск \ MachineLearning \ Tensorflow-Tutorials \ Repo \ models \ tutorials \ image \ imagenet> python classify_image.py
25/06/2017 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] A biblioteca TensorFlow não foi compilado para usar instruções SSE, mas elas estão disponíveis em sua máquina e podem acelerar os cálculos da CPU.
25/06/2017 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] A biblioteca TensorFlow não foi compilado para usar instruções SSE2, mas elas estão disponíveis em sua máquina e podem acelerar os cálculos da CPU.
25/06/2017 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] A biblioteca TensorFlow não foi compilado para usar instruções SSE3, mas elas estão disponíveis em sua máquina e podem acelerar os cálculos da CPU.
25/06/2017 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] A biblioteca TensorFlow não foi compilado para usar instruções SSE4.1, mas elas estão disponíveis em sua máquina e podem acelerar os cálculos da CPU.
25/06/2017 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] A biblioteca TensorFlow não foi compilado para usar instruções SSE4.2, mas elas estão disponíveis em sua máquina e podem acelerar os cálculos da CPU.
25/06/2017 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] A biblioteca TensorFlow não foi compilado para usar instruções AVX, mas elas estão disponíveis em sua máquina e podem acelerar os cálculos da CPU.
25/06/2017 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] A biblioteca TensorFlow não foi compilado para usar as instruções AVX2, mas elas estão disponíveis em sua máquina e podem acelerar os cálculos da CPU.
25/06/2017 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] A biblioteca TensorFlow não foi compilado para usar as instruções FMA, mas elas estão disponíveis em sua máquina e podem acelerar os cálculos da CPU.
25/06/2017 18: 36: 32.707933: I c: \ tf_jenkins \ home \ workspace \ release-win \ m \ windows-gpu \ py \ 36 \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc: 940] Encontrado dispositivo 0 com propriedades:
nome: GeForce GTX 970
maior: 5 menor: 2 memoryClockRate (GHz) 1,253
pciBusID 0000: 01: 00.0
Memória total: 4,00 GiB
Memória livre: 3,31 GiB
25/06/2017 18: 36: 32.708332: I c: \ tf_jenkins \ home \ workspace \ release-win \ m \ windows-gpu \ py \ 36 \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc: 961] DMA : 0
25/06/2017 18: 36: 32.713764: I c: \ tf_jenkins \ home \ workspace \ release-win \ m \ windows-gpu \ py \ 36 \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc: 971] 0 : Y
25/06/2017 18: 36: 32.713991: I c: \ tf_jenkins \ home \ workspace \ release-win \ m \ windows-gpu \ py \ 36 \ tensorflow \ core \ common_runtime \ gpu \ gpu_device.cc: 1030] Criando Dispositivo TensorFlow (/ gpu: 0) -> (dispositivo: 0, nome: GeForce GTX 970, id de barramento pci: 0000: 01: 00.0)
25/06/2017 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 BatchNormWithGlobalNormalization é descontinuada. Ele deixará de funcionar no GraphDef versão 9. Use tf.nn.batch_normalization ().
25/06/2017 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ão foi possível criar punho cudnn: CUDNN_STATUS_NOT_INITIALIZED
25/06/2017 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] erro ao recuperar o driver versão: não implementada: versão do driver relatada pelo kernel não implementada no Windows
25/06/2017 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ão conseguiu destruir punho cudnn: CUDNN_STATUS_BAD_PARAM
25/06/2017 18: 36: 35.841690: F c: \ tf_jenkins \ home \ workspace \ release-win \ m \ windows-gpu \ py \ 36 \ tensorflow \ core \ kernels \ conv_ops.cc: 671] Falha na verificação: stream-> parent () -> GetConvolveAlgorithms (& algoritmos)

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

`` ``

No meu caso, isso aconteceu porque outras instâncias de tensorflow estavam segurando a GPU. (Outros scripts em execução.)

Posso propor mensagens de erro melhores? Diga, "Erro: outras instâncias de tensorflow em execução, embora apenas uma seja compatível."

Eu tenho o mesmo problema. Executando macOS 10.12.5 GT 750M 2 GB

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   

Resolvido (pelo menos para mim). A mensagem de erro não o leva ao problema certo. Eu tive este erro de 2 fontes diferentes:

Primeiro (como @lockywolf disse):
Eu uso o notebook jupyter e às vezes o kernel do TF não libera a memória da GPU e você tem que

Segundo:
Às vezes você fica ganancioso com a memória da GPU e tenta coisas como esta:

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

Isso foi fatal para minha configuração e comecei a receber esse erro. A solução foi usar a forma padrão para iniciar a sessão interativa :
sess = tf.InteractiveSession()

Sistema:

Ubuntu 14.04
GeForce GTX 780
Versão do driver CUDA = 8.0
Versão CUDNN = 5.1
Versão do TensorFlow = 1.2.1

Tenho o mesmo problema ao executar meus próprios scripts agora.
Acho que é a mesma razão que @lockywolf descreveu:

No meu caso, isso aconteceu porque outras instâncias de tensorflow estavam segurando a GPU. (Outros scripts em execução.)

Eu tive esse erro com frequência, mas irregular, então segui o exemplo de @RawthiL e adicionei uma sessão ao meu script. No entanto, executei o script, reiniciei o kernel e recebi a mesma mensagem de erro novamente. Existe alguma solução para abrir a sessão, reivindicar a GPU e fechá-la após o cálculo ser feito?

Felicidades!

Editar:
Ao lado da solução da @RawthiL , eu segui a introdução do

Devemos começar criando uma sessão do TensorFlow e registrando-a com Keras. Isso significa que Keras usará a sessão que registramos para inicializar todas as variáveis ​​que ele cria internamente.

importar tensorflow como tf
sess = tf.Session ()

do keras importe backend como K
K.set_session (sess)

Mesmo problema. Lutei muito para fazer isso funcionar o dia todo.

$ ~/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) 

Descobri que em alguns casos, redefinir o kernel do jupyter não funcionará. Na verdade, aconteceu comigo enquanto usava o jupyterhub.
Reiniciei o kernel, desativei meu virtualenv e a memória da GPU ainda estava sendo retida por algum processo. O comando nvidia-smi disse que não havia processo usando a GPU e quando tentei redefini-lo com sudo nvidia-smi --gpu-reset -i 0 (para o núcleo 0 gpu), ele disse o seguinte:

Não foi possível redefinir esta GPU porque ela está sendo usada por algum outro processo (por exemplo, aplicativo CUDA, aplicativo gráfico como o servidor X, aplicativo de monitoramento como outra instância do nvidia-smi). Primeiro elimine todos os processos usando esta GPU e todos os aplicativos de computação em execução no sistema (mesmo quando estiverem em execução em outras GPUs) e, em seguida, tente redefinir a GPU novamente.
Encerrando mais cedo devido a erros anteriores.

Então, havia algum processo segurando a GPU, e eu procurei por eles usando sudo fuser -v /dev/nvidia* que dizia que havia realmente algo segurando a GPU ... o próprio python ... matando-o e relançando o virtualenv e o jupyter fez o truque.
Posso não ser a melhor maneira de resolver isso, mas é melhor do que reiniciar o computador quando todas as outras opções falharem.

Tem o mesmo problema. GPU é GTX 1070 e CUDA 8.0 e CUDNN 5.1 para CUDA 8.0.

O problema não depende do código do usuário, depende do hardware ou do estado do software Nvidia ou Google. Este erro pode começar a aumentar a qualquer momento e a reinicialização pode corrigi-lo com o mesmo código de usuário.

Mesmo problema com Windows 10, GTX770, CUDA 8.0, CUDNN 5.1, TF-GPU 1.1.0, não tenho certeza de onde obter a versão do driver de dispositivo, mas o Gerenciador de Dispositivos do Windows relata 21.21.13.7651 para o driver de vídeo.

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)

Mesmo problema com Windows 10, GTX770, CUDA 8.0, CUDNN 5.1, TF-GPU 1.1.0, não tenho certeza de onde obter a versão do driver de dispositivo, mas o Gerenciador de Dispositivos do Windows relata 21.21.13.7651 para o driver de vídeo.

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)

A correção de @ggranum funcionou para mim:

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

No meu caso, o mesmo problema foi resolvido com a atualização do driver NVIDIA GPU.

Este problema foi completamente resolvido. Estou executando o TF 1.3.0 no Ubuntu 16.04 com CUDA 8.0 e cuDNN 5.1. Usei o Anaconda para instalar meus pacotes. Aleatoriamente, 4 dias atrás, eu também experimentei este erro

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)

Tenho 4 GPUs 1080ti. Durante a execução do meu modelo, monitorei nvidia-smi e obtive

-------------------------------------------------- --------------------------- +
| Processos: Memória GPU |
| Tipo de GPU PID Nome do processo Uso |
| ======================================================= ============================== |
| 0 1422 G / 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 |
+ ------------------------------------------------- ---------------------------- +

Portanto, por algum motivo, o Python está consumindo memória. Claro, se eu matar isso, meu caderno Jupyter será morto. Não tenho nenhum processo zumbi em execução. Eu tentei.

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

o que reduz o uso da GPU, mas ainda recebo o mesmo erro de identificador cuDDN. Eu reinstalei o TF. CUDA, cuDNN, Anaconda sem impacto no problema.

Por que esse erro ocorre aleatoriamente e como isso pode ser resolvido.

O TensorFlow 1.3 foi desenvolvido com base no cuDNN 6.
Atualize sua instalação cuDNN.

Obrigado, Gunan - isso não faz diferença, infelizmente. Mesmo com cuDNN 6, ainda estou obtendo que cuDNN não pode criar erro de identificador. Mesmo definir as GPUptions diretamente não evita o erro, embora reduza a quantidade de memória GPU usada. A memória da GPU é ocupada pelo Python, então, se eu desligar, ele fecha meu bloco de notas Jupyter. Eu estive preso nisso por quase 4 dias e agora pareço ter esgotado todas as sugestões que vi online. Isso poderia ser um problema do TF 1.3?

Apenas para aqueles que ficam loucos por isso:

Ocasionalmente, também recebo um erro CUBLAS. Então eu fiz isso:

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

e descobri que não conseguia inicializar CUBLAS

Em seguida, fiz isso (com base no conselho)

sudo rm -f ~/.nv

E funcionou. Saúde ..... isso é 4 dias perdidos. Espero que isso salve mais alguém

@ SimonWalsh1000 Funcionou !! obrigado

verifique seu .theanorc em seu caminho inicial (se Ubuntu) e defina o cnmem menor .... talvez cnmem = 0.8, e funcionou para mim agora

Fiz funcionar perfeitamente no Windows 10 com GTX 1070.
Eu estava usando o cudnn 7.0.2
O downgrade para o vs 6.0 resolveu meus problemas:

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

Postei todo o processo de instalação aqui:
http://klaatuveratanecto.com/installing-tensorflow-gpu-windows-10-running-image_retraining/

Oi, eu tenho a mesma pergunta. No entanto, descobri que o motivo é que usei tensorflow duas vezes ao mesmo tempo.

Por exemplo, geralmente usei o bloco de notas Jupyter para o script simples e usei o PyCharm para o projeto. Se eu não desligasse o notebook jupyter, poderia encontrar este erro no Pycharm.

Gostaria que isso pudesse ajudar.


WIndows10 64,
NVIDIA TitanX,
Driver 385,41,
Cuda 8.0.60
Cudnn 6.0
Python 3.5.2
Tensorflow 1.3

Eu concordo com @strickon : parece ser um problema de alocação de memória.
Eu tinha um notebook com o programa tensorflow rodando e tentei rodar um python + tensorflow em outro terminal Windows e obtive o erro. Então eu reiniciei meu notebook (libere memória GPU) e tentei rodar o python no terminal Windows novamente e funcionou! Acho que tensorflow deve fornecer uma mensagem de erro melhor para aconselhar o usuário com uma explicação mais detalhada.

Estou no windows 10, cuda 8 e cudnn 6 com:

nome: Quadro K620
maior: 5 menor: 0 memoryClockRate (GHz) 1,124
pciBusID 0000: 01: 00.0
Memória total: 2,00 GiB
Memória livre: 1,66 GiB

Praticamente as mesmas etapas funcionaram para mim também, tenho pouca compreensão de como isso funcionou. Acabei de fechar todas as janelas, fechei o terminal python aberto no pycharm - incluindo aquelas janelas abertas pela execução anterior do mesmo programa para traçar o progresso no treinamento e reabrir e executar - funciona sem erros. Os erros anteriores relatados parecem não dar nenhuma pista direta ---

Olá,
Eu tive o mesmo problema, executar python com sudo resolveu meu problema.

@ SimonWalsh1000 Você é meu herói !! Funciona para mim também!

@hesamaraghi Correr com sudo também nos ajudou. Conseguimos executar como não root adicionando nosso usuário não root ao grupo nvidia-persistenced . Veja meu comentário original: https://github.com/tensorflow/tensorflow/issues/14048#issuecomment -340898847

Tive o mesmo problema no Ubuntu 16.04 e cuda-8.0 (com GTX1080Ti). Gostaria apenas de informar a qualquer um de vocês com o mesmo problema que a solução fornecida por @ SimonWalsh1000 funcionou perfeitamente para mim (ou seja, o problema de inicialização do CUBLAS foi resolvido por sudo rm -rf ~/.nv/ ). Então, muito obrigado @ SimonWalsh1000 , me custou algumas horas ...

@ SimonWalsh1000 Funciona mesmo. Muito obrigado!

@ SimonWalsh1000 funciona

Tive o mesmo problema no Windows 10, CUDA 8.0, cuDNN 6.1 com GTX1070Ti.
Encontrei o motivo: executei o código de tensorflow no annconda spyder IDE e, depois disso, executei outro código de tensorflow no prompt annconda.
resolva fechando o IDE do spyder
@lockywolf está certo

Eu tive o mesmo problema. Eu tento o método do Resolvi este problema atualizando o cuDNN 7.0 para CUDA8.0

sistema no início:

  • Windows10
  • CUDA8.0
  • cuDNN6.0
  • Anaconda3.5 (python3.5)
  • GeForce 840M maior: 5 menor: 0 memoryClockRate (GHz): 1,124
  • 2,00GiB grátis; memória: 1,66GiB

sistema depois de resolvido:

  • Windows10
  • CUDA8.0
  • cuDNN7.0
  • Anaconda3.5 (python3.5)
  • GeForce 840M maior: 5 menor: 0 memoryClockRate (GHz): 1,124
  • 2,00GiB grátis; memória: 1,66GiB

Acho que esse problema pode ser causado pela incompatibilidade da versão da biblioteca e do hardware. @chleibig também resolve isso atualizando o driver da GPU. Espero que isso possa ser útil.

Para mim, colocar: config.gpu_options.allow_growth = True na sessão de tensorflow corrigiu o problema.
Cuda 8, tf 1.4, cudnn 6

execute esta correção do problema.

sudo rm -rf ~ / .nv

mesma questão. Existe alguma solução para resolver o problema?
Minha situação é:
nome: GeForce GTX 1080
memória total: 7,92 GiB memória livre: 2,50 GiB
tensorflow: gpu-1.4.0

Estou testando um gpu, mas executando três instâncias de tensorflow.
no meu código assim:
gpu_options = tf.GPUOptions (per_process_gpu_memory_fraction = 0.3)
sess = tf.Session (config = tf.ConfigProto (gpu_options = gpu_options))

as outras duas instâncias de tensorflow estão funcionando bem, mas apenas a última teve um erro como este:

E tensorflow / stream_executor / cuda / cuda_dnn.cc: 371] não foi possível criar o identificador cudnn: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow / stream_executor / cuda / cuda_dnn.cc: 338] não conseguiu destruir o identificador de cudnn: CUDNN_STATUS_BAD_PARAM
F tensorflow / core / kernels / conv_ops.cc: 672] Falha na verificação: stream-> parent () -> GetConvolveAlgorithms (conv_parameters.ShouldIncludeWinogradNonfusedAlgo(), e algoritmos)

porque? A configuração da GPU é muito pequena: gpu_options = tf.GPUOptions (per_process_gpu_memory_fraction = 0.3)
Não tenho certeza. quer alguma sugestão. Vou tentar.

Confira minha solução ....

Em 19 de dezembro de 2017 às 08:20, tbchj [email protected] escreveu:

mesma questão. Existe alguma solução para resolver o problema?
Minha situação é:
nome: GeForce GTX 1080
memória total: 7,92 GiB memória livre: 2,50 GiB
tensorflow: gpu-1.4.0

Estou testando um gpu, mas executando três instâncias de tensorflow.
no meu código assim:
gpu_options = tf.GPUOptions (per_process_gpu_memory_fraction = 0.3)
sess = tf.Session (config = tf.ConfigProto (gpu_options = gpu_options))

as outras duas instâncias de tensorflow estão funcionando bem, mas apenas a última foi executada
erro como este:

E tensorflow / stream_executor / cuda / cuda_dnn.cc: 371] não foi possível criar cudnn
identificador: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow / stream_executor / cuda / cuda_dnn.cc: 338] não conseguiu destruir
punho cudnn: CUDNN_STATUS_BAD_PARAM
F tensorflow / core / kernels / conv_ops.cc: 672] Falha na verificação:
stream-> parent () -> GetConvolveAlgorithms (conv_parameters.
ShouldIncludeWinogradNonfusedAlgo (), & algoritmos)

porque? A configuração da GPU é muito pequena: gpu_options = tf.GPUOptions (per_process_gpu_
memory_fraction = 0.3)
Não tenho certeza. quer alguma sugestão. Vou tentar.

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/tensorflow/tensorflow/issues/6698#issuecomment-352670885 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AJq-HpINYs1Uae6ghIW3qKCD56SUDhFeks5tB3HZgaJpZM4Lc7S1
.

-
Melhor
Simon

SLFWalsh MD MRCP FFRRCSI
[email protected]

No meu caso, estava passando a tocha em um fundo e tenho o mesmo problema.
Eu acho ... CUDNN_STATUS_INTERNAL_ERROR pode acontecer quando outro programa usando cudnn

No meu caso, posso executar o cudnn no ambiente ipython, porém, recebi as mesmas mensagens de erro quando tentei executar o código no notebook jupyter

Olá, estou com o mesmo problema e nenhuma das sugestões até agora me ajudou a resolvê-lo.
Estou usando um laptop Asus Zenbook Pro com Windows 10 com as seguintes especificações:

imagen

Minhas especificações de GPU são as seguintes:

imagen

Estou seguindo este tutorial: https://www.tensorflow.org/get_started/mnist/pros, no qual você deve implementar e treinar 1) uma regressão softmax e 2) um CNN multicamadas com o conjunto de dados MNIST.

Estes são meus códigos: MNIST_Tutorial.zip . O zip contém 2 arquivos: MNIST_softmax_regression.py e MNIST_multilayer_CNN.py.

1) Quando executo MNIST_softmax_regression.py, funciona bem:
imagen
Como você pode ver, a GPU está sendo usada e a precisão final é de cerca de 92% conforme esperado de acordo com o tutorial.

2) No entanto, quando executo MNIST_multilayer_CNN.py, o python trava:
imagen

Tentei duas soluções alternativas com base nas sugestões anteriores:

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

e

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

Nenhum deles funcionou, embora o segundo produza a seguinte saída:

imagen

como você pode ver, o tensorflow primeiro tenta alocar memória várias vezes (CUBLAS_STATUS_ALLOC_FAILED) até que aparentemente tenha sucesso, mas então o erro CUDNN_STATUS_NOT_INITIALIZED aparece e tudo falha novamente.

A propósito, instalei o tensorflow de acordo com a abordagem alternativa no final destas instruções: http://www.python36.com/install-tensorflow-gpu-windows/
imagen

Usei este instalador CUDA:
imagen
imagen

E usei este arquivo .whl para instalar o Tensorflow:
imagen

Aqui estão mais algumas informações sobre python, pip e conda:
imagen

Qualquer ajuda será profundamente apreciada.
Desde já, obrigado.

Olá,
Estou enfrentando o mesmo problema em duas máquinas diferentes:

Configuração 1:
Windows 10 Pro 64 bits
Informação GPU
Cuda 8.0
cudnn 6.0
Tensorflow 1.4
Python 3.6.4

Setup2:
Windows 10 Pro 64 bits
Informação GPU
CUDA 8.0
cudnn 6.0
Tensorflow 1.4
Python 3.6.2

Alguma atualização?

Ter uma configuração muito semelhante à anterior, executando em:

windows 10
GPU
tensorflow 1.5
CUDA 9.0.176
cudnn 7
python 3.6.4, anaconda

Eu tentei as alterações de configuração e ainda estou recebendo o conjunto de erros "CUDNN_STATUS_NOT_INITIALIZED".

Não tenho certeza de onde o equivalente da pasta .nv reside no Windows, então não consegui executar a solução @ SimonWalsh1000 .

@HeinzBenjamin , algum sucesso?

EDIT: Ainda confuso, pode ser porque estou no tensorflow 1.5 e CUDA 9?

Eu encontrei o mesmo problema.
No entanto, descobri que depois de instalar o CUDA 9.0, meu driver não será a versão mais recente.
Portanto, tente atualizar o driver Nvdia para a versão mais recente e reinicie o PC. Funciona para mim!

ontem meu código estava funcionando bem, houve uma atualização para o ubuntu esta manhã e agora meu código produz isso. nada mais mudou.

11/02/2018 07: 54: 57.097712: E tensorflow / stream_executor / cuda / cuda_dnn.cc: 385] não foi possível criar o identificador cudnn: CUDNN_STATUS_INTERNAL_ERROR
11/02/2018 07: 54: 57.097756: E tensorflow / stream_executor / cuda / cuda_dnn.cc: 352] não conseguiu destruir cudnn handle: CUDNN_STATUS_BAD_PARAM
11/02/2018 07: 54: 57.097767: F tensorflow / core / kernels / conv_ops.cc: 667] Falha na verificação: stream-> parent () -> GetConvolveAlgorithms (conv_parameters.ShouldIncludeWinogradNonfusedAlgo (), & algoritmos)

Reinicializei o sistema uma dúzia de vezes.
após algumas reinicializações, o erro mudou para

11/02/2018 07: 19: 33.487404: I tensorflow / stream_executor / cuda / cuda_dnn.cc: 393] versão do driver possivelmente insuficiente: 384.111.0 11/02/2018 07: 19: 33.487423: E tensorflow / stream_executor / cuda / cuda_dnn.cc:352] não foi possível destruir cudnn handle: CUDNN_STATUS_BAD_PARAM 2018-02-11 07: 19: 33.487439: F tensorflow / core / kernels / conv_ops.cc: 667] Falha na verificação: stream-> parent () -> GetConvolveAlgorithms ( conv_parameters.ShouldIncludeWinogradNonfusedAlgo (), & algoritmos)

mas depois de atualizar para 390.25 agora produz o primeiro erro novamente.

meu outro código de tensorflow funciona bem.

Eu também tentei remover o diretório nv, mas não teve efeito

ubuntu 17.10, gtx 1060 6gb

Recebi este erro no Windows 10 com CUDA 9.0 e GT 750M. Resolvi limitando o uso da GPU a 0,7 com: config.gpu_options.per_process_gpu_memory_fraction = 0,7

Como outra pessoa postou, qualquer coisa acima de 0,7 trava o Python.

Depois de receber também a trindade de erros:

CUDNN_STATUS_NOT_INITIALIZED
conv_parameters.ShouldIncludeWinogradNonfusedAlgo(), &algorithms)

Tentei a solução de @ zzhang68 ... Drivers atualizados depois que o 9.0 instalou drivers mais antigos.
_E funcionou! _

Windows 10 | GTX 980 Ti
CUDA 9.0 (que veio com drivers desatualizados !!!!)
\ cudnn-9.0-windows10-x64-v7 \ cuda \ bin (cudann64_7.dll) em PATH

python 3.6 miniconda
tensorflow-gpu 1.5.0

enfrentam o mesmo problema. tf1,5 py2,7 titã x cuda8.
config.gpu_options.allow_growth = True
não funciona

Recebi este erro no Windows 10 com CUDA 9.0 e GTX 1060.
python 3.5
tensorflow-gpu 1.5.0
Acho uma maneira fácil de resolver isso: atualize meu driver de vídeo NVIDIA para a versão mais recente, reinicie o PC
então funcionou!

@ SimonWalsh1000 , realmente funciona para mim, muito obrigado!

A solução de @strickon e @ggranum mais uma atualização de driver resolveu isso para mim. Meu palpite é que algumas pessoas personalizaram configurações de energia que esvaziam algumas funcionalidades até que sejam necessárias.

atualizar meu driver GPU resolveu esse problema para mim. meu driver GPU foi em dezembro de 2017 e o último foi em 26 de fevereiro de 2018.

você precisa ter o tensorflow correto, a versão CUDA, a versão cuDNN e o driver gpu para evitar este problema

minha especificação:
tensorflow 1.6
cuDNN v7.0.4 (13 de novembro de 2017), para CUDA 9.0 (tive que usar esta versão para o meu TF funcionar)

Veja como eu consertei. Eu tinha o CUDA 9.1 e o CUDA 9.0 instalados. Como outros, tive que atualizar meus drivers de GPU novamente após instalar o CUDA (por meio do programa Geforce Experience). O TensorFlow de back-end de Keras está usando CUDA 9.0 a partir da data de hoje, portanto, certifique-se de instalá-lo. Em seguida, baixe cuDNN 7.0.5 (não a versão 7.1 mais recente) em https://developer.nvidia.com/rdp/cudnn-download e, em seguida, extraia e copie as pastas bin, include, etc para o seu C: \ Program Pasta Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v9.0. Agora deve funcionar.

Obrigado por toda essa ajuda e depois de tentar degradar meu cuCNN de cnDNN-9.1 para cnDNN-9.0 e ele funciona.
Meu ambiente é Centos7 + CUDA 9.0 + Tensorflow 1.6

Mesmo erro em Python3.5, ubuntu 16.04, tf1.5
Atualizar o driver GPU para a versão 390.42 resolveu esse problema para mim.

Oi, pessoal,

Acabo de ter o mesmo problema
"E tensorflow / stream_executor / cuda / cuda_dnn.cc: 385] não foi possível criar o identificador cudnn: CUDNN_STATUS_INTERNAL_ERRORE tensorflow / stream_executor / cuda / cuda_dnn.cc: 352] não conseguiu destruir o identificador de cudnn: CUDNN_STATUS_BAD_PARAMF tensorflow / core / kernels / conv_ops.cc: 605] Falha na verificação: stream-> parent () -> GetConvolveAlgorithms (& algoritmos) "

e resolvido por:
1- Atualização do driver NVIDIA Geforce920M
2- Configurando adequadamente a sessão tf da seguinte forma:
config = tf.ConfigProto ()
config.gpu_options.allow_growth = True
sess = tf.Session (config = config)
3- Reiniciando o Pc

Depois disso, recebi uma mensagem de erro mais precisa:
"cuDNN7.1 encontrado, mas cuDNN7.0 esperado. Atualizar"

E resolvido por:
em vez de atualizar o resto (tf, cuda, ..) para atender a cuDNN, eu rebaixei cuDNN7.0 para atender ao resto.
(rebaixando cuDNN de 7.1 para 7.0.4) e funcionou bem.

Também encontrei este erro quando estava executando o The Cnn_Mnist.py

ambiente INFO:

  • 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      |
+-----------------------------------------------------------------------------+

Erro INFO:

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)

Espero sinceramente obter a ajuda de todos: D

No meu caso (Windows 10), esse problema foi causado pelo uso da versão errada do cuDNN. Embora eu tenha seguido as instruções oficiais do TensorFlow de perto, eu acidentalmente baixei a versão 7.0.5 para CUDA 9.1, enquanto TF chama explicitamente para CUDA 9.0.

Assim que corrigi o erro cuDNN, meus convnets começaram a funcionar 💯 👍 🥇 :)

Mesmo problema tf 1.2, cuda 8.0, cudnn 5.1
Drivers atualizados da NVIDIA

Bem, consegui atualizar o driver da nvidia para a última versão de acordo com o cuda, e funciona. Portanto, você pode tentar este método.

Bem bem. Não pode funcionar bem. O problema ocorre novamente

Usando: cudnn-9.0-windows10-x64-v7 e tensorflow-gpu == 1.7.0

tutorials \ image \ imagenet> python classify_image.py
falha com erro: não foi possível criar identificador cudnn: CUDNN_STATUS_INTERNAL_ERROR

Adicionar as três linhas de código do ggranum acima resolve o problema

Para mim, o problema era usar cudnn lib errado
Usei cudnn para cuda 9.1 quando tinha cuda 9.0. Então eu reinstalei o cudnn para cuda 9.0 e tudo funcionou.

Tenho o mesmo problema com Win10 / Anaconda3 / tf-1.3 / keras-2.1.3
adicione o código a seguir bem no início do arquivo .py, o que resolve meu problema.

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
Isso funciona para mim :)

Obrigado @ zzhang68 . Sua solução funcionou para mim.

Adicionar isso no início do arquivo funcionou para mim:

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

GTX 1070. Estava recebendo esse problema. Meu driver foi atualizado pela última vez em 2017. Atualizei-o para o driver mais recente (maio de 2018), reiniciei meu computador e parei de ter o problema. Espero que isto ajude

funciona para mim também com a solução @ zzhang68 .
Ubuntu16.04, tensorflow1.7, nvidia1080, cuda9.0, cudnn7.05.
Depois de atualizar o driver para 390.59, o problema desapareceu.

Outra opção para win10 usando cpu tensorflow ... tente

def run_inference_for_single_image (imagem, gráfico):
com graph.as_default ():
config = tf.ConfigProto (
device_count = {'GPU': 0}
)
com tf.Session (config = config) como sess:

@ lwd1132438569 Posso perguntar qual "versão mais recente" você quer dizer? Também encontro esse problema com meu Ubuntu, e tenho python 3.5.2, CUDA 9.0, tensorflow-gpu 1.9.0, o driver é 390.48 agora.
Eu quero tentar, mas temo que o tensorflow não suporte a versão 'mais recente' agora ....
Obrigado1

@vburca muito obrigado. Eu não percebi que ter outro noteboook jupyter iria usar a memória da GPU. Muito obrigado!!!

Eu enfrentei o mesmo problema. No meu caso, fiz downgrade da versão do tensorflow e funcionou para a minha aplicação.

Eu encontrei o mesmo problema. No meu caso, esse motivo foi a falta de memória do sistema. Quando terminei a execução de outro aplicativo, o problema havia desaparecido.

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 para CUDA9.0
TensorFlow 1.10.1
Executar um tensorflow simples como hello world sem problemas.
Em nenhum lugar para saber por que isso aconteceu .................

definitivamente problema de memória relacionado ao cuda, mate todos os outros processos relacionados ao cuda e treine / teste seu modelo, isso deve resolver o problema

A solução

[Resolvido] No meu caso, instalei o CUDA v9.2 e o cuDNN correspondente, mas não instalei corretamente o cuDNN específico para CUDA v9.0 que o tensorflow requer.

Certifique-se de baixar a versão correta do cuDNN aqui: https://developer.nvidia.com/rdp/cudnn-archive

e NÃO o daqui: https://developer.nvidia.com/cudnn

O truque de ouro, reiniciar tudo, funcionou para mim.

Reiniciar também funcionou para mim 👍
(Mas uma explicação de por que isso acontece seria muito bom)

cuDNN

Eu estava enfrentando o mesmo problema. Modelos com camadas de convolução não funcionariam.
Baixei o cuDNN versão 7.0 para CUDA 9.0. Depois de substituir o arquivo cudnn64_7.dll, posso usar convnets sem complicações.

Versão da DLL que causa problemas => 6.14.11.9020
Versão da DLL que resolveu o problema => 6.14.11.9000
Versão da GPU Tensorflow => 1.11.00
Versão CUDA => 9.0
Versão Python => 3.5
SO => Windows 10
Outras etapas => Crie um arquivo BAT para anexar à variável PATH e, em seguida, inicie o CMD.EXE com a opção / k
obrigado a todos.

Consegui fazer um programa funcionar limitando o uso de gpu. No meu caso, com um 3gb gtx 1060 no ubuntu 16.04, se eu definir a opção gpu per_process_gpu_memory_fraction para .7, ele funcionará. Qualquer coisa maior, recebo esses erros

E tensorflow / stream_executor / cuda / cuda_dnn.cc: 397] não foi possível criar o identificador cudnn: CUDNN_STATUS_INTERNAL_ERROR
E tensorflow / stream_executor / cuda / cuda_dnn.cc: 364] não conseguiu destruir o identificador de cudnn: CUDNN_STATUS_BAD_PARAM
F tensorflow / core / kernels / conv_ops.cc: 605] Falha na verificação: stream-> parent () -> GetConvolveAlgorithms (& algoritmos)

Pode ser um caso de relatório de erro ruim por tensorflow. Parece completamente não relacionado. Talvez seja uma pista para resolver isso de uma maneira melhor?

Ótimo, quando eu diminuo o gpu_memory_fraction de 0,8 para 0,7, ele começa a funcionar!

Eu enfrentei esse problema depois de atualizar acidentalmente o tensorflow-gpu da versão 1.6.0 para 1.18.0. Isso causou instabilidade devido às versões de CUDA e cuDNN. A solução era reverter para tensorflow-gpu 1.6.0.

Esta foi a solução para meus problemas:

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

Sempre que você começar a enfrentar esse tipo de problema, antes de atualizar suas dependências NVIDIA, SEMPRE tente resolver o problema desinstalando as versões do tensorflow e instalando primeiro uma versão compatível com suas dependências CUDA.

Etapa 1: Verifique as versões dos pacotes tensorflow. Se você tiver GPU, recomendo desinstalar a versão cpu do tensorflow para evitar conflitos.

pip list | grep tensorflow

Etapa 2: Desinstalar tensorflow-gpu.

pip uninstall tensorflow

Etapa 3: verifique suas versões CUDA e cuDNN. Você pode precisar ajustar esses caminhos.

- CUDA
cat /usr/local/cuda/version.txt
Caso isso falhe, encontre seu arquivo de texto da versão cuda usando:
sudo find / -name version.txt

- cuDNN
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
Caso isso falhe, encontre seu arquivo de texto da versão cuda usando:
sudo find / -name cudnn.h

Etapa 4: verifique se as versões tensorflow-gpu, cuda e cudnn correspondem a esta tabela.
image

No meu caso, eu precisava do tensorflow-gpu 1.6.0 para atender aos outros requisitos.

Então, instalei esta versão usando:
pip install tensorflow-gpu==1.6.0
essas são as especificações que funcionaram!

SO: Ubuntu 16.04
Versão CUDA: 9.0, V9.0.176
Versão cuDNN: 7.0
Versão do Tensorflow-gpu: 1.6.0
Versão Python: 3.5.0

Boa sorte!

No meu caso, esqueci de fechar o notebook jupyter quando comecei a executar outro trecho de código no código VS. Fechar o notebook jupyter corrigiu o problema.

Eu enfrentei esse mesmo problema.
No meu caso, eu estava executando o notebook Jupyter enquanto treinava minha rede.
Fechar o caderno Jupyter resolveu meu problema.

(Eu acho que pode ter que fazer algo com demandas muito altas de minha GPU)

Espero que tenha ajudado!

oi, pessoal, eu enfrentei os mesmos problemas.i usando win10 tensorflow-gpu1.8.0 cuda 9.0 NVIDA gtx1050Ti, quando eu mudo a versão do cudann de 7.0 para 7.1, o problema foi resolvido

Eu enfrentei o mesmo problema hoje (gtx1080, cuda 9.2, tfversion = 1.12.0). Então, no meu caso, eu estava executando o Jupyter Notebook e, em seguida, tentei executar meu outro script, que foi quando o erro foi lançado. O que foi resolvido é, como disse @RoytenBerge , desligar o jupyter kernal.

funcionou para mim ao adicionar essas linhas de código ao início do script @Codersadis

adicione o código a seguir bem no início do arquivo .py, o que resolve meu problema.

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

@ drproy2k obrigado, funcionou para mim também. Eu estava executando o prompt do anaconda enquanto o spyder estava em execução. depois que desliguei o spyder, funcionou perfeitamente!

Este erro é devido a um problema de memória RAM. Sugiro que você aumente para 32 GB ou 64 GB de RAM DDR3 ou DDR4.
Reduza também a quantidade / tamanho dos dados que estão sendo inferidos.

Não é a GPU. Tenho 2 placas X 1080Ti em SLI.

Eu segui o guia de instalação da versão para resolver este
https://www.tensorflow.org/install/source#tested_source_configurations. A configuração compatível
TF 1.12
TF-gpu 1.9
CUDA 8

mesmo problema com GeForce GTX 970, CUDNN 7.4.1, CUDA 9.0.176, TF-gpu 1.12.0

Eu estava enfrentando o mesmo problema ao usar a versão suportada pela comunidade do tensorflow dentro de um ambiente conda (ou seja, usando> conda install tensorflow-gpu)

Acontece que esta versão não é realmente boa em todas as situações (embora eu a tenha usado em outras máquinas). A melhor versão a ser usada é a versão instalável pip https://www.tensorflow.org/install/pip dentro de um ambiente conda. Quando fiz isso, tudo funcionou.

Eu não percebi que tinha a versão Cuda 10.0 do CUDNN lib instalada junto com o CUDA 9.0 que eu tinha instalado atualmente. Depois de fazer o download e substituir o V10 CUDNN pelo V9.0 CUDNN, tudo funcionou perfeitamente!
Isso foi uma negligência por não conseguir instalar as coisas corretamente e, olhando para trás, posso ver o porquê ... Se você chegou até aqui e está cansado de experimentar, escrevi uma postagem no blog em https: //aaronjencks.blogspot .com / 2019/03 / the-ultimate-guide-to- installation.html que o guiará por todo o processo de fazer com que o tensorflow e todas as suas dependências funcionem do início ao fim

@kheffah tendo o mesmo problema dentro do conda. Já usando pip para instalar TF e Keras.
GPU GT 840M, compatível com computação 5.0, CUDA 9, cuDNN 7.4.2, TF 1.12.0. Windows 8 x64

o código de teste funciona bem

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)

este é o erro do spyder. já tente o truque da memória 0.7 e do crescimento. sem sorte

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"]()]]

Mudar para tensorflow 1.7

Na quinta-feira, 3 de janeiro de 2019, 19:29 maxi.wu < [email protected] escreveu:

@kheffah https://github.com/kheffah tendo o mesmo problema dentro do conda.
Já usando pip para instalar TF e Keras.
GPU GT 840M, compatível com computação 5.0, CUDA 9, cuDNN 7.4.2, TF 1.12.0.
Windows 8 x64

o código de teste funciona bem

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

este é o erro do spyder. já tente o truque da memória 0.7 e do crescimento.
sem sorte

classifier.fit_generator (training_set,
passos_por_epoch = 32,
épocas = 25,
verbose = 1,
validação_data = test_set,
validation_steps = 6,25)
Época 1/25
Traceback (última chamada mais recente):

Arquivo "", linha 11, em
validation_steps = 6,25)

Arquivo "c: \ Users \ maxi.wu \ AppData \ Local \ conda \ conda \ envs \ tfgpu \ lib \ site-packages \ keras \ legacy \ interfaces.py", linha 91, no wrapper
função de retorno ( args, * kwargs)

Arquivo "c: \ Users \ maxi.wu \ AppData \ Local \ conda \ conda \ envs \ tfgpu \ lib \ site-packages \ keras \ engine \ training.py", linha 1418, em fit_generator
inicial_epoch = inicial_epoch)

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

Arquivo "c: \ Users \ maxi.wu \ AppData \ Local \ conda \ conda \ envs \ tfgpu \ lib \ site-packages \ keras \ engine \ training.py", linha 1217, em train_on_batch
saídas = self.train_function (ins)

Arquivo "c: \ Users \ maxi.wu \ AppData \ Local \ conda \ conda \ envs \ tfgpu \ lib \ site-packages \ keras \ backend \ tensorflow_backend.py", linha 2715, em __call__
retornar self._call (entradas)

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

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

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

UnknownError: Falha ao obter o algoritmo de convolução. Isso provavelmente ocorre porque cuDNN falhou ao inicializar, então tente ver se uma mensagem de log de aviso foi impressa acima.
[[{{node conv2d_1 / convolution}} = Conv2D [T = DT_FLOAT, _class = [" loc: @ training / Adam / gradients / conv2d_1 / convolution_grad / Conv2DBackpropFilter "], data_format = "NCHW", dilatações = [1, 1 , 1, 1], preenchimento = "VALID", passos = [1, 1, 1, 1], use_cudnn_on_gpu = true, _device = "/ job: localhost / replica : 0 / tarefa: 0 / dispositivo : GPU: 0 " ] (treinamento / 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éplica : 0 / tarefa: 0 / dispositivo : GPU: 0 ", send_device_incarnation = 1, tensor_name =" edge_609_loss / mul ", tensor_type = DT_FLOAT, _device =" / job: localhost / réplica : 0 / tarefa: 0 / dispositivo : CPU : 0 "] ()]]

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/tensorflow/tensorflow/issues/6698#issuecomment-451079405 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/ABE215xY0OhbFjA_GhVtEIDl_IB4qQGmks5u_b9NgaJpZM4Lc7S1
.

Eu tive o mesmo problema no sistema win10. mas descobriu-se que é um problema de memória. Mate o outro aplicativo em execução que consome enormes recursos de memória e tente.

Tive um problema semelhante no windows 10 NVIDIA GEFORCE GTX 1050 e assim que fechei todas as outras tarefas em execução e tentei novamente como sugerido por

Definitivamente relacionado à memória. Você deve atualizar sua RAM para até 64 GB.

Na sexta-feira, 18 de janeiro de 2019 às 17h30, Samuel Nde [email protected] escreveu:

Tive um problema semelhante no windows 10 NVIDIA GEFORCE GTX 1050 e logo
quando fechei todas as outras tarefas em execução e tentei novamente, conforme sugerido por @ xhm1014
https://github.com/xhm1014 acima, meu código começou a funcionar como
naquela. Acho que deve ser um problema de memória.

-
Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/tensorflow/tensorflow/issues/6698#issuecomment-455441208 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/ABE217cdDKUuRtdD9jJ_eh2tJWrm2fjeks5vEWnwgaJpZM4Lc7S1
.

Eu encontrei o erro e o 'consertei' fechando minhas várias instâncias do Jupyter e fechando outros aplicativos. Eu sou novo no trabalho com tensorflow em geral, então é provável que isso só tenha corrigido meu problema.

E tensorflow / stream_executor / cuda / cuda_dnn.cc: 353] Não foi possível criar o identificador cudnn: CUDNN_STATUS_INTERNAL_ERROR

Tive esse problema com o 10.1 Cuda + cuDNN7.5 e o TF 1.11 compilados a partir do código-fonte com o cuda. O script que estava tentando usar precisava que estas linhas fossem inseridas em algum lugar:
config = tf.ConfigProto() config.gpu_options.allow_growth = True

e depois:
sess = tf.Session(graph=detection_graph,config=config)

Feito isso, muitos "erros de falta de memória da GPU" - mas a detecção ocorre muito rapidamente, como suponho que deveria quando estamos usando a GPU. Obrigado por compartilhar!

Eu enfrentei os mesmos problemas. E o uso abaixo da linha consertou. verifique aqui obter detalhes.
export LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: / usr / local / cuda / extras / CUPTI / lib64

@EncodeTS Acabei de adicionar um exemplo reproduzível mínimo ao meu primeiro post. Você poderia verificar se ele reproduz o problema em sua máquina? Na minha máquina, uma camada convolucional funciona, mas não duas camadas convolucionais, o que me levou a pensar que o problema pode ser causado por algumas limitações de recursos.

Na verdade, estou trabalhando no Ubuntu 18.04, não no macOS, mas parece fazer sentido que pode ser causado por algumas limitações de recursos. Eu também enfrentei o mesmo problema na GTX 1050 ti (4 GB), mas o problema foi embora quando executei a mesma arquitetura na GTX 1080 ti (11 GB). Embora todos os ambientes não sejam iguais entre os dois sistemas, tentei o meu melhor usando o contêiner docker.

Este problema geralmente está relacionado à versão do cuda e da memória GPU, se for anterior, a maneira mais fácil é trocar sua versão do cuda pelo Anaconda! se mais tarde, você pode encontrar algumas maneiras de resolver em outras respostas.
Esse problema geralmente está relacionado à memória de vídeo e à versão cuda. ​​Se o método acima de alterar a memória da GPU for inválido, considere alterar a versão cuda. ​​A maneira mais fácil é não se preocupar com a versão cuda instalada no sistema, diretamente no ambiente de projeto no Anaconda Basta modificar a versão cuda, e o pró-teste é válido.

se você ainda estiver tendo esse problema, tente o seguinte. funcionou para mim
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

Eu tenho um problema semelhante: CUDNN_STATUS_ALLOC_FAILED.
Quebrei minha cabeça por 3-4 horas. Finalmente corrigido.
isso realmente funciona, conforme mencionado acima por muitos:
config = tf.ConfigProto ()
config.gpu_options.allow_growth = True
session = tf.Session (config = config)

Mas a chave é escrevê-lo imediatamente abaixo de "import tensorflow as tf", o que eu não estava fazendo. Eu tinha escrito depois de todas as importações.

Pode ser que a versão do tensorflow-gpu esteja com problemas, você deve verificar suas próprias versões tente novamente e novamente, desinstale e instale ... tensorflow-gpu encontre o número da versão correspondente e então desinstale e reinstale

funcionou para mim ao adicionar essas linhas de código ao início do script @Codersadis

adicione o código a seguir bem no início do arquivo .py, o que resolve meu problema.

de importação futura print_function, division
importar tensorflow como tf
de keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto ()
config.gpu_options.allow_growth = True
set_session (tf.Session (config = config))

Estou recebendo o mesmo erro com tensorflow-gpu == 1.8.0 , cudnn version = 7.0.5 e cuda 9.1.85
, ubuntu 16.04 mesmo depois de adicionar a solução sugerida acima.
A seguir está o rastreamento de pilha:

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)

Por favor ajude

Eu tenho um problema semelhante: CUDNN_STATUS_ALLOC_FAILED.
Quebrei minha cabeça por 3-4 horas. Finalmente corrigido.
isso realmente funciona, conforme mencionado acima por muitos:
config = tf.ConfigProto ()
config.gpu_options.allow_growth = True
session = tf.Session (config = config)

Mas a chave é escrevê-lo imediatamente abaixo de "import tensorflow as tf", o que eu não estava fazendo. Eu tinha escrito depois de todas as importações.

ótima resposta, funcionou para mim !!

funcionou para mim ao adicionar essas linhas de código ao início do script @Codersadis
adicione o código a seguir bem no início do arquivo .py, o que resolve meu problema.
de importação futura print_function, division
importar tensorflow como tf
de keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto ()
config.gpu_options.allow_growth = True
set_session (tf.Session (config = config))

Estou recebendo o mesmo erro com tensorflow-gpu == 1.8.0 , cudnn version = 7.0.5 e cuda 9.1.85
, ubuntu 16.04 mesmo depois de adicionar a solução sugerida acima.
A seguir está o rastreamento de pilha:

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)

Por favor ajude

Alterar o driver da Nvidia para 396+ resolveu o problema para mim.

Tem a ver com a fração de memória disponível para carregar recursos da GPU para criar o cudnn handle, também conhecido como per_process_gpu_memory_fraction .
Reduzir sozinho essa fração de memória resolverá o erro.

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

Use a menor fração que puder caber em sua memória. (No código, eu uso 0,7, você pode começar com 0,3 ou ainda menor, depois aumentar até obter o mesmo erro, esse é o seu limite.)
Passe para seu tf.Session() ou tf.train.MonitoredTrainingSession() ou sv.managed_session() do Supervisor como configuração.

Isso deve permitir que sua GPU crie um identificador cudnn para seu código do TensorFlow.

Eu estava recebendo o seguinte erro com tensorflow 2.0 em meu ambiente conda.

`` `2019-12-03 23: 48: 29.888625: I tensorflow / stream_executor / platform / default / dso_loader.cc: 44] Biblioteca dinâmica aberta com sucesso cudart64_100.dll
03-12-2019 23: 49: 06.381259: I tensorflow / stream_executor / platform / default / dso_loader.cc: 44] Biblioteca dinâmica nvcuda.dll aberta com sucesso
03-12-2019 23: 49: 07.220066: I tensorflow / core / common_runtime / gpu / gpu_device.cc: 1618] Dispositivo 0 encontrado com propriedades:
nome: GeForce GTX 1660 Ti maior: 7 menor: 5 memoryClockRate (GHz): 1,59
pciBusID: 0000: 01: 00.0
03/12/2019 23: 49: 07.236411: I tensorflow / stream_executor / platform / default / dlopen_checker_stub.cc: 25] Bibliotecas de GPU estão estaticamente vinculadas, pule a verificação dlopen.
03/12/2019 23: 49: 07.247476: I tensorflow / core / common_runtime / gpu / gpu_device.cc: 1746] Adicionando dispositivos gpu visíveis: 0
03/12/2019 23: 49: 07.256881: I tensorflow / core / platform / cpu_feature_guard.cc: 142] Sua CPU suporta instruções que este binário TensorFlow não foi compilado para usar: AVX2
03/12/2019 23: 49: 07.269536: I tensorflow / core / common_runtime / gpu / gpu_device.cc: 1618] Dispositivo 0 encontrado com propriedades:
nome: GeForce GTX 1660 Ti maior: 7 menor: 5 memoryClockRate (GHz): 1,59
pciBusID: 0000: 01: 00.0
03/12/2019 23: 49: 07.281954: I tensorflow / stream_executor / platform / default / dlopen_checker_stub.cc: 25] Bibliotecas de GPU estão estaticamente vinculadas, pule a verificação dlopen.
03/12/2019 23: 49: 07.295302: I tensorflow / core / common_runtime / gpu / gpu_device.cc: 1746] Adicionando dispositivos gpu visíveis: 0
03-12-2019 23: 49: 08.589865: I tensorflow / core / common_runtime / gpu / gpu_device.cc: 1159] StreamExecutor de interconexão de dispositivo com matriz de borda de força 1:
03/12/2019 23: 49: 08.599121: I tensorflow / core / common_runtime / gpu / gpu_device.cc: 1165] 0
03-12-2019 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] Dispositivo TensorFlow criado (/ job: localhost / replica: 0 / task: 0 / device: GPU: 0 com 4627 MB de memória) -> GPU física (dispositivo: 0, nome: GeForce GTX 1660 Ti, id do barramento pci: 0000: 01: 00.0, capacidade de computação: 7,5)
03-12-2019 23: 49: 58.521484: I tensorflow / stream_executor / platform / default / dso_loader.cc: 44] Biblioteca dinâmica cublas64_100.dll aberta com sucesso
03-12-2019 23: 49: 59.604517: I tensorflow / stream_executor / platform / default / dso_loader.cc: 44] Biblioteca dinâmica aberta com sucesso cudnn64_7.dll
03/12/2019 23: 50: 04.209110: E tensorflow / stream_executor / cuda / cuda_dnn.cc: 329] Não foi possível criar o identificador cudnn: CUDNN_STATUS_NOT_INITIALIZED
03/12/2019 23: 50: 04.216670: E tensorflow / stream_executor / cuda / cuda_dnn.cc: 333] Erro ao recuperar versão do driver: Não implementado: versão do driver relatada pelo kernel não implementada no Windows
03/12/2019 23: 50: 04.226172: E tensorflow / stream_executor / cuda / cuda_dnn.cc: 329] Não foi possível criar o identificador cudnn: CUDNN_STATUS_NOT_INITIALIZED
03/12/2019 23: 50: 04.234741: E tensorflow / stream_executor / cuda / cuda_dnn.cc: 333] Erro ao recuperar versão do driver: Não implementado: versão do driver relatada pelo kernel não implementada no Windows
03/12/2019 23: 50: 04.244958: W tensorflow / core / common_runtime / base_collective_executor.cc: 216] BaseCollectiveExecutor :: StartAbort Desconhecido: Falha ao obter o algoritmo de convolução. Isso provavelmente ocorre porque cuDNN falhou ao inicializar, então tente ver se uma mensagem de log de aviso foi impressa acima.
[[{{nó sequencial / 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

04-12-2019 00: 10: 07.708573: I tensorflow / stream_executor / platform / default / dso_loader.cc: 44] Biblioteca dinâmica aberta com sucesso cudart64_100.dll
04-12-2019 00: 10: 11.643304: I tensorflow / stream_executor / platform / default / dso_loader.cc: 44] Biblioteca dinâmica nvcuda.dll aberta com sucesso
04-12-2019 00: 10: 12.753615: I tensorflow / core / common_runtime / gpu / gpu_device.cc: 1618] Dispositivo 0 encontrado com propriedades:
nome: GeForce GTX 1660 Ti maior: 7 menor: 5 memoryClockRate (GHz): 1,59
pciBusID: 0000: 01: 00.0
04-12-2019 00: 10: 12.769498: I tensorflow / stream_executor / platform / default / dlopen_checker_stub.cc: 25] Bibliotecas de GPU estão estaticamente vinculadas, pule a verificação dlopen.
04-12-2019 00: 10: 12.783900: I tensorflow / core / common_runtime / gpu / gpu_device.cc: 1746] Adicionando dispositivos gpu visíveis: 0
04-12-2019 00: 10: 54.941468: I tensorflow / core / platform / cpu_feature_guard.cc: 142] Sua CPU suporta instruções que este binário TensorFlow não foi compilado para usar: AVX2
04-12-2019 00: 10: 55.372516: I tensorflow / core / common_runtime / gpu / gpu_device.cc: 1618] Dispositivo 0 encontrado com propriedades:
nome: GeForce GTX 1660 Ti maior: 7 menor: 5 memoryClockRate (GHz): 1,59
pciBusID: 0000: 01: 00.0
04-12-2019 00: 10: 55.383385: I tensorflow / stream_executor / platform / default / dlopen_checker_stub.cc: 25] Bibliotecas de GPU estão estaticamente vinculadas, pule a verificação dlopen.
04-12-2019 00: 10: 55.406053: I tensorflow / core / common_runtime / gpu / gpu_device.cc: 1746] Adicionando dispositivos gpu visíveis: 0
04-12-2019 00: 10: 56.741665: I tensorflow / core / common_runtime / gpu / gpu_device.cc: 1159] Dispositivo de interconexão StreamExecutor com matriz de borda de força 1:
04-12-2019 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] Dispositivo TensorFlow criado (/ job: localhost / replica: 0 / task: 0 / device: GPU: 0 com 4627 MB de memória) -> GPU física (dispositivo: 0, nome: GeForce GTX 1660 Ti, id do barramento pci: 0000: 01: 00.0, capacidade de computação: 7,5)
04-12-2019 00: 11: 08.281356: I tensorflow / stream_executor / platform / default / dso_loader.cc: 44] Biblioteca dinâmica cublas64_100.dll aberta com sucesso
04-12-2019 00: 11: 08.934804: I tensorflow / stream_executor / platform / default / dso_loader.cc: 44] Biblioteca dinâmica aberta com sucesso cudnn64_7.dll
04-12-2019 00: 11: 11.870237: W tensorflow / stream_executor / cuda / redzone_allocator.cc: 312] Interno: invocar ptxas não suportado no Windows
Confiar no driver para realizar a compilação ptx. Esta mensagem será registrada apenas uma vez.
`` `

Como todos sugeriram, é devido ao tensorflow usando todas as GPU / GPUs. Minha CNN treina sem erros agora.

Eu estava enfrentando o mesmo problema ao usar a versão suportada pela comunidade do tensorflow dentro de um ambiente conda (ou seja, usando> conda install tensorflow-gpu)

Acontece que esta versão não é realmente boa em todas as situações (embora eu a tenha usado em outras máquinas). A melhor versão a ser usada é a versão instalável pip https://www.tensorflow.org/install/pip dentro de um ambiente conda. Quando fiz isso, tudo funcionou.

Isso resolveu para mim, obrigado!

Isso também resolveu o problema para mim.

GeForce GTX 1050, CUDA 10.0

Nota: esta é a única coisa que posso encontrar que funciona no TF 2.0 por enquanto. Obrigado!

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

Isso também resolveu o problema para mim.

GeForce GTX 1050, CUDA 10.0

Nota: esta é a única coisa que posso encontrar que funciona no TF 2.0 por enquanto. Obrigado!

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

Isso não fez nenhuma diferença para mim ... TF 2.0, RTX 2060, CUDA 10.1, CuDNN 7,6

Isso é com 16 GB de RAM, 6 GB de memória de vídeo e um modelo básico de brinquedo MNIST com uma camada de conv. Sem problemas de memória, apenas um rastreamento de pilha.

Nenhum problema de GPU com Pytorch, como de costume

No meu caso, tenho duas máquinas, ambas com RTX 2080Ti, TF 2.1, CUDA 10.1, CuDNN 7.6. Um funciona, o outro levanta o erro mencionado. Ambas as máquinas têm a mesma quantidade de RAM, 16 GB. Existem diferenças de hardware, entretanto, como a CPU. Mas o problema está ocorrendo apenas ao usar a GPU.

No meu caso, tenho duas máquinas, ambas com RTX 2080Ti, TF 2.1, CUDA 10.1, CuDNN 7.6. Um funciona, o outro levanta o erro mencionado. Ambas as máquinas têm a mesma quantidade de RAM, 16 GB. Existem diferenças de hardware, entretanto, como a CPU. Mas o problema está ocorrendo apenas ao usar a GPU.

Mesma plataforma, mesmo problema

Se você estiver usando o tensorflow e keras mais recentes. Experimente aqui , funcionou para mim:

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)

Este funciona para mim.
Physical_devices = tf.config.list_physical_devices ('GPU')
tf.config.experimental.set_memory_growth (physical_devices [0], True)

Este funciona para mim.
Physical_devices = tf.config.list_physical_devices ('GPU')
tf.config.experimental.set_memory_growth (physical_devices [0], True)

Isso funcionou para mim. Obrigado

@ Samaritan1011001 sua solução funciona para mim, muito obrigado.

Esta página foi útil?
0 / 5 - 0 avaliações