keras用cpu加速_可以-Tensorflow后端的Keras可以被迫随意使用CPU或GPU吗?

一种相当可分离的方法是使用

import tensorflow as tf

from keras import backend as K

num_cores = 4

if GPU:

num_GPU = 1

num_CPU = 1

if CPU:

num_CPU = 1

num_GPU = 0

config = tf.ConfigProto(intra_op_parallelism_threads=num_cores,

inter_op_parallelism_threads=num_cores,

allow_soft_placement=True,

device_count = {'CPU' : num_CPU,

'GPU' : num_GPU}

)

session = tf.Session(config=config)

K.set_session(session)

在这里,通过intra_op_parallelism_threads GPU和CPU,我们通过严格定义允许Tensorflow会话访问的GPU和CPU的数量来指示我们是否要使用GPU或CPU运行代码。 变量num_GPU和num_CPU定义了该值。 然后num_cores通过intra_op_parallelism_threads和inter_op_parallelism_threads设置可使用的CPU内核数。

intra_op_parallelism_threads变量指示允许在计算图中的单个节点中使用并行操作(内部)的线程数。 而tensorflow-gpu变量定义了跨计算图节点(并行)进行并行操作可访问的线程数。

tensorflow-gpu允许在满足以下任何条件的情况下在CPU上运行操作:

该操作没有GPU实现

没有已知或注册的GPU设备

需要与CPU的其他输入一起放置

所有这些都在我的类的构造函数中执行,而不执行其他任何操作,并且可以与我使用的任何模型或其他代码完全分开。

注意:这需要安装tensorflow-gpu和cuda/cudnn,因为已提供使用GPU的选项。

参考文献:

ConfigProto中的诸如allow_soft_placement和log_device_placement之类的选项是什么意思?

inter_op_parallelism_threads和intra_op_parallelism_threads的含义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值