2016-08-02 10 views
19

私はOS X El Capitan(10.11.4)を使用しています。'ライブラリがロードされていません:@ rpath/libcudart.7.5.dylib' MacのTensorFlowエラー

私はちょうどpipインストール手順hereを使用してTensorFlowをダウンロードしました。私はちょうどピップをインストールしていても

The directory '/Users/myusername/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want the -H flag.

You are using pip version 6.0.8, however version 8.1.2 is available.:私はのようないくつかの警告メッセージを手に入れたものの

すべては、かなりスムーズに進みました。私はpip uninstall tensorflow-0.10.0rc0をしようとすると、それがインストールされていないことを私に伝え、今

>>> import tensorflow as tf 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/__init__.py", line 23, in <module> 
    from tensorflow.python import * 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/__init__.py", line 48, in <module> 
    from tensorflow.python import pywrap_tensorflow 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module> 
    _pywrap_tensorflow = swig_import_helper() 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper 
    _mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/imp.py", line 243, in load_module 
    return load_dynamic(name, filename, file) 
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/_pywrap_tensorflow.so, 10): Library not loaded: @rpath/libcudart.7.5.dylib 
    Referenced from: /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/_pywrap_tensorflow.so 
    Reason: image not found 

:私はPythonでTensorFlowを試験したとき

はその後、私はエラーを得ました。

私がこの問題に似ていることに最も近いことは、TensorFlow GitHubドキュメント(これは試していません)のthis issueです。

インストールしたものをアンインストールして、TensorFlowを正しく起動して実行するにはどうすればよいですか?

+2

GPU対応バージョンはインストールできますが、CUDAはインストールされていませんか? – mrry

+0

@mryry非常に可能です。 CUDAとは何ですか?どのようにインストールしますか? –

+0

CUDAをインストーラーのどこかにインストールするよう指示しましたが、私はそれを見逃しましたか? –

答えて

35

このエラーメッセージは、CUDAがインストールされていないマシンに、TensorFlowのGPU対応Mac OSバージョン(リリース0.10以降で使用可能)をインストールすると表示されます。

次のように、Pythonの2.7または3.xのCPUのバージョンをインストールし、エラーを修正するには:あなたはすでにCUDAを持っている場合、@mrry's answerに追加するにはhttps://www.tensorflow.org/versions/

+2

私はちょうどその上にCPU専用バージョンをインストールすることがうまくいったことを伝えようとしていました。ありがとう! –

+0

なぜCUDAをインストールしないのですか?私は私のGPUを利用したいと思っています。そうではありませんか? – williamcodes

+1

CUDA対応GPUをお持ちの場合は、間違いなくCUDAをインストールしてください!最近のMacのビルトインGPUはCUDA対応ではありませんが、[次の手順に従ってください](http://docs.nvidia.com/cuda/cuda-installation-guide-mac)で確認できます。 -os-x /#cuda-enabled-gpu)を使用します。 – mrry

3

# Mac OS X, CPU only, Python 2.7: 
$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.12.0-py2-none-any.whl 
$ sudo pip install --upgrade $TF_BINARY_URL 

# Mac OS X, CPU only, Python 3.4 or 3.5: 
$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.12.0-py3-none-any.whl 
$ sudo pip3 install --upgrade $TF_BINARY_URL 

はtensorflowバージョンを参照してください。 CUDAライブラリがあなたのパスにないためにエラーが発生する可能性があります。 CUDA_HOME秒のいずれか

# export CUDA_HOME=/Developer/NVIDIA/CUDA-7.5 ## This is the default location on macOS 
export CUDA_HOME=/usr/local/cuda 
export DYLD_LIBRARY_PATH="$CUDA_HOME/lib:$DYLD_LIBRARY_PATH" 
export PATH="$CUDA_HOME/bin:$PATH" 

コメント解除するか、それはあなたのCUDAのインストールが含まれるように、それを編集します。あなたの〜/ .bashrcや〜/ .zshrcに以下を追加します。それがインストールされている場所がわからない場合は、試してみてください。

find/-name "*libcudart*" 
1

は確かにCUDAをインストールするすべてのパスが正しいことを保証することがあるとして、必要不可欠です。私が実行している:

  • TensorFlow 0.12r0
  • OSX 10.12.1
  • 醸造からのpython 2.7の私のpython環境
  • CUDA 8.0.55
  • cudnn-8.0を分離する
  • virtualenvの-osx-x64-v5.1

私のシステムでは、さらに問題が発生しましたlemは相対パスを内部的に参照するダイナミックライブラリから発生します。

とりわけ、返さ
otool -l /Users/norman_h/.virtualenvs/env_name/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so 

、以下:

Load command 15 
     cmd LC_RPATH 
     cmdsize 128 
     path $ORIGIN/../../_solib_darwin/[email protected]_Uconfig_Ucuda_S_Scuda_Ccudart___Uexternal_Slocal_Uconfig_Ucuda_Scuda_Slib (offset 12) 
Load command 16 
     cmd LC_RPATH 
     cmdsize 48 
     path ../local_config_cuda/cuda/lib (offset 12) 
Load command 17 
     cmd LC_RPATH 
     cmdsize 56 
     path ../local_config_cuda/cuda/extras/CUPTI/lib (offset 12) 

それは動的ライブラリことがわかる

@rpathは、次のコードが実行される _pywrap_tensorflow.soから参照されて検出するにはTensorFlowをpipでインストールした仮想環境内でCUDAライブラリを見つけようとしています。それは私のシステム環境のパスの中で見ていない。

ソリューションのハックは、CUDAライブラリを/usr/local/cuda/libの場所から、仮想環境内にpipがインストールされているサイトパッケージに動的にリンクすることです。

mkdir /Users/norman_h/.virtualenvs/env_name/lib/python2.7/site-packages/tensorflow/local_config_cuda 

cd /Users/norman_h/.virtualenvs/env_name/lib/python2.7/site-packages/tensorflow/local_config_cuda 

ln -s /usr/local/cuda . 

仮想環境内からTensorFlowをアップグレードするときに再リンクする必要があります。

私はこのすべてがpipインストールのために行われるTensorFlowの元のコンパイルに戻ると思うし、修正を提出する方法がわからない、あるいは正しいものでも。おそらく、Tensorflowのオリジナルのコンパイルは、よりダイナミックでスタティックでなくてはなりません。

運が良かった!

関連する問題