web-dev-qa-db-ja.com

Windowsでは予測できないCUDNN_STATUS_NOT_INITIALIZED

Windows10のGTX1070でkerasニューラルネットワークのトレーニングと予測を実行しています。ほとんどの場合は機能していますが、不平を言うことがあります。

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

文字通りのエラーの意味でもOOMエラーでも説明できません。

直し方?

5
Dims

Set gpu optionper_process_gpu_memory_fractionを使用してgpuの使用を制限してみてください。

それをいじって、何が機能し、何が機能しないかを確認します。

開始ベースラインとして.7を使用することをお勧めします。

4
elf

この問題の解決策を手に入れました。 Nvidia GEforce920Mを搭載したWindows10でも同じ問題が発生しました。 cudnnライブラリの正しいバージョンを検索します。バージョンがCUDAバージョンと互換性がない場合、テンソルフローのインストール中にエラーはスローされませんが、GPUでのメモリ割り当て中に干渉します。 CUDAとCUDNNのバージョンを確認してください。また、上記のセッションの作成に関する指示に従ってください。

3
Junaid Ahmad

ついに問題は解決しました、私はこれに苦労して何時間も費やしました。

リンクに記載されているように、インストールのすべての手順を正しく実行することをお勧めします

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

およびCuDNNの場合-

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

私にとってはこれだけでは不十分でした。GeForceExperienceウィンドウからGeForceGame Ready Driverを更新しようとしましたが、再起動すると動作し始めました。

GeForce Experience

ドライバーはリンクからダウンロードすることもできます https://www.geforce.com/drivers

2
Arkil Shaikh

私は時々Windows10とKerasで問題に遭遇しました。再起動すると問題が短時間解決しますが、再度発生します。

参照します https://github.com/fchollet/keras/issues/1538

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

設定は停止問題を解決します。

2
peroon

tf dokuは私を大いに助けてくれます GPUメモリの増加を許可します

1つ目はallow_growthオプションで、ランタイム割り当てに基づいてできるだけ多くのGPUメモリのみを割り当てようとします。最初はごくわずかなメモリの割り当てを開始し、セッションが実行されてより多くのGPUメモリが必要になると、必要なGPUメモリ領域を拡張します。 TensorFlowプロセス。メモリの断片化がさらに悪化する可能性があるため、メモリを解放しないことに注意してください。このオプションをオンにするには、次の方法でConfigProtoのオプションを設定します。

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

または

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

2番目の方法はper_process_gpu_memory_fractionオプションです。これは、表示されている各GPUに割り当てる必要のあるメモリの総量の割合を決定します。たとえば、次の方法で、各GPUの合計メモリの40%のみを割り当てるようにTensorFlowに指示できます。

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