我正在使用 keras-rl 通过 D-DQN 算法训练我的网络。我正在使用 model.fit_generator() 函数在 GPU 上运行我的训练,以允许在 GPU 执行反向传播时将数据发送到 GPU。我怀疑与 GPU 处理数据的速度相比,数据的生成速度太慢了。
在生成数据时,按照 D-DQN 算法中的指示,我必须首先用我的模型预测 Q 值,然后使用这些值进行反向传播。如果 GPU 用于运行这些预测,则意味着它们正在破坏我的数据流(我希望反向传播尽可能频繁地运行)。
有没有一种方法可以指定在哪个设备上运行特定操作?在某种程度上,我可以在 CPU 上运行预测,在 GPU 上运行反向传播。
请您参考如下方法:
也许您可以在训练结束时保存模型。然后启动另一个 python 文件并写入 os.environ["CUDA_VISIBLE_DEVICES"]="-1",然后再导入任何 keras 或 tensorflow 内容。现在您应该能够加载模型并使用 CPU 进行预测。
