基于tensorflow指定GPU运行及GPU资源分配的几种方式小结

1. 在终端执行时设置使用哪些GPU(两种方式)

(1) 如下(export 语句执行一次就行了,以后再运行代码不用执行)

(2) 如下

2. 代码中指定(两种方式)

(1)

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "1"

(2)

# Creates a graph.
with tf.device('/gpu:1'):
 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')
 c = tf.matmul(a, b)
# Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# Runs the op.
print sess.run(c)

若想使用多个GPU,如下

c = []
for d in ['/gpu:0', '/gpu:1']:
 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])
  c.append(tf.matmul(a, b))
with tf.device('/cpu:0'):
 sum = tf.add_n(c)
# Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
# Runs the op.
print sess.run(sum)

3.GPU资源分配

(1) 设置允许GPU增长

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config, ...)

(2) 设置每个GPU内存使用多少

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
session = tf.Session(config=config, ...)

以上这篇基于tensorflow指定GPU运行及GPU资源分配的几种方式小结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • tensorflow -gpu安装方法(不用自己装cuda,cdnn)

    TensorFlow™是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief [1]  . Tensorflow拥有多层级结构,可部署于各类服务器.PC终端和网页并支持GPU和TPU高性能数值计算,被广泛应用于谷歌内部的产品开发和各领域的科学研究 [1-2]  . tensorflow -gpu安装 首先,安装Anoconda 1. 官网下载点我:

  • 解决TensorFlow GPU版出现OOM错误的问题

    问题: 在使用mask_rcnn预测自己的数据集时,会出现下面错误: ResourceExhaustedError: OOM when allocating tensor with shape[1,512,1120,1120] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc [[{{node rpn_model/rpn_conv_shared/convolution}} =

  • Tensorflow实现多GPU并行方式

    Tebsorflow开源实现多GPU训练cifar10数据集:cifar10_multi_gpu_train.py Tensorflow开源实现cifar10神经网络:cifar10.py Tensorflow中的并行分为模型并行和数据并行.模型并行需要根据不同模型设计不同的并行方式,其主要原理是将模型中不同计算节点放在不同硬件资源上运算.比较通用且能简便地实现大规模并行的方式是数据并行,同时使用多个硬件资源来计算不同batch的数据梯度,然后汇总梯度进行全局更新. 数据并行几乎适用于所有深度学

  • tensorflow-gpu安装的常见问题及解决方案

    装tensorflow-gpu的时候经常遇到问题,自己装过几次,经常遇到相同或者类似的问题,所以打算记录一下,也希望对其他人有所帮助 基本信息 tensorflow-gpu pip安装(virtualenv等虚拟安装实质也是pip安装,只是建了个独立的环境,不会影响系统环境,查问题比较容易,最多重新再创建一个干净的环境再来) 安装完之后会用import tensorflow看是否安装成功,结果报错,主要有碰到下面两大类报错信息: 1.ImportError: DLL load failed: 找

  • win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程

    tf2.0的三个优点: 1.方便搭建网络架构: 2.自动求导 3.GPU加速(便于大数据计算) 安装过程(概要提示) step1:安装annaconda3 step2:安装pycharm step3:安装tensorflow2.0 cpu版本 (1)进入anaconda prompt(anaconda3) (2)默认为(base)环境 (3)输入python,查看python版本:输入exit()退出 (4)输入conda info --envs查看虚拟环境 (5)此处以在(base)环境中安装

  • 检测tensorflow是否使用gpu进行计算的方式

    如下所示: import tensorflow as tf sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) 查看日志信息若包含gpu信息,就是使用了gpu. 其他方法:跑计算量大的代码,通过 nvidia-smi 命令查看gpu的内存使用量. 以上这篇检测tensorflow是否使用gpu进行计算的方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 解决Tensorflow占用GPU显存问题

    我使用Pytorch进行模型训练时发现真正模型本身对于显存的占用并不明显,但是对应的转换为tensorflow后(权重也进行了转换),发现Python-tensorflow在使用时默认吃掉所有显存,并且不手动终结程序的话显存并不释放(我有两个序贯的模型,前面一个跑完后并不释放占用显存)(https://github.com/tensorflow/tensorflow/issues/1727),这一点对于后续的工作有很大的影响. 后面发现python-tensorflow限制显存有两种方法: 1.

  • tensorflow指定GPU与动态分配GPU memory设置

    在tensorflow中,默认指定占用所有的GPU,如需指定占用的GPU,可以在命令行中: export CUDA_VISIBLE_DEVICES=1 这样便是只占用1号GPU,通过命令 nvidia-smi 可以查看各个GPU的使用情况. 另外,也可以在python程序中指定GPU,并且动态分配memory,代码如下 import os import sys os.environ['CUDA_VISIBLE_DEVICES'] = sys.argv[1] import tensorflow a

  • win10安装tensorflow-gpu1.8.0详细完整步骤

    在整个安装的过程中也遇到了很多的坑,故此做个记录,争取下次不再犯! 我的整个基本配置如下: 电脑环境如下:win10(64位)+CPU:E5-2603 +GPU:GTX 1070 需要安装的软件如下:Anaconda3-4.2.0-Windows-x86_64(python 3.5.2) + tensorflow-gpu 1.8 + CUDA 9.0 + cuDNN v7.1 for CUDA9.0 若你想在自己的windows上安装tensorflow-gpu,一般化也可以遵循如下的步骤. 1

  • 基于tensorflow指定GPU运行及GPU资源分配的几种方式小结

    1. 在终端执行时设置使用哪些GPU(两种方式) (1) 如下(export 语句执行一次就行了,以后再运行代码不用执行) (2) 如下 2. 代码中指定(两种方式) (1) import os os.environ["CUDA_VISIBLE_DEVICES"] = "1" (2) # Creates a graph. with tf.device('/gpu:1'): a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0],

  • 基于Tensorflow使用CPU而不用GPU问题的解决

    之前的文章讲过用Tensorflow的object detection api训练MobileNetV2-SSDLite,然后发现训练的时候没有利用到GPU,反而CPU占用率贼高(可能会有Could not dlopen library 'libcudart.so.10.0'之类的警告).经调查应该是Tensorflow的GPU版本跟服务器所用的cuda及cudnn版本不匹配引起的.知道问题所在之后就好办了. 检查cuda和cudnn版本  首先查看cuda版本: cat /usr/local/

  • 基于$.ajax()方法从服务器获取json数据的几种方式总结

    一.什么是json json是一种取代xml的数据结构,和xml相比,它更小巧但描述能力却很强,网络传输数据使用流量更少,速度更快. json就是一串字符串,使用下面的符号标注. {键值对} : json对象 [{},{},{}] :json数组 "" :双引号内是属性或值 : :冒号前为键,后为值(这个值可以是基本数据类型的值,也可以是数组或对象),所以 {"age": 18} 可以理解为是一个包含age为18的json对象,而[{"age":

  • TensorFlow设置日志级别的几种方式小结

    TensorFlow中的log共有INFO.WARN.ERROR.FATAL 4种级别.有以下几种设置方式. 1. 通过设置环境变量控制log级别 可以通过环境变量TF_CPP_MIN_LOG_LEVEL进行设置,TF_CPP_MIN_LOG_LEVEL的不同值的含义分别如下: Level Level for Humans Level Description 0 DEBUG all messages are logged (Default) 1 INFO INFO messages are no

  • 基于spring三方包类注入容器的四种方式小结

    如果引用第三方jar包,肯定是不能直接使用常用注解@Controller.@Service.@Repository.@Component将类的实例注入到spring容器中.以下四种方法可以向spring容器中导入三方包中类实例 . 1 xml配置 这种情况大家用的比较多,就是在spring的xml文件中配置需要导入的bean.在springweb项目工程web.xml中 ContextLoaderListener或者DispatcherServlet的初始参数contextConfigLocat

  • node运行js获得输出的三种方式示例详解

    一.通过console.log输出(我最喜欢的) 1.js脚本 1.js var arguments = process.argv.splice(2); //获得入参 var a= arguments[0]; 取第一个 console.log(a) //输出 2.python脚本 test_1.py import os print(os.popen('node 1.js fuck').read()) #打印结果fuck 二.通过文件读写获取 1.js脚本 1.js //npm环境别忘了装了 va

  • springboot项目部署在linux上运行的两种方式小结

    springboot部署项目在linux的两种方式 可以选择 war包方式或者jar包方式(个人推荐使用jar方式) 1.springboot的jar包方式 因为idea默认就是jar打包方式所以直接使用maven工具按照步骤点击就可以直接打包 打包之前别忘了修改好你的配置文件,别到时候端口号冲突启动不了(多个同样的端口号),假如要使用linux上的数据库也要提前修改好密码 然后控制台就会输出执行过程,不用管,最后结束了就会这如图红框处找到输出路径. 找到这个文件把他扔到你的linux虚拟机里,

  • 基于spring boot排除扫描类的三种方式小结

    最近在做单测的时候,由于自己配置的spring boot容器会默认扫描很多不想被加载,网上中文的文章并不多,所以来总结一下. 默认下面描述的类都在一个包下面 第一步我们新建一个应用启动的类,一个类用来充当Configuration,为了能明显的感知到其到底有没生效,我编写如下: @SpringBootApplication public class Test { public static void main(String[] args) { new SpringApplication(Test

  • linux后台运行的几种方式(小结)

    1.nohup 将程序以忽略挂起信号的方式运行起来 补充说明 nohup命令 可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端. 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中. 如果当前目录的 nohup.out 文件不可写,输出重定向到$HOME/nohup.out文件中. 如果没有文件能创建或打开以用于追加,那么 command 参数指定的命令不可调用. 如果标准错误是一个终端,那么把指定的命令写给标准错误

  • 详解tf.device()指定tensorflow运行的GPU或CPU设备实现

    在tensorflow中,我们可以使用 tf.device() 指定模型运行的具体设备,可以指定运行在GPU还是CUP上,以及哪块GPU上. 设置使用GPU 使用 tf.device('/gpu:1') 指定Session在第二块GPU上运行: import tensorflow as tf with tf.device('/gpu:1'): v1 = tf.constant([1.0, 2.0, 3.0], shape=[3], name='v1') v2 = tf.constant([1.0

随机推荐