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清理子进程机制剖析
Nov 23 Python
python pandas 组内排序、单组排序、标号的实例
Apr 12 Python
python 从csv读数据到mysql的实例
Jun 21 Python
Selenium定时刷新网页的实现代码
Oct 31 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
Nov 10 Python
Python中文件的写入读取以及附加文字方法
Jan 23 Python
python实现可逆简单的加密算法
Mar 22 Python
python打包exe开机自动启动的实例(windows)
Jun 28 Python
Python实现上下文管理器的方法
Aug 07 Python
Pycharm连接gitlab实现过程图解
Sep 01 Python
Python爬虫数据的分类及json数据使用小结
Mar 29 Python
python如何正确使用yield
May 21 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 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
php去除字符串换行符示例分享
2014/02/13 PHP
ThinkPHP之M方法实例详解
2014/06/20 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
PHP生成图表pChart的示例解析
2020/07/31 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
用javascript实现点击链接弹出"图片另存为"而不是直接打开
2007/08/15 Javascript
JavaScript读取中文cookie时的乱码问题的解决方法
2009/10/14 Javascript
jQuery 学习6 操纵元素显示效果的函数
2010/02/07 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
js脚本实现数据去重
2014/11/27 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
vue通过cookie获取用户登录信息的思路详解
2018/10/30 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
2020/07/17 Javascript
[03:42]2016国际邀请赛中国区预选赛首日现场玩家采访
2016/06/26 DOTA
Python数据结构之单链表详解
2017/09/12 Python
mac系统安装Python3初体验
2018/01/02 Python
Python实现的生成格雷码功能示例
2018/01/24 Python
python 列表,数组和矩阵sum的用法及区别介绍
2018/06/28 Python
如何使用python把ppt转换成pdf
2019/06/29 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
Django应用程序入口WSGIHandler源码解析
2019/08/05 Python
python中str内置函数用法总结
2020/12/27 Python
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
SQL Server 2000数据库的文件有哪些,分别进行描述。
2015/11/09 面试题
创业资金计划书
2014/02/06 职场文书
校园活动宣传方案
2014/03/28 职场文书
出国留学计划书
2014/04/27 职场文书
七一活动主持词
2015/06/29 职场文书
个人工作失误的保证书怎么写?
2019/06/21 职场文书
MySQL复制问题的三个参数分析
2021/04/07 MySQL