2017-10-05 63 views
1

今天我安装了tensorflow使用RTFM tensorflow dot org install linux, 我安装了VirtualEnv + Python3 + CPU和测试tensorflow Hello World,它工作正常。已解决 - 使用Nvidia GPU的VirtualEnv tensorflow:cuda-9.0-vs-cuda-8.0,cuDNN-7.0-vs-cuDNN-6.0

然后我继续在nvidia路径(GPU GTX 970)上安装VirtualEnv + Python + GPU。 RTFM(docs dot nvidia dot com cuda cuda-installation-guide-linux index dot html),cuda-9.0,cuDDN 7,所有PATH都可以,.bashrc最新,printenv LD_LIBRARY_PATH ok。

我的GPU可以使用cuda脚本deviceQuery和bandwitdhTest。所有来自Nvidia清单的安装后操作均已通过。

当我在VirtualEnv + Python3 + GPU中运行Hello World时,我得到了下面的代码(cliffnote:tensorflow想要使用来自/usr/local/cuda-9.0/lib64这个9.0目录中的一些cudalibrary-8.0我尝试添加一个符号,以便cudalibrary 8.0点至9.0,但后来我得到了同样的信息与另一个cudalibrary ......这种技巧对所有的CUDA库是不是我叫修复;-))

感谢您提供任何您可能具有的相关见解。

[email protected]:~/Documents/Ordinateur/VirtualEnv$ source tensorflow_py3_gpu/bin/activate 
(tensorflow_py3_gpu) [email protected]:~/Documents/Ordinateur/VirtualEnv$ python 
Python 3.5.2 (default, Sep 14 2017, 22:51:06) [GCC 5.4.0 20160609] on linux 
Type "help", "copyright", "credits" or "license" for more information. 

>>> # Python 
... import tensorflow as tf 
Traceback (most recent call last): 
    File "/home/alexandre/Documents/Ordinateur/VirtualEnv/tensorflow_py3_gpu/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow.py", line 41, in <module> 
    from tensorflow.python.pywrap_tensorflow_internal import * 
    File "/home/alexandre/Documents/Ordinateur/VirtualEnv/tensorflow_py3_gpu/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module> 
    _pywrap_tensorflow_internal = swig_import_helper() 
    File "/home/alexandre/Documents/Ordinateur/VirtualEnv/tensorflow_py3_gpu/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper 
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description) 
    File "/home/alexandre/Documents/Ordinateur/VirtualEnv/tensorflow_py3_gpu/lib/python3.5/imp.py", line 242, in load_module 
    return load_dynamic(name, filename, file) 
    File "/home/alexandre/Documents/Ordinateur/VirtualEnv/tensorflow_py3_gpu/lib/python3.5/imp.py", line 342, in load_dynamic 
    return _load(spec) 
ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory 

上面的最后一行是关于cudalibrary-8.0,显然不在cudalibrary-9.0的列表中。下面是它的其余部分。

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "<stdin>", line 2, in <module> 
    File "/home/alexandre/Documents/Ordinateur/VirtualEnv/tensorflow_py3_gpu/lib/python3.5/site-packages/tensorflow/__init__.py", line 24, in <module> 
    from tensorflow.python import * 
    File "/home/alexandre/Documents/Ordinateur/VirtualEnv/tensorflow_py3_gpu/lib/python3.5/site-packages/tensorflow/python/__init__.py", line 49, in <module> 
    from tensorflow.python import pywrap_tensorflow 
    File "/home/alexandre/Documents/Ordinateur/VirtualEnv/tensorflow_py3_gpu/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow.py", line 52, in <module> 
    raise ImportError(msg) 
ImportError: Traceback (most recent call last): 
    File "/home/alexandre/Documents/Ordinateur/VirtualEnv/tensorflow_py3_gpu/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow.py", line 41, in <module> 
    from tensorflow.python.pywrap_tensorflow_internal import * 
    File "/home/alexandre/Documents/Ordinateur/VirtualEnv/tensorflow_py3_gpu/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module> 
    _pywrap_tensorflow_internal = swig_import_helper() 
    File "/home/alexandre/Documents/Ordinateur/VirtualEnv/tensorflow_py3_gpu/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper 
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description) 
    File "/home/alexandre/Documents/Ordinateur/VirtualEnv/tensorflow_py3_gpu/lib/python3.5/imp.py", line 242, in load_module 
    return load_dynamic(name, filename, file) 
    File "/home/alexandre/Documents/Ordinateur/VirtualEnv/tensorflow_py3_gpu/lib/python3.5/imp.py", line 342, in load_dynamic 
    return _load(spec) 
ImportError: libcublas.so.8.0: cannot open shared object file: No such file or directory 

Failed to load the native TensorFlow runtime. 

See https tensorflow dot org slash install slash install_sources hashtag common_installation_problems for some common reasons and solutions. Include the entire stack trace above this error message when asking for help. 
>>> hello = tf.constant('Hello, TensorFlow!') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'tf' is not defined 
>>> sess = tf.Session() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'tf' is not defined 
>>> print(sess.run(hello)) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'sess' is not defined 
>>> quit() 
(tensorflow_py3_gpu) [email protected]:~/Documents/Ordinateur/VirtualEnv$ deactivate` 

- 第二天更新

不那么干净的解决办法:创建在/ usr /本地/ CUDA/lib64目录/对数错误版本每个库,链接到一个链接正确的数字版本。

[email protected]:/usr/local/cuda/lib64$ sudo ln -s libcurand.so.9.0 libcurand.so.8.0 

我这样做是有五个CUDA库(libcusolver,libcublas,libcudart,libcurand,libcufft),并与cuDNN库libcudnn(第6版 - >第7版)。

Hello world! tensorflow的工作......但如果有人能告诉我为什么tensorflow调用cuda-8.0和cuDDN-6.0库时,我只安装了cuda-9.0和cuDDN-7.0,非常欢迎。

[已解决...或近期]更新 我发现https://github.com/tensorflow/tensorflow/issues/12052几乎可以解释这一切。

Cliffnote: tensorflow-1.3使用cuda-8.0和cuDNN-6.0(这就是为什么当我运行tensorflow时这些库显式链接)。我被欺骗的NVIDIA网站,让我下载CUDA 9.0和cuDNN-7.0版本,这将不会在tensorflow-1.3来实现。

tensorflow-1.4将与cuda-9.0和cuDNN-7.0版本一起使用。 tensorflow-1-4可能在2017年10月的某个时间(或很快,请检查上面的链接)。

+0

我注意到别的东西。 https://www.tensorflow.org/install/install_linux提到cuda-8.0和cuDNN-6.0需要运行tensorflow;但是当你遵循nvidia网站的程序时,你会自动获得cuda-9.0和cuDNN-7.0。 我的下一个选项是: - 我应该卸载并切换回cuda-8.0和cuDNN-6.0吗? - 我应该忽略这个(并休息我的情况)并重新安装来源的tensorflow,以编译我的GPU(SSE4.1,SSE4.2,AVX,AVX2,FMA)的某些功能? – Taamer

回答

1

您试过 sudo apt install cuda-8-0 ? 它应该从http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604

下载软件包随着安装cudnn6(与我安装cudnn7相同的方式),它为我工作。

+2

[已解决]第+2天更新: - 我安装了cuda-8.0和cuDNN-6.0; - 我从版本不匹配中删除了旁路;我重置了两个virtualenv,一个是python2 + tensorflow-gpu(v1.3,cuda-8,cuDNN-6),另一个是python3 + tensorflow-gpu(v1.3,cuda-8,cuDNN-6)。双方都进展顺利,并且正在运行。 然后我搜索了用AVX,AVX2,SSE4.1,SSE4.2和FMA编译tensorflow-gpu 1.3。我发现了一个现成的编译版本,它可以满足我在https://github.com/mind/wheels上的需求。 谢谢你的帮助。 – Taamer