我使用分布式张量流进行深度模型校准。
我的数据分布在不同的机器上(每台机器都包含部分数据)。我创建了不同的工作人员,每个人都使用相应机器的数据进行操作。
我的校准循环如下所示:
while True:
train_feed = # my train feed
_, step = sess.run([train_op, global_step], feed_dict=train_feed)
现在,每N个步骤,我想计算验证数据集的损失。此验证数据集也位于不同的机器上(每台机器都包含整个验证数据集的一部分)。
所以我希望我的所有工作人员计算相应机器的验证数据的验证损失,然后是主要工人来计算这些损失的平均值。
因此,首席工作人员必须在其机器上运行自己的验证损失计算,等待其他工作人员在相应的机器上执行相同的操作,然后对结果求和并进行平均。
这样做有简单的方法吗?