ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-06-28 23:35:12  阅读:192  来源: 互联网

标签:模型 Tensorflow VISIBLE CUDA 版本 gpu GPU tensorflow


https://blog.csdn.net/qq_42250789/article/details/107070520

 

目录

一、查看是否用了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))
没有问题了
————————————————
版权声明:本文为CSDN博主「cv_lz」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42250789/article/details/107070520

标签:模型,Tensorflow,VISIBLE,CUDA,版本,gpu,GPU,tensorflow
来源: https://www.cnblogs.com/chinasoft/p/16421654.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有