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


Posted in Python onApril 21, 2020

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运算的方法实现

到此这篇关于tensorflow指定CPU与GPU运算的方法实现的文章就介绍到这了,更多相关tensorflow指定CPU与GPU运算内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python3.4编程实现简单抓取爬虫功能示例
Sep 14 Python
python判断字符串是否是json格式方法分享
Nov 07 Python
Python获取当前函数名称方法实例分享
Jan 18 Python
Python 元类实例解析
Apr 04 Python
python实现自动发送邮件
Jun 20 Python
对python for 文件指定行读写操作详解
Dec 29 Python
浅谈Python 多进程默认不能共享全局变量的问题
Jan 11 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
Oct 25 Python
利用python实现AR教程
Nov 20 Python
怎么快速自学python
Jun 22 Python
python基础之模块的导入
Oct 24 Python
使用Django框架创建项目
Jun 10 Python
Python多线程实现支付模拟请求过程解析
Apr 21 #Python
安装多个版本的TensorFlow的方法步骤
Apr 21 #Python
解决Jupyter notebook中.py与.ipynb文件的import问题
Apr 21 #Python
TensorFLow 数学运算的示例代码
Apr 21 #Python
jupyter修改文件名方式(TensorFlow)
Apr 21 #Python
Python基于requests实现模拟上传文件
Apr 21 #Python
Ubuntu中配置TensorFlow使用环境的方法
Apr 21 #Python
You might like
php框架Phpbean说明
2008/01/10 PHP
PHP cURL初始化和执行方法入门级代码
2015/05/28 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
Javascript将string类型转换int类型
2010/12/09 Javascript
jQuery调用WebService的实现代码
2011/06/19 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
深入理解JSON数据源格式
2014/01/10 Javascript
JS实现自动切换文字的导航效果代码
2015/08/27 Javascript
JS实现仿QQ效果的三级竖向菜单
2015/09/25 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
2015/12/08 Javascript
微信小程序 教程之wxapp视图容器 swiper
2016/10/19 Javascript
仿iframe效果Aajx文件上传实例
2016/11/18 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
详解使用webpack构建多页面应用
2017/12/21 Javascript
vue项目动态设置页面title及是否缓存页面的问题
2018/11/08 Javascript
JS实现图片切换效果
2018/11/17 Javascript
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
python中的对象拷贝示例 python引用传递
2014/01/23 Python
python实现探测socket和web服务示例
2014/03/28 Python
python使用wmi模块获取windows下的系统信息 监控系统
2015/10/27 Python
Python图片裁剪实例代码(如头像裁剪)
2017/06/21 Python
浅谈利用numpy对矩阵进行归一化处理的方法
2018/07/11 Python
python使用thrift教程的方法示例
2019/03/21 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
2019/07/11 Python
python excel转换csv代码实例
2019/08/26 Python
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
Hotels.com日本:国外和海外住宿,酒店预订
2019/12/13 全球购物
企业管理部经理岗位职责
2013/12/24 职场文书
施工材料员岗位职责
2014/02/12 职场文书
测绘工程专业求职信
2014/07/15 职场文书
利用Python+OpenCV三步去除水印
2021/05/28 Python
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL
python APScheduler执行定时任务介绍
2022/04/19 Python
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL