GPU运行Tensorflow的几点建议
1.在运行之前先查看GPU的使用情况:
指令:nvidia-smi 备注:查看GPU此时的使用情况
或者
指令:watch nvidia-smi 备注:实时返回GPU使用情况
2.指定GPU训练:
方法一、在python程序中设置:
代码:os.environ[‘CUDA_VISIBLE_DEVICES’] = ‘0’ 备注:使用 GPU 0
代码:os.environ[‘CUDA_VISIBLE_DEVICES’] = ‘0,1’ 备注:使用 GPU 0,1
方法二、在执行python程序时候:
指令:CUDA_VISIBLE_DEVICES=2 python yourcode.py
指令:CUDA_VISIBLE_DEVICES=0,1 python yourcode.py
备注:‘=’的左右不允许有空格
**注:**TensorFlow会默认直接占满我们模型部署的GPU的存储资源,只允许一个小内存的程序也会占用所有GPU资源。因此有的时候我们通过nvidia-smi查看GPU状态的时候,会发现有些GPU的计算利用率很低或者计算利用率为0,但是存储被占满了,而这个时候其他人也不能使用这块GPU。但是现在公司的问题是模型多,卡不够用,所有只能“文明”使用GPU,如果设置为允许动态增长的话,这样这个GPU没有被占的存储还可以被其他人使用。
3.两种限定GPU占用量的方法:
方法一、设置定量的GPU显存使用量:
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4 # 占用GPU40%的显存
session = tf.Session(config=config)
方法二、设置最小的GPU显存使用量,动态申请显存:(建议)
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config)
注:还有一个问题就是计算资源闲置,发现计算资源闲置的一个很简单的方法就是使用命令nvidia-smi查看GPU的使用状态,只要GPU的计算时间使用率没有达到80%-100%,,都是对GPU的极大浪费。
4.将数据的处理使用多线程的queue在CPU上进行,使得GPU随时都有充足的数据使用,更专注于训练,这样可以大幅度提升模型的训练速度。
with tf.device(‘/cpu:0’):
# function to get and process images or data.
distorted_inputs = load_and_distort_images()
5.程序中跟训练无关的尽量不要sess.run()操作
6.训练代码的优化等,可参考:
http://d0evi1.com/tensorflow/performance/
---------------------
作者:Peanut_范
来源:CSDN
原文:https://blog.csdn.net/u013841196/article/details/82468884
GPU运行Tensorflow的几点建议的更多相关文章
- 备注: ubt 16.04 安装 gtx 1060 --- 成功运行 tensorflow - gpu
---------------------------------------------------------------------------------------------------- ...
- Ubuntu 16安装GPU版本tensorflow
pre { direction: ltr; color: rgb(0, 0, 0) } pre.western { font-family: "Liberation Mono", ...
- Ubuntu16安装GPU版本TensorFlow(个人笔记本电脑)
想着开始学习tf了怎么能不用GPU,网上查了一下发现GeForce GTX确实支持GPU运算,所以就尝试部署了一下,在这里记录一下,避免大家少走弯路. 使用个人笔记本电脑thinkpadE570,内存 ...
- linux 运行tensorflow文件缺少_bz2问题及解决
今天,终于把如何在linux服务器上运行tensorflow程序的问题解决: 1.首先要在服务器上python下安装tensorflow(要看好是在python2还是python3下安装,还要看好是C ...
- 使用GPU训练TensorFlow模型
查看GPU-ID CMD输入: nvidia-smi 观察到存在序号为0的GPU ID 观察到存在序号为0.1.2.3的GPU ID 在终端运行代码时指定GPU 如果电脑有多个GPU,Tensorfl ...
- Windows 2012服务器安装GPU版TensorFlow完全攻略
一.首先,推荐用Anaconda安装 因为Anaconda本身就已经默认安装了很多常用的Python库,可以省去大量的库安装过程,并且解决兼容性问题. Anaconda本身的安装也非常简单,搜索Ana ...
- 第9章 运行TensorFlow
目录 第9章 运行TensorFlow 创建一个计算图并在会话中执行 管理图 节点值的生命周期 TensorFlow中的线性回归 实现梯度下降 给训练算法提供数据 保存和恢复模型 用TensorBoa ...
- 运行TensorFlow代码时报错
运行TensorFlow代码时报错 错误信息ImportError: libcublas.so.10.0: cannot open shared object file 原因:TensorFlow版本 ...
- 禁用GPU版本TensorFlow,切换到CPU版本TensorFlow。
#禁用gpu版本TensorFlow,因为CUDA号码从0开始,这里直接让CUDA使用-1的GPU,自然就无法使用gpu了. 代码前面加入: import osos.environ["CUD ...
随机推荐
- 5_7 丑数(UVa136)<priority_queue的使用>
Ugly Number的定义为:该数之质因数必须为2,3或5,当然了,依照惯例,1也算是Ugly Number.在此列举一串数列:1,2,3,4,5,6,8,9,10,12,15这些就是前11个Ugl ...
- mysql数据库数据备份还原
1.直接在命令行里面执行 备份一个数据库:mysqldump -h server -u username -p password db_name > database-sqlbkp_`date ...
- ZOJ1008 Gnome Tetravex
DFS+剪枝~ #include<bits/stdc++.h> using namespace std; ][]; int N; int cnt; ]; ]; unordered_map& ...
- 201771010135杨蓉庆《面向对象程序设计(java)》第六周学习总结
实验六 继承定义与使用 1.实验目的与要求 (1) 理解继承的定义: (2) 掌握子类的定义要求 (3) 掌握多态性的概念及用法: (4) 掌握抽象类的定义及用途: (5) 掌握类中4个成员访问权限修 ...
- JQuery DOM操作:设置内容&属性&添加元素&插入元素&包裹&克隆&移除&替换
JQuery text().html().val() $(elem).text(str):添加文本内容str到elem类型元素,返回jQuery对象 $(elem).text():返回第一个elem标 ...
- 创建Ajax兼容
var request = new XMLHttpRequest(); IE7以下: var request = new ActiveXObject("Microsoft.XMLHTTP&q ...
- Python中利用for表达式创建列表
1.for表达式语法格式及用法 for表达式利用可迭代对象创建新的列表,for表达式也称为列表推导式,具体语法格式如下: [表达式 for 循环计数器 in 可迭代对象] 例: a = [ i + i ...
- C语言-(void*)类型指针
(void*)类型指针:ANSI新增的:即定义了一个指针,但不指定指向任何类型(即指向抽象的数据类型). 1 通过强制类型转换可将其值赋给另一指针变量 2.1用于动态存储函数的返回型指针 void m ...
- navicat for mysql 中文破解版(无需激活码)
1.下载破解版Navicat for MySQ中文破解版 链接: https://pan.baidu.com/s/19BlJRx7tLnDPIM4U6DNWvA 提取码: d9ci 2.解压下载后的文 ...
- 「Luogu P5080 Tweetuzki 爱序列」
题目大意 给出一些数,需要求出 \(\frac{a_{i+1}}{3}=a_i\) 或 \(a_{i+1}=2 \times a_i\) 时最长的序列 \(a\). 分析 可以发现符合条件的序列 \( ...