ColossalAI/colossalai/legacy/nn/metric/accuracy_2p5d.py

30 lines
801 B
Python
Raw Normal View History

import torch
from torch import nn
from colossalai.legacy.nn.layer.parallel_2p5d import reduce_by_batch_2p5d, split_batch_2p5d
from ._utils import calc_acc
class Accuracy2p5D(nn.Module):
"""Accuracy for 2p5D parallelism"""
def __init__(self):
super().__init__()
def forward(self, logits, targets):
2022-01-21 02:44:30 +00:00
"""Calculate the accuracy of predicted labels.
2022-03-25 05:02:39 +00:00
Args:
logits (:class:`torch.tensor`): Predicted labels.
targets (:class:`torch.tensor`): True labels from data.
Returns:
float: the accuracy of prediction.
2022-01-21 02:44:30 +00:00
"""
with torch.no_grad():
targets = split_batch_2p5d(targets)
correct = calc_acc(logits, targets)
correct = reduce_by_batch_2p5d(correct)
return correct