Rap*_*ard 1 python keras tensorflow keras-rl
我正在使用keras-rl通过D-DQN算法训练我的网络。我正在GPU上运行我的训练,该model.fit_generator()函数具有在反向执行时将数据发送到GPU 的功能。我怀疑与GPU处理数据的速度相比,数据的生成速度太慢。
在数据生成中,按照D-DQN算法的指示,我必须首先使用模型预测Q值,然后将这些值用于反向传播。如果使用GPU来运行这些预测,则意味着它们正在破坏我的数据流(我希望backprops尽可能频繁地运行)。
有什么方法可以指定在哪个设备上运行特定操作?以某种方式,我可以在CPU上运行预测,而在GPU上运行backprops。
也许您可以在训练结束时保存模型。然后启动另一个python文件并编写,os.environ["CUDA_VISIBLE_DEVICES"]="-1"然后再导入任何keras或tensorflow东西。现在,您应该能够使用CPU加载模型并进行预测了。
如果没有看到您的代码,很难正确回答您的问题。
下面的代码显示了如何列出可用设备并强制 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3331 次 |
| 最近记录: |