跑Tensorflow模型设置用GPU的一些总结

目录

一、查看是否用了GPU跑代码

二、用GPU跑代码,观察GPU情况

三、设置用GPU跑代码的方法

四、查看/安装cuda、cudnn版本

五、代码一些问题

错误1:No module named 'tensorflow.contrib'

错误2:AttributeError: module 'scipy.misc' has no attribute 'imresize'

错误3:


一、查看是否用了GPU跑代码

用如下代码可以看用tensorflow框架跑深度学习模型时用CPU还是GPU:

from tensorflow.python.client import device_lib
 
print(device_lib.list_local_devices())

结果显示情况:

可以看出在用一个CPU设备跑代码,接下来查看tensorflow版本

conda list

如果tensorflow版本高于tensorflow-gpu版本,则需要更新tensorflow-gpu版本,说明默认选择版本高的CPU版本来计算了,升级tensorflow-gpu版本命令为:

pip install --index-url http://pypi.douban.com/simple --trusted-host pypi.douban.com --upgrade tensorflow-gpu

二、用GPU跑代码,观察GPU情况

查看机器上GPU情况 

nvidia-smi

定时更新显示机器上gpu的情况 

nvidia-smi -l

设定刷新时间(秒)显示GPU使用情况

watch -n 3 nvidia-sm

其中左上侧有0、1、2、3的编号,表示GPU的编号,在后面指定GPU时需要使用这个编号。

在终端执行程序时指定GPU    CUDA_VISIBLE_DEVICES=0 python main.py

 #CUDA_VISIBLE_DEVICES=0,1,2,3  (任意几块)  python  your_file.py
  CUDA_VISIBLE_DEVICES=0  python main.py

在Python代码中指定GPU  

import os
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

设置定量的GPU使用量

config = tf.ConfigProto() 
config.gpu_options.per_process_gpu_memory_fraction = 0.9 # 占用GPU90%的显存 
session = tf.Session(config=config)

设置最小的GPU使用量

 config = tf.ConfigProto() 
 config.gpu_options.allow_growth = True 
 session = tf.Session(config=config)

三、设置用GPU跑代码的方法

pycharm运行代码指定GPU的方式大概有两种:

1.在源代码中添加(我没有成功)

import os
# 指定使用0,1,2三块卡
os.environ["CUDA_VISIBLE_DEVICES"] = "0,1,2" 

2.使用命令行启动程序时加上CUDA_VISIBLE_DEVICES=0,1,2
比如, CUDA_VISIBLE_DEVICES=0,1,2 python FasterRCNN.py

CUDA_VISIBLE_DEVICES=0 python main.py

运行结果:

四、查看/安装cuda、cudnn版本

1.查看显卡gpu情况

nvidia-smi

2.查看cuda版本

cat /usr/local/cuda/version.txt

3.查看cudnn版本

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

4.不同版本的tensorflow-gpu与CUDA对应关系如下表所示:

网址:https://tensorflow.google.cn/install/source

    对于版本号大于1.13的tensorflow-gpu版本,如1.14、1.15和2.0,要安装CUDA10.0,不要安装最新的CUDA10.1,安装后会提示缺少很多库文件,而导致GPU版本的tensorflow无法使用

注意:

(1)确定自己要安装哪个版本的tensorflow-gpu;

(1)根据自己要装的tensorflow-gpu版本确定要下载的CUDA版本;

(2)根据要安装的CUDA版本确定要下载的Cudnn版本。

5.安装tensorflow-gpu

pip install tensorflow-gpu==1.14.0

6.有用的博客

https://blog.csdn.net/aaon22357/article/details/82733218?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

五、代码一些问题

错误1:No module named 'tensorflow.contrib'

原因:tensorflow 2.0以后没有 tensorflow.contrib,需要降低tensorflow版本问题解决

source activate 环境

conda list

pip install tensorflow==1.14.0


错误2:AttributeError: module 'scipy.misc' has no attribute 'imresize'

解决方法:降低scipy的版本

scipy原来版本1.4.1

执行命令pip install scipy==1.2.1

              pip3 install Pillow

解决

错误3:

原因:conda list终端命令     查看tensorflow版本太高为2.2.0

解决方法:降低tensorflow版本

pip install  tensorflow==1.14.0

重新安装keras

pip install keras==2.2.0

错误4:ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory  (跑yolo3-keras)

我的环境:cuda9.0.176  、   cudnn7.3.0 、   tensorflow-gpu1.6.0 、  没有装tensorflow  、Keras2.1.5 、  python3.5.6 (版本都对应好了还是出错)  

原因:因为cuda环境变量配置有误

解决方法:    执行:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/【CUDA版本】/lib64

#例如
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64

之后执行:

# Python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

没有问题了 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值