2017-03-08 46 views
3

我使用Ubuntu 16.04,Cuda 8.0和cudann-v5.1。我卸載了Tensorflow-CPU版本並重新啓用了tensorflow-GPU。其次這裏給出的說明:https://alliseesolutions.wordpress.com/2016/09/08/install-gpu-tensorflow-from-sources-w-ubuntu-16-04-and-cuda-8-0-rc/ImportError:libnvidia-fatbinaryloader.so.375.39:無法打開共享目標文件:沒有這樣的文件或目錄

但是,當我嘗試加載tensorflow,我得到以下錯誤:

>>> import tensorflow as tf 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.py", line 24, in <module> 
    from tensorflow.python import * 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 51, in <module> 
    from tensorflow.python import pywrap_tensorflow 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 56, in <module> 
    raise ImportError(msg) 
ImportError: Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow.py", line 41, in <module> 
    from tensorflow.python.pywrap_tensorflow_internal import * 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module> 
    _pywrap_tensorflow_internal = swig_import_helper() 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper 
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description) 
ImportError: libnvidia-fatbinaryloader.so.375.39: cannot open shared object file: No such file or directory 


Failed to load the native TensorFlow runtime. 
+0

同樣的問題在這裏。到目前爲止,我通過在我的'LD_LIBRARY_PATH'環境變量中添加'/ usr/lib/nvidia-375'來傳遞錯誤信息。這可能不是問題的結局,雖然我沒有解決,但我正在與另一個爭鬥。 –

回答

-1

注:TensorFlow需要MSVCP140.DLL,這可能不是你的系統上安裝。如果在將tensorflow導入爲tf時,會看到有關名爲「_pywrap_tensorflow」的模塊和/或DLL加載失敗的錯誤,請檢查MSVCP140.DLL是否在您的%PATH%中,如果沒有,應該安裝[Visual C++ 2015年可再發行組件(64版)[1]:https://www.microsoft.com/en-us/download/details.aspx?id=53587

我建議你看一下tensorflow的官方文檔

我對不起你使用Ubuntu我用Windows10是很抱歉,我沒有看到

10

我也遇到過這個問題,有兩個問題需要解決。

  1. 我加/usr/lib/nvidia-375LD_LIBRARY_PATH環境變量。您可以驗證文件libnvidia-fatbinaryloader.so.375.39位於該目錄中。如果不是,找到它的位置並添加該路徑。我不清楚爲什麼在編譯源代碼時沒有正確地選擇它。

  2. 接下來,我所遇到的錯誤:

    libstdc++.so.6: version `CXXABI_1.3.8' not found 
    

如果遇到那是因爲你的gcc的新版本比在蟒蛇或Python安裝使用。對我而言,這意味着要添加此路徑到LD_LIBRARY_PATH/usr/lib/x86_64-linux-gnu/libstdc++.so.6

我還必須在錯誤消息中顯示的路徑上重命名舊的libstdc++.so.6。我找不到一種方法說服python不要在重命名文件的情況下查看默認路徑。可能有更乾淨的方法來做到這一點,但這對我來說很有用。

安裝中有很多隱藏的陷阱。

+0

與'LD_LIBRARY_PATH'有同樣的問題,謝謝我不會想到像這樣的東西 – user3085931

+1

謝謝。我確認設置LD_LIBRARY_PATH工作。 – dhfromkorea

+0

嗨,@David Parks,我在'/ usr/lib/nvidia-375'路徑中有libnvidia-fatbinaryloader.so.375.66,但是我得到的錯誤是'ImportError:libnvidia-fatbinaryloader.so.375.39:無法打開共享對象文件:沒有這樣的文件或目錄。該怎麼辦? – Akhilesh

1

在我的情況下,tensorflow-gpu已經安裝並工作了一段時間,但是安裝了nvidia-opencl-icd-384導致我的nvidia驅動程序從384.47升級到384.59,但沒有升級libcuda,nvidia-settings和也許其他包。升級libcuda應該很有可能解決問題,但最好是清除並重新安裝。

sudo apt-get purge nvidia* 
sudo apt-get install libcuda1-384 nvidia-384 nvidia-384-dev nvidia-prime nvidia-settings 

對於我來說,符號鏈接libn​​vidia-fatbinaryloader.so.384.37 - > libnvidia-fatbinaryloader.so.384.59在/ usr/lib目錄和/ usr/LIB32沒有糾正問題和LD_LIBRARY_PATH已經正確配置。

1

我遇到了同樣的問題。這是我的解決方案!

  1. 找到libnvidia-fatbinaryloader.so.*文件在你電腦裏。對我來說

    (ubuntu16.04):sudo find -iname libnvidia-fatbinaryloader.so*

,然後它顯示libnvidia-fatbinaryloader.so.375.45
注意:有不同的版本號

  • 將文件複製到你cuda lib下,例如:/usr/local/cuda/lib64/

  • 將版本號375.45更改爲您的錯過荷蘭國際集團的文件,375.39,如:

    mv libnvidia-fatbinaryloader.so.375.45 libnvidia-fatbinaryloader.so.375.39

  • 0

    @Akhilesh有正確的答案:

    sudo ln -s /usr/lib/nvidia-375/libnvidia-fatbinaryloader.so.375.66 /usr/lib/nvidia-375/libnvidia-fatbinaryloader.so.375.39 
    
    0

    在我來說,我以前有NVIDIA 387.34後來卸載它使用

    sudo apt-get purge nvidia* 
    

    然後我安裝了驅動384.111,加了/usr/lib/nvidia-384我的LD_LIBRARY_PATH但tensorflow仍然要求libnvidia-fatbinaryloader.so.387.34

    我意識到/usr/lib/x86_64-linux-gnu/usr/lib/i386-linux-gnu仍然有libcuda.so.387.34 有一次,我從這兩個目錄tensorflow拿起384

    正確版本刪除了這些文件

    apt-get remove nvidia-{{version}}卸載。然後做sudo apt-get purge nvidia*。我猜想這將更加萬無一失。

    相關問題