为什么Ray Tune跟踪无法保存所有数据点?

问题描述

以下代码块旨在保存当前运行的多个指标:

track.log(pgd_loss=pgd_loss)
track.log(pgd_acc=pgd_acc)
track.log(test_loss=test_loss)
track.log(test_acc=test_acc)

但是,只有最后一行track.log(test_acc=test_acc)有效。 我在做什么错了?

解决方法

尝试通过一次调用保存所有指标:

track.log(pgd_loss=pgd_loss,pgd_acc=pgd_acc,test_loss=test_loss,test_acc=test_acc)

我怀疑track.log异步保存了这些值,并且偶然覆盖了先前对track.log的调用尚未完成保存的值。 这就是为什么只有最后一次通话有效的原因。