PyTorch Lightning – это популярная среда глубокого обучения, упрощающая обучение и развертывание моделей PyTorch. Хотя PyTorch Lightning предоставляет богатый набор функций, некоторые пользователи могут столкнуться с сообщением об ошибке «pytorch_lightning» не имеет атрибута «метрики». В этой статье мы исследуем эту проблему и предоставим альтернативные методы работы с метриками в PyTorch Lightning. Мы обсудим несколько методов, каждый из которых сопровождается примерами кода, которые помогут вам эффективно отслеживать и оценивать производительность ваших моделей.
- Использование встроенных метрик PyTorch Lightning:
PyTorch Lightning предлагает разнообразную коллекцию встроенных метрик для различных задач машинного обучения. Доступ к этим показателям можно получить через модульpl.metrics. Вот пример использования показателяAccuracy:
import pytorch_lightning as pl
accuracy = pl.metrics.Accuracy()
predictions = ... # Model predictions
targets = ... # Ground truth labels
accuracy(predictions, targets)
- Реализация пользовательских метрик.
В сценариях, где вам необходимо определить собственные метрики оценки, PyTorch Lightning позволяет создавать собственные классы метрик путем создания подклассовpl.metrics.Metric. Вот простой пример пользовательской метрики для средней абсолютной ошибки (MAE):
import torch
import pytorch_lightning as pl
class MeanAbsoluteError(pl.metrics.Metric):
def __init__(self):
super().__init__()
self.add_state("sum_abs_error", default=torch.tensor(0.0), dist_reduce_fx="sum")
def update(self, preds, target):
abs_error = torch.abs(preds - target)
self.sum_abs_error += torch.sum(abs_error)
def compute(self):
return self.sum_abs_error
mae = MeanAbsoluteError()
predictions = ... # Model predictions
targets = ... # Ground truth labels
mae(predictions, targets)
- Оценка метрик во время проверки.
PyTorch Lightning предоставляет удобный способ вычисления и отслеживания метрик во время проверки. Вы можете определить метрики, которые хотите оценить, в методеvalidation_epoch_endвашего LightningModule. Вот пример:
import pytorch_lightning as pl
class MyModel(pl.LightningModule):
def validation_epoch_end(self, outputs):
val_loss = pl.metrics.functional.accuracy(outputs)
self.log("val_loss", val_loss, prog_bar=True)
Хотя при использовании PyTorch Lightning можно встретить сообщение об ошибке «pytorch_lightning не имеет атрибута метрики», в этой статье продемонстрировано несколько методов эффективной работы с метриками. Используя встроенные метрики, внедряя собственные метрики и оценивая метрики во время проверки, вы можете легко отслеживать и оценивать производительность ваших моделей PyTorch. PyTorch Lightning предоставляет гибкую и эффективную среду для исследований и разработок в области глубокого обучения, позволяющую достигать самых современных результатов.