热门标签 | 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


推荐阅读
  • 小编给大家分享一下Vue3中如何提高开发效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获, ... [详细]
  • 高级缩放示例.就像谷歌地图一样.它仅缩放图块,但不缩放整个图像.因此,缩放的瓷砖占据了恒定的记忆,并且不会为大型缩放图像调整大小的图像.对于简化的缩放示例lookhere.在Win ... [详细]
  • 本文提供了PyTorch框架中常用的预训练模型的下载链接及详细使用指南,涵盖ResNet、Inception、DenseNet、AlexNet、VGGNet等六大分类模型。每种模型的预训练参数均经过精心调优,适用于多种计算机视觉任务。文章不仅介绍了模型的下载方式,还详细说明了如何在实际项目中高效地加载和使用这些模型,为开发者提供全面的技术支持。 ... [详细]
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • Beetl是一款先进的Java模板引擎,以其丰富的功能、直观的语法、卓越的性能和易于维护的特点著称。它不仅适用于高响应需求的大型网站,也适合功能复杂的CMS管理系统,提供了一种全新的模板开发体验。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ... [详细]
  • linux网络子系统分析(二)—— 协议栈分层框架的建立
    目录一、综述二、INET的初始化2.1INET接口注册2.2抽象实体的建立2.3代码细节分析2.3.1socket参数三、其他协议3.1PF_PACKET3.2P ... [详细]
  • 在Qt框架中,信号与槽机制是一种独特的组件间通信方式。本文探讨了这一机制相较于传统的C风格回调函数所具有的优势,并分析了其潜在的不足之处。 ... [详细]
  • 如何高效解决Android应用ANR问题?
    本文介绍了ANR(应用程序无响应)的基本概念、常见原因及其解决方案,并提供了实用的工具和技巧帮助开发者快速定位和解决ANR问题,提高应用的用户体验。 ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Flutter 核心技术与混合开发模式深入解析
    本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ... [详细]
  • JUC并发编程——线程的基本方法使用
    目录一、线程名称设置和获取二、线程的sleep()三、线程的interrupt四、join()五、yield()六、wait(),notify(),notifyAll( ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
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社区 版权所有