Pytorch Lightning Tensorboard Logger для нескольких моделей

avatar
qh2150
9 августа 2021 в 06:46
631
1
0

Я относительно новичок в Lightning и Loggers, а не в ручном отслеживании показателей. Я пытаюсь обучить две разные модели и отобразить их точность и потери на одних и тех же диаграммах в tensorboard (или любом другом регистраторе) в Colab.

Прямо сейчас у меня в основном:

trainer1 = pl.Trainer(gpus=n_gpus, max_epochs=n_epochs, progress_bar_refresh_rate=20, num_sanity_val_steps=0)

trainer2 = pl.Trainer(gpus=n_gpus, max_epochs=n_epochs, progress_bar_refresh_rate=20, num_sanity_val_steps=0)

trainer1.fit(Model1, train_loader, val_loader)
trainer2.fit(Model2, train_loader, val_loader)

#Then later:

%load_ext tensorboard

%tensorboard --logdir lightning_logs/

То, что я хотел бы видеть на данный момент, это то, что эти зарегистрированные показатели отображаются вместе на одной диаграмме, любая помощь будет оценена по достоинству. Я потратил некоторое время, пытаясь поиграть с этим, но я немного не в себе, спасибо!

Источник

Ответы (1)

avatar
ayandas
9 августа 2021 в 14:26
1

Точная диаграмма, используемая для регистрации конкретной метрики, зависит от имени ключа, которое вы указываете в вызове .log() (это функция, которую Lightning наследует от самого TensorBoard)

def validation_step(self, batch, _):
  #  This string decides which chart to use in the TB web interface
  #         vvvvvvvvv
  self.log('valid_acc', acc)

Просто используйте одну и ту же строку для обоих вызовов .log() и сохраните оба запуска в одном каталоге.

logger = TensorBoardLogger(save_dir='lightning_logs/', name='model1')
logger = TensorBoardLogger(save_dir='lightning_logs/', name='model2')

Если вы запустите tesnsorboard --logdir ./lightning_logs, указав на родительский каталог, вы сможете увидеть обе метрики на одной диаграмме с ключом с именем valid_acc.