当前位置:网站首页>解决1.tensorflow运行使用CPU不使用GPU 2.tensorflow环境下的GPU版本号 3.tensorflow和cuda以及cudnn版本对应问题 4.查看cuda和cudnn版本
解决1.tensorflow运行使用CPU不使用GPU 2.tensorflow环境下的GPU版本号 3.tensorflow和cuda以及cudnn版本对应问题 4.查看cuda和cudnn版本
2022-08-09 10:42:00 【模糊包】
这个文章主要针对下面三个问题,十分钟弄懂后,什么类似问题都是相同的:
- 查看
tensorflow
环境下的GPU
版本号 - 解决
tensorflow
运行使用CPU
不使用GPU
tensorflow
和cuda
以及cudnn
版本对应问题
这三个问题的解决方法,要从问题一出发解决。
并且我们假定你会使用Anaconda
的虚拟环境以及安装tensorflow-gpu
,也会安装CUDA
和CUDNN
安装Anadonda
安装tensorflow-gpu
安装CUDA和CUDNN
问题一:查看版本
查看CUDA
和CUDNN
版本
# 查看cuda版本
$ nvcc -V
$output ==>
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
# 查看cudnn版本
$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
$output ==>
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 5
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
'''7.6.5'''
重点来了:查看tensorflow
环境下的GPU
版本号如下方式即可查看你的目前环境(可能虚拟环境可能本环境)
$ ipython
In [1]: import tensorflow as tf
In [2]: gpu_device_name = tf.test.gpu_device_name()
'''output==>'''
.............省略..........................
name: GeForce GTX 1060 6GB major: 6 minor: 1 memoryClockRate(GHz): 1.7085
pciBusID: 0000:27:00.0
问题二:GPU不工作
如果你的tensorflow
不能使用GPU
只能使用CPU
(注解:如何知道用的cpu,通过NVIDIA-SMI
有没有负载就行了)
其实这时候你会发现通过上面的方法,你会发现你的显卡下面有这些话:
2019-12-29 12:10:23.761412: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcudart.so.10.0'; dlerror: libcudart.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:
2019-12-29 12:10:23.761455: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcublas.so.10.0'; dlerror: libcublas.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:
2019-12-29 12:10:23.761493: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcufft.so.10.0'; dlerror: libcufft.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:
2019-12-29 12:10:23.761532: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcurand.so.10.0'; dlerror: libcurand.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:
2019-12-29 12:10:23.761571: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcusolver.so.10.0'; dlerror: libcusolver.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:
2019-12-29 12:10:23.761609: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcusparse.so.10.0'; dlerror: libcusparse.so.10.0: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /usr/local/cuda/lib64:
2019-12-29 12:10:23.764661: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudnn.so.7
2019-12-29 12:10:23.764728: W tensorflow/core/common_runtime/gpu/gpu_device.cc:1663] Cannot dlopen some GPU libraries. Skipping registering GPU devices...
全是没有找到这些文件,所以才会使用gpu而不是cpu
解决方法
注意:如果是找不到so.9.0
就更改为so.9.0
,其他版本另改。
我们更改出软链接即可如下:
- libcudart
# cuda是cuda-版本的软链接,下面一样
sudo ln -s /usr/local/cuda/lib64/libcudart.so.10.1 /usr/local/cuda/lib64/libcudart.so.10.0
- libcufft
sudo ln -s /usr/local/cuda/lib64/libcufft.so.10.1.168 /usr/local/cuda/lib64/libcufft.so.10.0
- libcurand
sudo ln -s /usr/local/cuda/lib64/libcurand.so.10.1.168 /usr/local/cuda/lib64/libcurand.so.10.0
- libcusolver
sudo ln -s /usr/local/cuda/lib64/libcusolver.so.10.1.168 /usr/local/cuda/lib64/libcusolver.so.10.0
- libcusparse
sudo ln -s /usr/local/cuda/lib64/libcusparse.so.10.1.168 /usr/local/cuda/lib64/libcusparse.so.10.0
- libcublas
# 这里10.1版本是这样的
sudo ln -s /usr/lib/x86_64-linux-gnu/libcublas.so.10.2.0.168 /usr/local/cuda/lib64/libcublas.so.10.0
注意:这里如果是10.0
版本及以下的,如果/usr/lib/x86_64-linux-gnu/
目录下没有libcublas
库,可以在/usr/local/cuda10.1/targets/x86_64-linux/lib/
查找libcublas
库。
问题三:匹配问题
我们通过问题1就发现:如果不匹配,就会出现报错,这种报错往往都是不匹配的原因,而且还会告诉你版本对应是多少。你就可以解决这个问题了~
边栏推荐
猜你喜欢
随机推荐
jvm-类加载系统
山东招远通报星童幼儿园食品安全问题最新调查情况
[Original] Usage of @PrePersist and @PreUpdate in JPA
上传张最近做的E2用的xmms的界面的截图
学习NET-SNMP之一 ---------编译NET-SNMP程序。
day16_03集合
[华为云在线课程][SQL语法分类][数据操作][学习笔记]
tensor.eq() tensor.item() tensor.argmax()
TELNET协议相关RFC
Restful WebServices 学习笔记
1002 写出这个数 (20 分)
使用.NET简单实现一个Redis的高性能克隆版(四、五)
在webgis中显示矢量化后的风险防控信息
深度学习--生成对抗网络(Generative Adversarial Nets)
xmms已经发布到v1.3了,好久没写博客了
【原创】解决阿里云oss-browser.exe双击没反应打不开,提供一种解决方案
[Error record] Solve the problem that ASRock J3455-ITX cannot be turned on without a monitor plugged in
stimulus.js 初体验
常用语言图表库总结
unix系统编程 第十五章 15.2管道