TensorFlow——tensorflow指定CPU与GPU运算
2019-05-25 23:05
811 查看
1.指定GPU运算
如果安装的是GPU版本,在运行的过程中TensorFlow能够自动检测。如果检测到GPU,TensorFlow会尽可能的利用找到的第一个GPU来执行操作。
如果机器上有超过一个可用的GPU,除了第一个之外的其他的GPU默认是不参与计算的。为了让TensorFlow使用这些GPU,必须将OP明确指派给他们执行。with......device语句能够用来指派特定的CPU或者GPU执行操作:
import tensorflow as tf import numpy as np with tf.Session() as sess: with tf.device('/cpu:0'): a = tf.placeholder(tf.int32) b = tf.placeholder(tf.int32) add = tf.add(a, b) sum = sess.run(add, feed_dict={a: 3, b: 4}) print(sum)
设备的字符串标识,当前支持的设备包括以下的几种:
cpu:0 机器的第一个cpu。
gpu:0 机器的第一个gpu,如果有的话
gpu:1 机器的第二个gpu,依次类推
类似的还有tf.ConfigProto来构建一个config,在config中指定相关的GPU,并且在session中传入参数config=“自己创建的config”来指定gpu操作
其中,tf.ConfigProto函数的参数如下:
log_device_placement=True: 是否打印设备分配日志
allow_soft_placement=True: 如果指定的设备不存在,允许TF自动分配设备
import tensorflow as tf import numpy as np config = tf.ConfigProto(log_device_placement=True, allow_soft_placement=True) with tf.Session(config=config) as sess: a = tf.placeholder(tf.int32) b = tf.placeholder(tf.int32) add = tf.add(a, b) sum = sess.run(add, feed_dict={a: 3, b: 4}) print(sum)
2.设置GPU使用资源
上文的tf.ConfigProto函数生成的config之后,还可以设置其属性来分配GPU的运算资源,如下代码就是按需分配
import tensorflow as tf import numpy as np config = tf.ConfigProto(log_device_placement=True, allow_soft_placement=True) config.gpu_options.allow_growth = True with tf.Session(config=config) as sess: a = tf.placeholder(tf.int32) b = tf.placeholder(tf.int32) add = tf.add(a, b) sum = sess.run(add, feed_dict={a: 3, b: 4}) print(sum)
使用 allow_growth option,刚开始会分配少量的GPU容量,然后按需要慢慢的增加,有与不会释放内存,随意会导致内存碎片。
同样,上述的代码也可以在config创建时指定,
import tensorflow as tf import numpy as np gpu_options = tf.GPUOptions(allow_growth=True) config = tf.ConfigProto(gpu_options=gpu_options) with tf.Session(config=config) as sess: a = tf.placeholder(tf.int32) b = tf.placeholder(tf.int32) add = tf.add(a, b) sum = sess.run(add, feed_dict={a: 3, b: 4}) print(sum)
我们还可以给gpu分配固定大小的计算资源。
gpu_options = tf.GPUOptions(allow_growth=True, per_process_gpu_memory_fraction=0.5)
上述代码的含义是分配给tensorflow的GPU显存大小为:GPU的实际显存*0.5
相关文章推荐
- tensorflow指定设备GPU/CPU
- TensorFlow在指定CPU/GPU上运行的方法
- win7-tensorflow查看当前运算器件及无法正常切换CPU/GPU运算器件问题解决方案
- tensorflow 在指定CPU/GPU上运行方法
- tensorflow对比AlexNet的CPU和GPU运算效率
- Windows下安装tensorflow GPU版本报错:OSError: [WinError 126] 找不到指定的模块/Could not find 'cudart64_90.dll'.
- tensorflow指定gpu的使用
- Windows 10 安装 Cuda, Tensorflow, 和keras,附CPU/GPU切换小技巧
- 第一阶段-入门详细图文讲解tensorflow1.4 -安装(二)Windows CPU or GPU
- TensorFlow在训练模型时指定GPU进行训练
- tensorflow下设置使用某一块GPU、多GPU、CPU的情况
- ubuntu 上运行tensorflow时指定gpu
- tensorflow-gpu 和cpu使用训练ssd模型感想(显卡内存不足解决办法)
- 用Anaconda 卸载tensorflow(cpu版本)导入tensorflow-gpu (gpu版本) ----太方便了趴
- keras tensorboard的使用, 设置指定GPU及其内存, 强制只使用cpu
- tensorflow中指定GPU及GPU显存设置
- 2018最新win10 安装tensorflow1.4(GPU/CPU)+cuda8.0+cudnn8.0-v6 + keras 安装CUDA失败 导入tensorflow失败报错问题解决
- tensorflow中使用指定的GPU及GPU显存
- Tensorflow-GPU环境配置教程 Win10+CUDA 出现问题解决方案:ImportError: DLL load failed: **找不到指定的模块**
- 取模、乘法和除法运算在CPU和GPU上的效率