0

在 Keras (TF 2.4.1) 中,我正在 Google AI Platform 上训练模型。该作业在具有 1 个 master 和 1 个 worker 的集群上运行。每种机器类型都是complex_model_m_gpu,包括四个 NVIDIA Tesla K80 GPU。我的工作配置为根据我在每个时期计算的指标 (recall@k) 提前停止。当我在训练完成后查看日志时,我可以看到我的指标在每个时期被计算两次,并且随后的测试以确定指标是否有所改进是在“平行轨道”上进行的,每个轨道不知道另一个。例如,在 epoch 1 我得到两个数字:0.13306 和 0.12903。稍后在 epoch 3,我得到 0.17 和 0.11;0.17 与 0.13306 和 0.11 与 0.12903 进行比较(见下图,从下到上阅读)

在此处输入图像描述

为什么是两个数字?这就像 master 和 worker 分别计算指标一样。有没有办法只获得全局度量并仅确定这个全局数字的改进?

顺便说一句,当我在 Tensorboard 中查看我的标量图时,我的图是混乱的。是因为我在具有多个设备的机器上的每个时期都得到多个数字吗?

编辑:我在一台机器(1 台主机,没有工人)上尝试了同样的方法,这次我只看到一个数字,我的张量板图不再混乱。我刚刚意识到 master 和 worker 配置可能需要在我的代码中有所不同(一个 tf.distribute.MultiWorkerMirroredStrategy 而不是 MirroredStrategy)。我必须对此进行调查。参考:https ://www.tensorflow.org/tutorials/distribute/multi_worker_with_keras

4

0 回答 0