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 相关文章推荐
Python中3种内建数据结构:列表、元组和字典
Nov 30 Python
Python中使用语句导入模块或包的机制研究
Mar 30 Python
使用Python脚本操作MongoDB的教程
Apr 16 Python
Python 类与元类的深度挖掘 I【经验】
May 06 Python
Python实现OpenCV的安装与使用示例
Mar 30 Python
python主线程捕获子线程的方法
Jun 17 Python
Python画柱状统计图操作示例【基于matplotlib库】
Jul 04 Python
PyCharm在新窗口打开项目的方法
Jan 17 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
Python 实现域名解析为ip的方法
Feb 14 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
Mar 04 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
Feb 19 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过程中的一些注意点的总结
2013/10/25 PHP
深入理解php printf() 输出格式化的字符串
2016/05/23 PHP
PHP微信开发之有道翻译
2016/06/23 PHP
Fleaphp常见函数功能与用法示例
2016/11/15 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
javascript的trim,ltrim,rtrim自定义函数
2008/09/21 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
2011/02/16 Javascript
IE与FireFox中的childNodes区别
2011/10/20 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
js单独获取一个checkbox看其是否被选中
2014/09/22 Javascript
纯JS实现表单验证实例
2016/12/24 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
Swiper实现轮播图效果
2017/07/03 Javascript
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
js实现音乐播放控制条
2017/09/09 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
2019/01/06 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
json_decode 索引为数字时自动排序问题解决方法
2020/03/28 Javascript
Python实现Linux下守护进程的编写方法
2014/08/22 Python
在Linux上安装Python的Flask框架和创建第一个app实例的教程
2015/03/30 Python
在Django框架中编写Context处理器的方法
2015/07/20 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
python opencv实现gif图片分解的示例代码
2019/12/13 Python
如何基于Python创建目录文件夹
2019/12/31 Python
python cookie反爬处理的实现
2020/11/01 Python
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
营业员个人总结的自我评价
2013/10/25 职场文书
《盲人摸象》教学反思
2014/02/16 职场文书
事业单位绩效考核实施方案
2014/03/27 职场文书
大学迎新生标语
2014/10/06 职场文书
2014年办公室文员工作总结
2014/11/12 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书