热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TensorFlowGPU的使用

一、TensorFlow设备分配1、设备分配规则IfaTensorFlowoperationhasbothCPUandGPUimplementations,the GPU devi

一、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 都统一运行在指定的设备上.

  • 代码示例如下:

1 # op 在 cpu 上运算
2 with tf.device('/cpu:0'):
3 a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
4 b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
5
6 # op 在 gpu 上运算
7 with tf.device('/device:GPU:2'):
8 a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
9 b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
10
11 # op 在 gpus 上运算
12 for d in ['/device:GPU:2', '/device:GPU:3']:
13 with tf.device(d):
14 a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3])
15 b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2])

二、TensorFlow GPU 配置

1、指定可以被看见的GPU设备

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

 2、限定使用显存的比例

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

3、需要多少拿多少

1 # 在开启对话session前,先创建一个 tf.ConfigProto() 实例对象
2 # 通过 allow_soft_placement 参数自动将无法放在 GPU 上的操作放回 CPU
3 gpuCOnfig= tf.ConfigProto(allow_soft_placement=True)
4
5 # 运行时需要多少再给多少
6 gpuConfig.gpu_options.allow_growth = True
7
8 # 把你的配置部署到session
9 with tf.Session(cOnfig=gpuConfig) as sess:
10 pass

  4、GPU 使用总结

1 import os
2 os.environ['CUDA_VISIBLE_DEVICES'] = '0, 1'
3
4 gpuCOnfig= tf.ConfigProto(allow_soft_placement=True)
5 gpuConfig.gpu_options.allow_growth = True
6
7 with tf.Session(cOnfig=gpuConfig) as sess:
8 pass


推荐阅读
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • Window10+anaconda+python3.5.4+ tensorflow1.5+ keras(GPU版本)安装教程 ... [详细]
  • 关于如何快速定义自己的数据集,可以参考我的前一篇文章PyTorch中快速加载自定义数据(入门)_晨曦473的博客-CSDN博客刚开始学习P ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • 一、tf.transpose函数的用法tf.transpose(input,[dimension_1,dimenaion_2,..,dimension_n]):这个函数主要适用于交换输入张量的不同 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 本文介绍了一个Magento模块,其主要功能是实现前台用户利用表单给管理员发送邮件。通过阅读该模块的代码,可以了解到一些有关Magento的细节,例如如何获取系统标签id、如何使用Magento默认的提示信息以及如何使用smtp服务等。文章还提到了安装SMTP Pro插件的方法,并给出了前台页面的代码示例。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • Struts2+Sring+Hibernate简单配置
    2019独角兽企业重金招聘Python工程师标准Struts2SpringHibernate搭建全解!Struts2SpringHibernate是J2EE的最 ... [详细]
  • OCR:用字符识别方法将形状翻译成计算机文字的过程Matlab:商业数学软件;CUDA:CUDA™是一种由NVIDIA推 ... [详细]
author-avatar
残伤贱爱
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有