ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory

简介: ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory

错误:

今天想在实验室的GPU服务器-我的docker容器里使用tensorflow-gpu【安装直接pip install tensorflow-gpu】,结果报错:

1. ImportError: Traceback (most recent call last):
2.   File "/root/anaconda3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
3.     from tensorflow.python.pywrap_tensorflow_internal import *
4.   File "/root/anaconda3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
5.     _pywrap_tensorflow_internal = swig_import_helper()
6.   File "/root/anaconda3/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
7.     _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
8.   File "/root/anaconda3/lib/python3.6/imp.py", line 243, in load_module
9.     return load_dynamic(name, filename, file)
10.   File "/root/anaconda3/lib/python3.6/imp.py", line 343, in load_dynamic
11.     return _load(spec)
12. ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory
13. 
14. 
15. Failed to load the native TensorFlow runtime.

原因很简单:tensorflow和docker里的cuda版本不对应:

1. Latest TensorFlow supports cuda 8-10. cudnn 6-7.
2. Each TensorFlow binary has to work with the version of cuda and cudnn it was built with. If they don't match, you have to change either the TensorFlow binary or the Nvidia softwares.
3. Official tensorflow-gpu binaries (the one downloaded by pip or conda) are built with cuda 9.0, cudnn 7 since TF 1.5, and cuda 10.0, cudnn 7 since TF 1.13. These are written in the release notes. You have to use the matching version of cuda if using the official binaries.
4. If you don't like to change your Nvidia software, you can:
5. (1) Use a different version of TensorFlow
6. (2) Use non-official binaries built by others. e.g.: https://github.com/mind/wheels/releases, https://github.com/hadim/docker-tensorflow-builder#builds,
7. https://github.com/inoryy/tensorflow-optimized-wheels
8. (3) Build the binaries by yourself from source with your version of Nvidia software.

安装好对应的版本就好了:更多请参阅这篇文章:https://blog.csdn.net/qq_36396104/article/details/89165185

1. tensorflow-gpu v1.9.0 | cuda9.0 |  cuDNN7.1.4可行  | 备注:7.0.4/ 7.0.5/ 7.1.2不明确
2. 
3. tensorflow-gpu v1.8.0 | cuda9.0 |  cuDNN  不明确 | 备注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4
4. 
5. tensorflow-gpu v1.7.0 | cuda9.0 |  cuDNN  不明确 | 备注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4
6. 
7. tensorflow-gpu v1.6.0 | cuda9.0 |  cuDNN  不明确 | 备注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4
8. 
9. tensorflow-gpu v1.5.0 | cuda9.0 |  cuDNN  不明确 | 备注:7.0.4/ 7.0.5/ 7.1.2/ 7.1.4
10. 
11. tensorflow-gpu v1.4.0 | cuda8.0 |  cuDNN 6.0 | 备注:6.0正常使用, 7.0.5不能用,5.1未知 
12. 
13. tensorflow-gpu v1.3.0 | cuda8.0 |  cuDNN 6.0 | 备注:6.0正常使用, 7.0.5不能用,5.1未知 
14. 
15. tensorflow-gpu v1.2.0 | cuda8.0 |  cuDNN 5.1 | 备注:5.1正常使用, 6.0/ 7.0.5 未知
16. 
17. tensorflow-gpu v1.1.0 | cuda8.0 |  cuDNN 5.1 | 备注:5.1正常使用, 6.0/ 7.0.5 未知

步骤:

1、查看cuda版本:

1. cat /usr/local/cuda/version.txt #shows CUDA Version 9.0.176
2. or
3. nvcc -V

2、安装对应版本的tensorflow【我的是9.0】:

pip install tensorflow-gpu==1.7.0

 

AIEarth是一个由众多领域内专家博主共同打造的学术平台,旨在建设一个拥抱智慧未来的学术殿堂!【平台地址:https://devpress.csdn.net/aiearth】 很高兴认识你!加入我们共同进步!


相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
目录
相关文章
|
2月前
|
Java 测试技术 数据库
hql投影查询之—— [Ljava.lang.Object; cannot be cast to cn.bdqn.guanMingSys.entity.Notice
hql投影查询之—— [Ljava.lang.Object; cannot be cast to cn.bdqn.guanMingSys.entity.Notice
11 0
|
3月前
|
Java
cannot open shared object file: No such file or directory
cannot open shared object file: No such file or directory
24 0
|
5月前
FeignClient【问题】Cannot deserialize value of type``from Object value (token `JsonToken.START_OBJECT`)
FeignClient【问题】Cannot deserialize value of type``from Object value (token `JsonToken.START_OBJECT`)
201 0
|
5月前
|
Java
cannot open shared object file: No such file or directory
cannot open shared object file: No such file or directory
36 0
|
6月前
|
Java
java判断Object对象是否为空demo
java判断Object对象是否为空demo
|
20天前
|
JavaScript
js 字符串String转对象Object
该代码示例展示了如何将一个以逗号分隔的字符串(`&#39;1.2,2,3,4,5&#39;`)转换为对象数组。通过使用`split(&#39;,&#39;)`分割字符串并`map(parseFloat)`处理每个元素,将字符串转换成浮点数数组,最终得到一个对象数组,其类型为`object`。
|
2月前
|
存储 设计模式 Python
Python中的类(Class)和对象(Object)
Python中的类(Class)和对象(Object)
30 0
|
2月前
|
存储 JavaScript
JS中Map对象与object的区别
JS中Map对象与object的区别
|
6月前
判断Object对象是否为空
判断Object对象是否为空
|
3月前
|
Java 流计算
在Flink实时任务中,POJO(Plain Old Java Object)对象的模式演进可能会引起不兼容的问题
【2月更文挑战第6天】在Flink实时任务中,POJO(Plain Old Java Object)对象的模式演进可能会引起不兼容的问题
22 3