class_docstr: Base metric class. Process will be called on each batch, process-final at the end of each epoch.
  The metric contract allows for metrics to take any args but not kwargs. The initial metric call will be given state,
  however, subsequent metrics can pass any values desired.
  
  .. note::
  
      All metrics must extend this class.
  
  Args:
      name (str): The name of the metric
class_docstr_tok: ["Base","metric","class",".","Process","will","be","called","on","each","batch",",","process-final","at","the","end","of","each","epoch",".","The","metric","contract","allows","for","metrics","to","take","any","args","but","not","kwargs",".","The","initial","metric","call","will","be","given","state",",","however",",","subsequent","metrics","can","pass","any","values","desired",".","..","note",":",":","All","metrics","must","extend","this","class",".","Args",":","name","(","str",")",":","The","name","of","the","metric"]
docstr: Put the metric in eval mode during model validation.
          
docstr_tok: ["Put","the","metric","in","eval","mode","during","model","validation","."]
code: def eval(self, data_key=None):
      """Put the metric in eval mode during model validation."""
      pass
  
imports: import functools
  import traceback
  import warnings
  import torch
  from packaging import version
  import torchbearer
  import sys
label_desc: Use image node_id 5 for calling the Metric obj's underlying member method code with example usage: obj.eval(data_key) without return types