tf.ConfigProto()详解

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

参数:

参数作用
log_device_placement是否打印设备分配日志
inter_op_parallelism_threads设置线程一个操作内部并行运算的线程数,比如矩阵乘法,如果设置为0,则表示以最优的线程数处理
intra_op_parallelism_threads设置多个操作并行运算的线程数,比如 c = a + b,d = e + f . 可以并行运算
allow_soft_placement有时候,不同的设备,它的cpu和gpu是不同的,如果将这个选项设置成True,那么当运行设备不满足要求时,会自动分配GPU或者CPU(如果你指定的设备不存在,允许TF自动分配设备)
gpu_optionsgpu配置项,一般用于限制GPU资源的使用

gpu_options

config = tf.ConfigProto()

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

  • 动态申请显存
    config.gpu_options.allow_growth = True :默认开启 Tensorflow 的 session 之后,就会占用几乎所有的显存,这样的话速度会比较快。使用allow_growth,刚一开始分配少量的GPU容量,然后按需慢慢的增加,由于不会释放内存,所以会导致碎片(当使用GPU时候,Tensorflow运行自动慢慢达到最大GPU的内存)
  • 限制GPU的使用率
    config.gpu_options.per_process_gpu_memory_fraction = 0.4:当使用GPU时,设置GPU内存使用最大比例

tf.ConfigProto()使用参数的两种方法:

  1. 第一种实在构造config对象时直接赋值,如下:
tf.ConfigProto(log_device_placement=True,allow_soft_placement=True)
  1. 第二种是先构造config对象,再对构造的config对象进行赋值,如下:
config = tf.ConfigProto()
config.log_device_placement= True
config.allow_soft_placement=True

让参数设置生效的方法

session = tf.Session(config=config)
  • 9
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值