ICode9

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

GPU运行Tensorflow的几点建议

2019-06-08 12:42:46  阅读:258  来源: 互联网

标签:显存 使用 Tensorflow tf GPU 几点 config 备注



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

标签:显存,使用,Tensorflow,tf,GPU,几点,config,备注
来源: https://www.cnblogs.com/find1/p/10990397.html

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

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

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

ICode9版权所有