Tensorflow中tf.ConfigProto()的用法详解

 更新时间:2020年02月06日 15:13:14   作者:泥石流中的一股清流  
今天小编就为大家分享一篇Tensorflow中tf.ConfigProto()的用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

参考Tensorflow Machine Leanrning Cookbook

tf.ConfigProto()主要的作用是配置tf.Session的运算方式,比如gpu运算或者cpu运算

具体代码如下:

import tensorflow as tf

session_config = tf.ConfigProto(
   log_device_placement=True,
   inter_op_parallelism_threads=0,
   intra_op_parallelism_threads=0,
   allow_soft_placement=True)

sess = tf.Session(config=session_config)

a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2,3], name='b')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3,2], name='b')

c = tf.matmul(a,b)
print(sess.run(c))

具体解释

log_device_placement=True

设置为True时,会打印出TensorFlow使用了那种操作

inter_op_parallelism_threads=0

设置线程一个操作内部并行运算的线程数,比如矩阵乘法,如果设置为0,则表示以最优的线程数处理

intra_op_parallelism_threads=0

设置多个操作并行运算的线程数,比如 c = a + b,d = e + f . 可以并行运算

allow_soft_placement=True

有时候,不同的设备,它的cpu和gpu是不同的,如果将这个选项设置成True,那么当运行设备不满足要求时,会自动分配GPU或者CPU。

其他选项

当使用GPU时候,Tensorflow运行自动慢慢达到最大GPU的内存

session_config.gpu_options.allow_growth = True

当使用GPU时,设置GPU内存使用最大比例

session_config.gpu_options.per_process_gpu_memory_fraction = 0.4

是否能够使用GPU进行运算

tf.test.is_built_with_cuda()

另外的处理方法

import tensorflow as tf

sess = tf.Session()

with tf.device('/cpu:0'):
  a = tf.constant([1.0, 3.0, 5.0], shape=[1, 3])
  b = tf.constant([2.0, 4.0, 6.0], shape=[3, 1])

  with tf.device('/gpu:0'):
    c = tf.matmul(a, b)
    c = tf.reshape(c, [-1])

  with tf.device('/gpu:0'):
    d = tf.matmul(b, a)
    flat_d = tf.reshape(d, [-1])

  combined = tf.multiply(c, flat_d)
  print(sess.run(combined))

以上这篇Tensorflow中tf.ConfigProto()的用法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python 判断文件还是文件夹的简单实例

    python 判断文件还是文件夹的简单实例

    今天小编就为大家分享一篇python 判断文件还是文件夹的简单实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • cv2.imread 和 cv2.imdecode 用法及区别

    cv2.imread 和 cv2.imdecode 用法及区别

    对于路径中含有中文的图像,直接用cv2.imread读取会报错,上次看到有大佬使用cv2.imdecode就可以正常读取,有点好奇,所以今天来记录下二者用法和区别,感兴趣的朋友跟随小编一起看看吧
    2023-02-02
  • python实现两字符串映射

    python实现两字符串映射

    这篇文章主要介绍了python实现两字符串映射方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Python探索之爬取电商售卖信息代码示例

    Python探索之爬取电商售卖信息代码示例

    这篇文章首先简单介绍了网络爬虫的基本概念,然后向大家分享了一段有关爬取电商售卖信息的实例代码,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • Pandas筛选某列过滤的方法

    Pandas筛选某列过滤的方法

    本文主要介绍了Pandas筛选某列过滤的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Python爬虫获取整个站点中的所有外部链接代码示例

    Python爬虫获取整个站点中的所有外部链接代码示例

    这篇文章主要介绍了Python爬虫获取整个站点中的所有外部链接代码示例,具有一定借鉴价值,需要的朋友可以参考下
    2017-12-12
  • tensorflow之如何使用GPU而不是CPU问题

    tensorflow之如何使用GPU而不是CPU问题

    这篇文章主要介绍了tensorflow之如何使用GPU而不是CPU问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Python 中的 import 机制之实现远程导入模块

    Python 中的 import 机制之实现远程导入模块

    模块导入( import ),是指在一个模块中使用另一个模块的代码的操作,它有利于代码的复用。这篇文章主要介绍了Python 的 import 机制:实现远程导入模块,需要的朋友可以参考下
    2019-10-10
  • 在Pandas中给多层索引降级的方法

    在Pandas中给多层索引降级的方法

    今天小编就为大家分享一篇在Pandas中给多层索引降级的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • 关于numpy数组轴的使用详解

    关于numpy数组轴的使用详解

    今天小编就为大家分享一篇关于numpy数组轴的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12

最新评论