GPU で TensorFlow を使用しようとしたところ、次のエラーが発生しました。
I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla K20m, pci bus id: 0000:02:00.0)
E tensorflow/stream_executor/cuda/cuda_dnn.cc:347] Loaded runtime CuDNN library: 5005 (compatibility version 5000) but source was compiled with 5103 (compatibility version 5100). If using a binary install, upgrade your CuDNN library to match. If building from sources, make sure the library loaded at runtime matches a compatible version specified during compile configuration.
F tensorflow/core/kernels/conv_ops.cc:457] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)
もちろん、私はこのエラーを修正しようとしています (ただし、これは既にLoaded runtime CuDNN library: 5005 (compatibility version 5000) but source wascompiled with 5103 (compatibility version 5100) と尋ねられています)が、エラーを理解したいです。私はいつも、投稿する (助けを求める) 前に自分で問題を解決 (コーディング) しようとしますが、エラー メッセージが少しわかりにくい/不明確なようで、エラーの意味を理解するための良いリソース。
エラーを理解するために、エラーの始まりと思われる行に注目しました。
Loaded runtime CuDNN library: 5005 (compatibility version 5000) but source was compiled with 5103 (compatibility version 5100).
関連すると思われるいくつかの github ページを読んだ後、次のようにエラーを読む方が実際にはより役立つことに気付きました。
読み込まれたランタイム CuDNN ライブラリ: 5005 ですが、ソースは 5103 でコンパイルされています。
CuDNN ライブラリ 5005 をロードしたように見えるので (レベルでUNIX/OS の) しかし、TensorFlow (python 用) はバージョン 5103 であると私が推測するものでコンパイルされました。明らかに、TensorFlow ライブラリが 5103 に従って API を使用しているが、(cuda) ディープ ラーニングと対話するための「本物の」API を使用している場合ライブラリ CuDNN はバージョン 5005 であり、問題になることは明らかです。それらは何が起こっているかの推測にすぎませんが。
私の最初の混乱は、私が知る限り、CuDNN 5005 や 5103 のようなものは存在しないということです。エラーのその部分が何を意味するのかを確実に理解して、これを実際にデバッグしようとすることができるようになれば素晴らしいことです。私が使用しているときに私が知ることができる限り、私module list
は使用しています:
cudnn/5.0
2 つ目の混乱は、私が無視した括弧とその意味です。
Loaded runtime CuDNN library: 5005 (compatibility version 5000)
but source was compiled with 5103 (compatibility version 5100)
正直なところ、「互換バージョン XXXX」が何を意味するのかわかりません。おそらく、CuDNN にバージョン 5000 (それが何を意味するにせよ) をインストールし (CuDNN の 5,000 バージョンがないため、これはまだ混乱を招きます)、CuDNN バージョン 5100 を使用する TensorFlow のバージョンを (何らかの方法で) コンパイルするという提案かもしれません。
誰かがエラーの正確な意味をより正確に知っていますか (そして、私がリンクした質問に対する解決策を提供してください)。