tensorflow指定CPU与GPU运算的方法实现

作者:Baby-Lily 时间:2023-08-09 11:18:52 

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指定CPU与GPU运算的方法实现

tensorflow指定CPU与GPU运算的方法实现

来源:https://www.cnblogs.com/baby-lily/p/10924444.html

标签:tensorflow,CPU,GPU,运算
0
投稿

猜你喜欢

  • PHP webshell检查工具 python实现代码

    2024-05-03 15:06:00
  • Spark中的数据读取保存和累加器实例详解

    2022-09-13 19:26:46
  • CentOS 7下部署php7.1和开启MySQL扩展的方法教程

    2023-11-19 11:58:09
  • SQLServer行列互转实现思路(聚合函数)

    2024-01-15 15:13:33
  • postman批量执行接口测试的图文步骤

    2023-03-14 00:22:13
  • python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)

    2022-12-31 16:20:14
  • PyTorch中的参数类torch.nn.Parameter()详解

    2021-09-07 19:06:30
  • python调试模块ipdb详解

    2021-11-05 19:59:01
  • 基于OpenCV实现视频循环播放

    2023-07-13 09:10:33
  • Python合并字典键值并去除重复元素的实例

    2022-02-10 17:48:40
  • 如何打包Python Web项目实现免安装一键启动的方法

    2022-08-16 19:28:48
  • 一文深入了解Python中的继承知识点

    2023-01-16 19:57:16
  • SQL分组排序去重复的小实例

    2024-01-19 15:30:46
  • Pipenv轻量级虚拟环境管理工具使用指南

    2023-11-26 02:39:50
  • Vue + Webpack + Vue-loader学习教程之相关配置篇

    2024-04-29 13:10:40
  • OpenCV实现图像滤波之双边滤波

    2022-05-14 07:35:30
  • 面向对象的 Javascript

    2013-07-21 11:57:22
  • 使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法

    2021-09-17 08:53:15
  • vue 踩不完的异步之坑及解决

    2024-04-28 09:30:05
  • 教你用Python创建微信聊天机器人

    2021-10-06 21:50:14
  • asp之家 网络编程 m.aspxhome.com