現在、Gpuサポートシステムにcuda 8.0とcuda 9.0がインストールされています。 kerasモジュールからのインポート中にこのエラーに遭遇しました。ネイティブテンソルフローランタイムのロードに失敗したようです。私が受け取ったエラーログは:
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "/usr/local/lib/python3.5/dist-
packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "/usr/lib/python3.5/imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "/usr/lib/python3.5/imp.py", line 342, in load_dynamic
return _load(spec)
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "Try1.py", line 11, in <module>
from keras.models import Sequential
File "/usr/local/lib/python3.5/dist-packages/Keras-2.0.9-py3.5.Egg/keras/__init__.py", line 3, in <module>
File "/usr/local/lib/python3.5/dist-packages/Keras-2.0.9-py3.5.Egg/keras/utils/__init__.py", line 6, in <module>
File "/usr/local/lib/python3.5/dist-packages/Keras-2.0.9-py3.5.Egg/keras/utils/conv_utils.py", line 3, in <module>
File "/usr/local/lib/python3.5/dist-packages/Keras-2.0.9-py3.5.Egg/keras/backend/__init__.py", line 83, in <module>
File "/usr/local/lib/python3.5/dist-packages/Keras-2.0.9-py3.5.Egg/keras/backend/tensorflow_backend.py", line 1, in <module>
File "/usr/local/lib/python3.5/dist-packages/tensorflow/__init__.py", line 24, in <module>
from tensorflow.python import *
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/__init__.py", line 49, in <module>
from tensorflow.python import pywrap_tensorflow
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 73, in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
_pywrap_tensorflow_internal = swig_import_helper()
File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "/usr/lib/python3.5/imp.py", line 242, in load_module
return load_dynamic(name, filename, file)
File "/usr/lib/python3.5/imp.py", line 342, in load_dynamic
return _load(spec)
ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
Failed to load the native TensorFlow runtime.
Nvcc --versionを実行すると、返されるcudaバージョンは、
Cuda compilation tools, release 8.0, V8.0.61
同様の投稿について読みましたが、問題を解決できませんでした。ほとんどの場合、これは2つのcudaバージョン間の衝突だと思います。誰もこれを解決する方法を教えてもらえますか?前もって感謝します。
LD_LIBRARY_PATH
を指すように、/usr/local/cuda-9.0/lib64
を更新する必要があります。 .bashrc
ファイル(または使用する他の端末)に次の行を追加します
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64/
Tensorflowバイナリは、現在のところCuda 9.1をサポートしていません。そのため、ソリューションは、Tensorflowを source からインストールするだけの場合があります。
Tensorflow用にCuda 9.1 + cuDNN 6をインストールしているときに、上記の問題も発生しました。
さらに、次の2つのオプションがあります。
次のコードを試してください
pip3 install --upgrade tensorflow-gpu==1.4
ターミナルでこのコマンドpip3 install --upgrade tensorflow-gpu==1.4
を入力すると、テンソルフローは1.4.0にダウングレードされます。このバグは、テンソルフロー1.6.0が原因です。
Tensorflowバージョン> = 1.5には、CUDAバージョン> 8.0が必要です。したがって、CUDAバージョン8.0を使用している場合、テンソルフローバージョンを1.4にダウングレードできます。
pip install tensorflow-gpu==1.4
私はtfをAnaconda環境にインストールしようとしましたが、同じ問題がありました。 CUDAとcuDNNをインストールした後、最初に新しい環境を作成し、次にその環境でpip install tensorflow-gpu
を作成する必要がありました
Cudaの新しいバージョンをインストールするたびに、追加された可能性のある永続パスを確認する必要があります。
ターミナル実行でこれを確認するには
gedit ~/.bashrc
古いcudaパスがある場合は、新しいパスに変更する必要があります。
たとえば、私のものは:
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/lib/nvidia-384
ドライバーも次のようにアップグレードしたため、cudaパスとnvidiaパスの両方を変更しました。
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:/usr/lib/nvidia-390
それが役立つことを願っています:)
Ubuntu 16.04から18.04にアップグレードした後、この問題が発生しました。 Tensorflow 1.12.0でCUDA 9.1をインストールしましたが、そのバージョンのTensorflowにはCUDA 9.0が必要です。 CUDA 9.0をインストールしようとすると、ビデオドライバーが破損しました。
幸いなことに、私は 複数のCUDAライブラリ をインストールする手順を見つけました。これまで必要だったのは、インストーラースクリプトをダウンロードし、--silent --toolkit --override
オプションを指定して実行し、LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64
を設定することだけです。また、/usr/local/cuda
のシンボリックリンクを/usr/local/cuda-9.1
に戻しますが、それが必要かどうかはわかりません。
これまでのところ、Tensorflowは正常に機能しています。
この問題は、Googleのprotobufコンパイラに関連しているため、テンソルフローは共有オブジェクトファイル(この例ではlibcublas.so.9.0)を見つけることができません。
ソースからprotobuf(3.5.0)の最新バージョンをビルドすることも助けにはなりませんでした。私のために働いたのは、システム全体のprotobufコンパイラをインストールすることでした apt install protobuf-compiler Ubuntu 16.04で。そして、pythonバージョンをインストールします pip3インストールprotobuf。 9.1はまだTensorflowのビルド済みバイナリと互換性がないため、CUDA 9.0を使用しています。
次を使用して、システム全体のprotobufバージョンを確認できます。 protoc-バージョン 16.04の2.6.1です。 protoc pythonバージョンは3.5.2.post1です。お役に立てれば。以前のバージョンのtensorflowとCUDA 8を使用して同様の問題が発生し、このトラブルシューティング手順を文書化しました。同じ手順を使用して、テンソルフロー1.8.0も使用できます。
私は次の手順で解決しました:
# Add NVIDIA package repository
Sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.1.85-1_AMD64.deb
Sudo apt install ./cuda-repo-ubuntu1604_9.1.85-1_AMD64.deb
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_AMD64.deb
Sudo apt install ./nvidia-machine-learning-repo-ubuntu1604_1.0.0-1_AMD64.deb
Sudo apt update
# Install CUDA and tools. Include optional NCCL 2.x
Sudo apt install cuda9.0 cuda-cublas-9-0 cuda-cufft-9-0 cuda-curand-9-0 \
cuda-cusolver-9-0 cuda-cusparse-9-0 libcudnn7=7.2.1.38-1+cuda9.0 \
libnccl2=2.2.13-1+cuda9.0 cuda-command-line-tools-9-0
# Optional: Install the TensorRT runtime (must be after CUDA install)
Sudo apt update
Sudo apt install libnvinfer4=4.1.2-1+cuda9.0
私はそのエラーを持っていますが、エラーメッセージは直接関連していないように見えましたが、GPUメモリの不足に関連していました。他の人が示唆したように、サーバーを再起動しようとしましたが、それ以上の反復(エポック)を取得できませんでした。この問題を解決するために、同じサーバーイメージをまだ使用しているクラウドプロバイダーから、より大きなインスタンスのGPUサーバーインスタンスをアップグレードしました。
それが他の誰かの助けになることを願っています。