我最近建立了我的第一个TensorFlow模型(从手动编码的python转换而来)。我正在使用tensorflow-gpu,但我只想在训练期间使用GPU进行反向传播。对于其他所有我想使用的CPU。我已经看到this article展示了如何在将默认使用GPU的系统上强制使用CPU。但是,您必须指定要强制使用CPU的每个操作。相反,我想做相反的事情。我想默认使用CPU,但仅将GPU用于训练期间的反向传播。有办法吗?
更新
由于目前我的模型和场景的构建方式,看起来事情在tensorflow上的运行速度会变慢。我尝试使用仅使用常规(非gpu)张量流的不同环境,但它的运行速度仍然比手工编码的python慢得多。我怀疑,这是因为它是一种强化学习模型,可以扮演跳棋(见下文),并在与计算机对手对抗时一次做出一个前向道具的“预测”。在我设计架构时,这很有意义。但是一次做一个预测不是很有效,而对于张量流有任何开销的预测就不那么有效了。
所以,现在我想我需要更改游戏的架构,以便同时进行1000场游戏,并批量运行1000步向前的道具动作。但是,伙计,现在更改架构充其量将是棘手的。
答案 0 :(得分:0)
TensorFlow允许您使用tf.device
上下文管理器控制设备的放置。
例如,要在CPU上运行一些代码
with tf.device('cpu:0'):
<your code goes here>
类似地,强制使用GPU。
最好不要制作两个图,而不是总是在CPU上运行正向传递:展开策略时要使用的仅向前cpu唯一图和仅gpu向前和向后图在训练时使用。