当前位置:网站首页>解决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就发现:如果不匹配,就会出现报错,这种报错往往都是不匹配的原因,而且还会告诉你版本对应是多少。你就可以解决这个问题了~
边栏推荐
猜你喜欢
真香!肝完Alibaba这份面试通关宝典,我成功拿下今年第15个Offer
Electron application development best practices
cesium加载地图
[贴装专题] 视觉贴装平台与贴装流程介绍
2022强网杯WP
多行省略和选择器
相关系数计算,热力图绘制,代码实现
浅析JWT安全问题
研发需求的验收标准应该怎么写? | 敏捷实践
Dialogue with the DPO of a multinational consumer brand: How to start with data security compliance?See you on 8.11 Live!
随机推荐
Win32控件--------------------WM_DRAWITEM消息测试程序
使用cpolar远程连接群晖NAS(创建临时链接)
Unix Environment Programming Chapter 14 14.4 I/O Multiplexing
2021-01-11-雪碧图做表情管理器
985毕业,工作3年,分享从阿里辞职到了国企的一路辛酸和经验
爬虫实例,获取豆瓣上某部电影的评论
学习NET-SNMP之一 ---------编译NET-SNMP程序。
json库的dumps()方法和loads()方法
15.10 the POSIX semaphore Unix environment programming chapter 15
How to quickly get through the mirror release process?
笔记本电脑使用常见问题,持续更新
AQS同步组件-ForkJoin、BlockingQueue阻塞队列解析和用例
snmp++编译错误问题解决方法
unix环境编程 第十四章 14.4 I/O多路转接
1001 害死人不偿命的(3n+1)猜想 (15 分)
Dialogue with the DPO of a multinational consumer brand: How to start with data security compliance?See you on 8.11 Live!
[相机配置] 海康相机丢包配置环境
UNIX Environment Programming Chapter 15 15.5FIFO
[Halcon&定位] 解决Roi区域外的模板匹配成功
学长告诉我,大厂MySQL都是通过SSH连接的