17、TensorFLow GPU 的使用

来源:互联网 发布:标书制作软件 编辑:程序博客网 时间:2024/05/19 18:37

一、TensorFlow 设备分配

1、设备分配规则

If a TensorFlow operation has both CPU and GPU implementations, the GPU devices will be given priority when the operation is assigned to a device.


2、手动指定设备分配

  • 如果你不想让系统自动为 operation 分配设备, 而是自己手动指定, 可以用 with tf.device 创建一个设备环境, 这个环境下的 operation 都统一运行在指定的设备上.
  • 代码示例如下:
# op 在 cpu 上运算with tf.device('/cpu:0'):      a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')      b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')# op 在 gpu 上运算with tf.device('/device:GPU:2'):  a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')  b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')# op 在 gpus 上运算for d in ['/device:GPU:2', '/device:GPU:3']:  with tf.device(d):    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3])    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2])

二、TensorFlow GPU 配置

这里直接引用师弟的blog—TensorFlow对你的GPU其实不霸道(写的很好) ,稍加修改和总结,具体在程序中直接使用第 4 条总结的使用经验即可

1、半遮面——指定可以被看见的GPU设备

import os# 默认情况,TF 会占用所有 GPU 的所有内存, 我们可以指定# 只有 GPU0 和 GPU1 这两块卡被看到,从而达到限制其使用所有GPU的目的os.environ['CUDA_VISIBLE_DEVICES'] = '0, 1'  # 打印 TF 可用的 GPUprint os.environ['CUDA_VISIBLE_DEVICES']>>> 0, 1

2、圈其地——限定使用显存的比例

# 在开启对话session前,先创建一个 tf.ConfigProto() 实例对象# 通过 allow_soft_placement 参数自动将无法放在 GPU 上的操作放回 CPUgpuConfig = tf.ConfigProto(allow_soft_placement=True)# 限制一个进程使用 60% 的显存gpuConfig.gpu_options.per_process_gpu_memory_fraction = 0.6# 把你的配置部署到sessionwith tf.Session(config=gpuConfig) as sess:  pass这样,如果你指定的卡的显存是8000M的话,你这个进程只能用4800M。

3、任其行——需要多少拿多少

# 在开启对话session前,先创建一个 tf.ConfigProto() 实例对象# 通过 allow_soft_placement 参数自动将无法放在 GPU 上的操作放回 CPUgpuConfig = tf.ConfigProto(allow_soft_placement=True)# 运行时需要多少再给多少gpuConfig.gpu_options.allow_growth = True  # 把你的配置部署到sessionwith tf.Session(config=gpuConfig) as sess:     pass

4、GPU 使用总结

import osos.environ['CUDA_VISIBLE_DEVICES'] = '0, 1'  gpuConfig = tf.ConfigProto(allow_soft_placement=True)gpuConfig.gpu_options.allow_growth = True  with tf.Session(config=gpuConfig) as sess:     pass

三、参考资料

1、https://www.tensorflow.org/tutorials/using_gpu
2、TensorFlow对你的GPU其实不霸道

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 后脑偏头疼怎么办最快最有效 脸两边的骨头大怎么办 做b超胎儿老盘腿怎么办 裤子白边染色了怎么办 异地恋要分手了怎么办 异地恋没话题了怎么办 陪婆婆聊天心情超级郁闷怎么办? 他不想理你了怎么办 陌陌看到信息不回怎么办 qq的文档看不了怎么办 怀孕了分手了怎么办啊 qq节日祝福关了怎么办 微信欠款不还怎么办 qq文件记录删除了怎么办 qq漫游记录删了怎么办 换了新手机微信怎么办 新手机了微信怎么办 微信收藏空间已满怎么办 微信收藏空间满了怎么办 qq步数上传不了怎么办 qq发送的文件失效了怎么办 苹果手机微信数据损坏怎么办 微信文件被清理怎么办 老婆与别人聊暧昧话题怎么办 微信不小心删了聊天记录怎么办 当聊天没话题了怎么办 老婆和别人频繁聊天老公怎么办 qq上把人屏蔽了怎么办 注册微信验证码发不出去怎么办 两个人在一起没有话题怎么办 两个人聊天没话题怎么办 qq邮箱限制信用卡账单怎么办 和朋友聊天没话题怎么办 跟朋友聊天没话题怎么办 和朋友聊天找不到话题怎么办 qq加好友忽略了怎么办 微信加好友收不到验证消息怎么办 陌陌距离乱了怎么办 qq不能点赞了怎么办 快递发货地址写错了怎么办 订的海鲜不发货怎么办