class_docstr: Computes the mean absolute error between labels and predictions.
  
  `loss = mean(abs(y_true - y_pred), axis=-1)`
  
  Usage:
  
  ```python
  pred = torch.tensor([[1, -2], [1, 1]])
  target = torch.tensor([[0, 1], [0, 1]])
  m = MAE()
  m(pred, target)
  print(m.compute())  # tensor(1.2500)
  ```
class_docstr_tok: ["Computes","the","mean","absolute","error","between","labels","and","predictions",".","`","loss","=","mean","(","abs","(","y_true","-","y_pred",")",",","axis=-1",")","`","Usage",":","``","`","python","pred","=","torch.tensor","(","[","[","1",",","-2","]",",","[","1",",","1","]","]",")","target","=","torch.tensor","(","[","[","0",",","1","]",",","[","0",",","1","]","]",")","m","=","MAE","(",")","m","(","pred",",","target",")","print","(","m.compute","(",")",")","#","tensor","(","1.2500",")","``","`"]
code: def __call__(self, preds, targets):
      _check_same_shape(preds, targets)
      self.sum_abs_error += torch.sum(
          torch.abs(torch.sub(preds, targets))
      )
      self.total += targets.numel()
  
imports: import torch
  from abc import ABC, abstractmethod
label_desc: Use image node_id 2 for calling the MAE obj's underlying member method code with example usage: obj.__call__(preds, targets) without return types