如何在 Tensorflow 中使用单个 GPU(与 CPU)进行前向推理(验证)与仅用于训练

数据挖掘 机器学习 张量流 交叉验证 损失函数 显卡
2022-03-12 17:40:34

问题所述,利用 GPU 与 CPU 进行验证可能很有用。例如,在交叉验证中,验证示例的数量可能超过每个 epoch 中的训练示例的数量,这导致前向推理需要速度,因为必须复制训练到收敛的过程,尤其是在使用Monte时卡罗交叉验证。

tensorflow.keras.utilsmulti_gpu_model' function of给我带来了麻烦(至少自从 TF2.2 出来之后),所以我现在不考虑这个,尽管我想在未来进行训练和验证(目前只使用一个图形处理器)。显然,并行使用多个 GPU 会更快,但这不是我问题的本质;我认为即使现在只使用一个,我也会获得显着的速度提升。

我可能完全错误地认为我会得到速度提升,因为每个验证示例的很大一部分计算时间可能被我目前正在调查的自定义损失函数所消耗。但是,在 epoch 中的每个训练步骤都会计算完全相同的自定义损失函数(tensorflow目前不可用),在 GPU 上花费不到半秒的时间,但在 10 个 CPU 上验证 25 个示例需要一分钟多的时间工人!

0个回答
没有发现任何回复~