带有Tensorflow后端的Keras在CPU上运行predict,但适合GPU

2024-10-01 17:25:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用keras rl来训练我的网络与D-DQN算法。我正在用model.fit_generator()函数在GPU上运行我的培训,以允许在GPU执行backprops时将数据发送到GPU。我怀疑数据的生成与GPU处理数据的速度相比太慢了。在

在数据生成过程中,按照D-DQN算法的指示,我必须首先用模型预测Q值,然后将这些值用于反向传播。如果GPU被用来运行这些预测,这意味着它们破坏了我的数据流(我希望backprops尽可能频繁地运行)。在

有没有方法可以指定在哪个设备上运行特定的操作?在某种程度上,我可以在CPU上运行预测,在GPU上运行backprops。在


Tags: 数据函数模型网络算法modelgpu过程
2条回答

在没有看到代码的情况下很难正确回答您的问题。在

下面的代码显示了如何列出可用设备并强制tensorflow使用特定设备。在

def get_available_devices():
    local_device_protos = device_lib.list_local_devices()
    return [x.name for x in local_device_protos]

get_available_devices()

with tf.device('/gpu:0'):
    //Do GPU stuff here
with tf.device('/cpu:0'):
    //Do CPU stuff here

也许你可以在培训结束时保存模型。然后启动另一个python文件并在导入任何keras或tensorflow之前编写os.environ["CUDA_VISIBLE_DEVICES"]="-1"。现在您应该能够加载模型并使用CPU进行预测。在

相关问题 更多 >

    热门问题