class_docstr: Base class for distributed computation models and defines interface methods.
  This class is public and should be used for other custom derived distributed models.
class_docstr_tok: ["Base","class","for","distributed","computation","models","and","defines","interface","methods",".","This","class","is","public","and","should","be","used","for","other","custom","derived","distributed","models","."]
code: def all_reduce(
      self,
      tensor: Union[torch.Tensor, float],
      op: str = "sum",
      group: Optional[Any] = None,
  ) -> Union[torch.Tensor, float]:
      if not isinstance(tensor, (torch.Tensor, Number)):
          raise TypeError(f"Unhandled input type {type(tensor)}")
  
      return cast(
          Union[torch.Tensor, float],
          self._collective_op(
              tensor, self._do_all_reduce, op, group=group
          ),
      )
  
imports: from abc import ABCMeta, abstractmethod
  from numbers import Number
  from typing import Any, Callable, cast, List, Optional, Union
  import torch
  from packaging.version import Version
label_desc: Use image node_id 24 for calling the ComputationModel obj's underlying member method code with example usage: obj.all_reduce(tensor, op, group) and returns: cast