class_docstr: Maintains a stream of deviation and base values, and compute the following ratio
  
  MD = \sqrt{\sigma{deviation^2}} / \sqrt{\sigma{base^2}}
  
  Call .restart() to clear added values and to start a new round of averaging
docstr: add new deviation and base values
  
  Parameters
  ----------
  deviation : Tensor
  base : Tensor
  
  Raises
  ------
  ValueError
      if deviation and base are not in the same shape
docstr_tok: ["add","new","deviation","and","base","values","Parameters","--","--","--","--","--","deviation",":","Tensor","base",":","Tensor","Raises","--","--","--","ValueError","if","deviation","and","base","are","not","in","the","same","shape"]
code: def update(self, deviation: Tensor, base: Tensor) -> None:
      """
      add new deviation and base values
  
      Parameters
      ----------
      deviation : Tensor
      base : Tensor
  
      Raises
      ------
      ValueError
          if deviation and base are not in the same shape
      """
      if deviation.size() != base.size():
          raise ValueError(
              "`deviation` and `base` should matchh in dimensions"
          )
      self._cum_deviation += deviation.pow(2).sum().item()
      self._cum_base += base.pow(2).sum().item()
      self.cache = (
          deviation.pow(2)
          .sum()
          .pow(0.5)
          .div(base.pow(2).sum().pow(0.5))
          .item()
      )
  
imports: from __future__ import annotations
  import time
  import warnings
  from abc import ABC, abstractmethod
  from typing import Optional, Union
  from torch import Tensor
  from ..engine.distributed import reduce_value
label_desc: Use image node_id 1 for calling the RootMeanSquareDeviationMeter obj's underlying member method code with example usage: obj.update(deviation, base) without return types