带有 Nvidia GPU 的 VirtualEnv 张量流:cuda-9.0-vs-cuda-8.0,cuDNN-7.0-vs-cuDNN-6.0
VirtualEnv tensorflow with Nvidia GPU : cuda-9.0-vs-cuda-8.0, cuDNN-7.0-vs-cuDNN-6.0
今天我使用 RTFM tensorflow dot org install 安装了 tensorflow linux,
我安装了 VirtualEnv + Python3 + CPU 并测试了 tensorflow Hello World,效果很好。
然后我继续 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 好的。
我的 GPU 可以正常使用 cuda 脚本 deviceQuery 和 bandwitdhTest。 Nvidia 检查清单中的所有 post-安装操作均已通过。
当我在 VirtualEnv+运行Hello World+Python3+GPU 中时,下面的代码是我得到的(cliffnote:tensorflow 想要使用来自 /usr/local/cuda-9.0 的一些 cudalibrary-8.0 /lib64 这是一个 9.0 目录。我试图添加一个 symlink 所以 cudalibrary-8.0 指向 9.0,但随后我得到与另一个 cudalibrary 相同的消息...对所有 cuda 库执行此技巧不是我称之为修复 ;-) )
alexandre@Martin-2:~/Documents/Ordinateur/VirtualEnv$ source tensorflow_py3_gpu/bin/activate
(tensorflow_py3_gpu) alexandre@Martin-2:~/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) alexandre@Martin-2:~/Documents/Ordinateur/VirtualEnv$ deactivate`
--
次日更新
不太干净的修复: 在 /usr/local/cuda/lib64/ 中为每个版本号错误的库创建一个 link,linked 到正确的数字版本。
alexandre@Martin-2:/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)完成了这项工作。
世界,您好! tensorflow 工作......但是如果有人能告诉我为什么当我只安装了 cuda-9.0 和 cuDDN-7.0 时 tensorflow 调用 cuda-8.0 和 cuDDN-6.0 库,非常欢迎你。
[已解决...或即将]更新
我发现 https://github.com/tensorflow/tensorflow/issues/12052 几乎可以解释所有内容。
悬崖笔记:
tensorflow-1.3 使用 cuda-8.0 和 cuDNN-6.0(这就是为什么当我 运行 tensorflow 时这些库被显式 linked 的原因)。我在nvidia网站上被骗了,让我下载了cuda-9.0和cuDNN-7.0版本,这些版本不会在tensorflow-1.3中实现。
tensorflow-1.4 将适用于 cuda-9.0 和 cuDNN-7.0 版本。 tensorflow-1-4 可能会在 2017 年 10 月的某个时间可用(或很快,请查看上面的 link)。
你试过了吗
sudo apt install cuda-8-0
?
它应该从 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604
下载软件包
连同安装 cudnn6(与我安装 cudnn7 的方式相同),它对我有用。
今天我使用 RTFM tensorflow dot org install 安装了 tensorflow linux, 我安装了 VirtualEnv + Python3 + CPU 并测试了 tensorflow Hello World,效果很好。
然后我继续 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 好的。
我的 GPU 可以正常使用 cuda 脚本 deviceQuery 和 bandwitdhTest。 Nvidia 检查清单中的所有 post-安装操作均已通过。
当我在 VirtualEnv+运行Hello World+Python3+GPU 中时,下面的代码是我得到的(cliffnote:tensorflow 想要使用来自 /usr/local/cuda-9.0 的一些 cudalibrary-8.0 /lib64 这是一个 9.0 目录。我试图添加一个 symlink 所以 cudalibrary-8.0 指向 9.0,但随后我得到与另一个 cudalibrary 相同的消息...对所有 cuda 库执行此技巧不是我称之为修复 ;-) )
alexandre@Martin-2:~/Documents/Ordinateur/VirtualEnv$ source tensorflow_py3_gpu/bin/activate
(tensorflow_py3_gpu) alexandre@Martin-2:~/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) alexandre@Martin-2:~/Documents/Ordinateur/VirtualEnv$ deactivate`
-- 次日更新
不太干净的修复: 在 /usr/local/cuda/lib64/ 中为每个版本号错误的库创建一个 link,linked 到正确的数字版本。
alexandre@Martin-2:/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)完成了这项工作。
世界,您好! tensorflow 工作......但是如果有人能告诉我为什么当我只安装了 cuda-9.0 和 cuDDN-7.0 时 tensorflow 调用 cuda-8.0 和 cuDDN-6.0 库,非常欢迎你。
[已解决...或即将]更新 我发现 https://github.com/tensorflow/tensorflow/issues/12052 几乎可以解释所有内容。
悬崖笔记: tensorflow-1.3 使用 cuda-8.0 和 cuDNN-6.0(这就是为什么当我 运行 tensorflow 时这些库被显式 linked 的原因)。我在nvidia网站上被骗了,让我下载了cuda-9.0和cuDNN-7.0版本,这些版本不会在tensorflow-1.3中实现。
tensorflow-1.4 将适用于 cuda-9.0 和 cuDNN-7.0 版本。 tensorflow-1-4 可能会在 2017 年 10 月的某个时间可用(或很快,请查看上面的 link)。
你试过了吗
sudo apt install cuda-8-0
?
它应该从 http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604
连同安装 cudnn6(与我安装 cudnn7 的方式相同),它对我有用。