当前位置:  开发笔记 > 编程语言 > 正文

CPU上的变量,GPU上的训练/渐变

如何解决《CPU上的变量,GPU上的训练/渐变》经验,为你挑选了1个好方法。

在CIFAR-10教程中,我注意到变量放在CPU内存中,但是它表示cifar10-train.py它是用单个GPU训练的.

我很困惑..存储在GPU中的图层/激活是什么?或者,是否存储在GPU中的渐变?否则,似乎在CPU上存储变量根本不会使用GPU - 所有内容都存储在CPU内存中,因此只有CPU用于前向/后向传播.

如果GPU用于f/b传播,那么由于数据CPU < - > GPU的延迟洗牌,这不是浪费吗?



1> 小智..:

实际上,在cifar10-train中,激活和渐变都在GPU上,只有参数在CPU上.由于在CPU和GPU之间复制参数的成本,这对于单GPU培训来说并不是最佳选择.我怀疑这样做的原因是为单GPU和多GPU模型建立一个单独的库,就像在多GPU情况下一样,在CPU上使用参数可能更快.您可以通过将所有变量移动到GPU轻松测试可以获得的加速,只需删除cifar10.py中"_variable_on_cpu"中的"with tf.device('/ cpu:0')".

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有