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

log_device_placement=True

  • 设置tf.ConfigProto()中参数log_device_placement = True ,可以获取到 operations 和 Tensor 被指派到哪个设备(几号CPU或几号GPU)上运行,会在终端打印出各项操作是在哪个设备上运行的。

inter_op_parallelism_threads=0

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

intra_op_parallelism_threads=0

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

allow_soft_placement=True

  • 在tf中,通过命令 “with tf.device(’/cpu:0’):”,允许手动设置操作运行的设备。如果手动设置的设备不存在或者不可用,就会导致tf程序等待或异常,为了防止这种情况,可以设置tf.ConfigProto()中参数allow_soft_placement=True,允许tf自动选择一个存在并且可用的设备来运行操作。

另外:

限制GPU资源使用:

为了加快运行效率,TensorFlow在初始化时会尝试分配所有可用的GPU显存资源给自己,这在多人使用的服务器上工作就会导致GPU占用,别人无法使用GPU工作的情况。

tf提供了两种控制GPU资源使用的方法,一是让TensorFlow在运行过程中动态申请显存,需要多少就申请多少;第二种方式就是限制GPU的使用率。

一、动态申请显存

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config)

二、限制GPU使用率

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4  #占用40%显存
session = tf.Session(config=config)

或者:

gpu_options=tf.GPUOptions(per_process_gpu_memory_fraction=0.4)
config=tf.ConfigProto(gpu_options=gpu_options)
session = tf.Session(config=config)

设置使用哪块GPU

方法一、在python程序中设置:

os.environ['CUDA_VISIBLE_DEVICES'] = '0' #使用 GPU 0
os.environ['CUDA_VISIBLE_DEVICES'] = '0,1' # 使用 GPU 0,1

方法二、在执行python程序时候:

CUDA_VISIBLE_DEVICES=0,1 python yourcode.py

推荐使用更灵活一点的第二种方法。

参考文章:Tensorflow中tf.ConfigProto()详解

tensorflow tf.ConfigProto() (配置tf.Session的运算方式)(allow_soft_placement、inter_op_parallelism_threads等)相关推荐

  1. tensorflow中使用tf.ConfigProto()配置Session运行参数GPU设备指定

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/dcrmg/article/detail ...

  2. Tensorflow中tf.ConfigProto()详解

    参考Tensorflow Machine Leanrning Cookbook tf.ConfigProto()主要的作用是配置tf.Session的运算方式,比如gpu运算或者cpu运算 具体代码如 ...

  3. TensorFlow学习——tf.GPUOptions和tf.ConfigProto用法解析

    在服务器上用多GPU做训练时,由于想只用其中的一个GPU设备做训练,可使用深度学习代码运行时往往出现多个GPU显存被占满清理.出现该现象主要是tensorflow训练时默认占用所有GPU的显存. 查看 ...

  4. tf.ConfigProto()详解

    tf.ConfigProto()主要的作用是配置tf.Session的运算方式,比如gpu运算或者cpu运算 tf.ConfigProto一般用在创建session的时候,用来对session进行参数 ...

  5. tensorflow 无法执行sess =tf .session ()_深度学习|费解的tensorflow

    学过Python的小伙伴都会觉得,python的语法简单,逻辑清晰.虽然tensorflow是python的一个库(并不是标准库),但是使用并不简单,你可能会被tensorflow的奇怪语法设计困惑, ...

  6. with tf.Session(config=tf.ConfigProto(log_device_placement=True))

    这个加上后,不能顺利利用gpu了, with tf.Session(config=tf.ConfigProto(log_device_placement=True)) as sess,tf.devic ...

  7. tensorflow 启动Session(tf.Session(),tf.InteractivesSession(),tf.train.Supervisor().managed_session() )

    (1)tf.Session() 计算图构造完成后, 才能启动图. 启动图的第一步是创建一个 Session 对象. 示例程序: #coding:utf-8 import tensorflow as t ...

  8. TensorFlow 学习(二)—— tf.Graph、tf.Session() 与 tf.Session().run()

    session: with tf.Session() as sess:/ tf.InteractiveSession() 初始化: tf.global_variables_initializer() ...

  9. tf.ConfigProto()函数

    tf.ConfigProto一般用在创建session的时候用来对session进行参数配置. tf.ConfigProto()的参数 log_device_placement = True : 是否 ...

最新文章

  1. 技术开源出现“逆趋势”,中国如何下好 AI Open 这盘棋
  2. cache老化时间的思考--以nat为例
  3. QML笔记-使用Row的时候要注意的地方(一定要指明高度和宽度)
  4. c语言推箱子代码_C语言烂大街的东西都学不会!C语言多关卡推箱子制作教程
  5. PowerDesigner一些小技巧
  6. java程序员学习路线图 java程序员进阶路线
  7. 大数据经典案例有哪些?
  8. 戴尔服务器怎么win7系统安装系统,戴尔 DELLVostro3400能不能安装windows7系统_戴尔 DELLVostro3400怎么安装win7系统-win7之家...
  9. 《与我长跑十年的女友就要嫁人了》…
  10. WinForm自定义分页控件实现Datagridview分页效果附引用Demo
  11. vue树形权限菜单_基于Vue的树形菜单之两种方式实现
  12. java实验作业答案_JAVA实验作业 JAVA题目
  13. centos安装python3.8.1_在CentOS 8上编译安装Python 3.8.1
  14. android 斜线 绘制_Android 自定义 斜线进度框 ,雨点式背景
  15. 企业邮箱使用安全注意事项
  16. STL库:vector
  17. Chomsky文法分类
  18. cdn 配合 oss加速
  19. mysql中db的名词解释_数据库原理名词解释
  20. Kafka 压缩、限流和 SASL_PLAIN 、 SASL_SCRAM-SHA-256简单认证

热门文章

  1. 频谱仪使用方法图解_钳形电流表使用方法图解
  2. 【概念信息】COPC概览
  3. 【实用/转载】ALV OO Container屏幕自适应设置
  4. SAP MM 评估类型 评估类别
  5. 会计科目****不能使用(请更正)
  6. SAP读取财务报表版本的标准函数
  7. 删除Add-On表字段后不能激活
  8. 16款新品发布,数据揭秘小米MIX荣归背后逻辑
  9. 红帽子linux6.6内核版本,RedHat/CentOS发行版本号及内核版本号对照表
  10. asp点击链接数字加1代码_Asp.Net Core使用TinyMCE富媒体编辑器