1

我将 PyTorch Lightning 与 w&b 一起使用,并尝试将指标与一组有限的配置相关联。在LightningModule课堂上,我将其定义test_step为:

def test_step(self, batch, batch_idx):
  x, y_true, config_file =  batch
  y_pred = self.forward(x)
  accuracy = self.accuracy(y_pred, y_true)
  self.log("test/accuracy", accuracy)

假设(为简单起见)批量大小为 1,这将记录 1 个样本的准确度,并将在 w&b 仪表板中显示为图表。

我想将此准确性与实验环境的某些配置相关联。此配置可能包括 BDP 因子、带宽延迟、队列大小、位置等。我不想绘制配置,我只想能够通过某些配置值过滤或分组精度。

我能想出的唯一解决方案是将这些配置添加为查询字符串:

def test_step(self, batch, batch_idx):
  x, y_true, config_file =  batch
  # read values in config file
  # ...

  y_pred = self.forward(x)
  accuracy = self.accuracy(y_pred, y_true)
  self.log("test/BDP=2&delay=10ms&queue_size=10&topology=single/accuracy", accuracy)

有没有更好的解决方案,它集成了我想要的能够按 BDP 等值进行分组和过滤的功能?

4

1 回答 1

1

我在 W&B 工作。您可以使用 wandb.config 记录您的配置变量,如下所示:

wandb.config['my_variable'] = 123

然后您将能够通过您记录的任何配置过滤图表。或者我错过了什么。

save_hyperparameters调用甚至可能会自动获取这些配置值(来自WandbLogger文档

class LitModule(LightningModule):
    def __init__(self, *args, **kwarg):
        self.save_hyperparameters()
于 2022-03-04T11:31:58.677 回答