class_docstr: A Compressor with Error Feedback.
class_docstr_tok: ["A","Compressor","with","Error","Feedback","."]
docstr: Compress, reduce, and decompress a given tensor.
  
  Args:
      tensor (Tensor): the Tensor to reduce.
      conf (CollectiveOpsConfig): the config for Collective Ops.
  
  Returns:
      Reduced Tensor
docstr_tok: ["Compress",",","reduce",",","and","decompress","a","given","tensor",".","Args",":","tensor","(","Tensor",")",":","the","Tensor","to","reduce",".","conf","(","CollectiveOpsConfig",")",":","the","config","for","Collective","Ops",".","Returns",":","Reduced","Tensor"]
code: def reduce(self, tensor: Tensor, conf: CollectiveOpsConfig):
      """
      Compress, reduce, and decompress a given tensor.
  
      Args:
          tensor (Tensor): the Tensor to reduce.
          conf (CollectiveOpsConfig): the config for Collective Ops.
  
      Returns:
          Reduced Tensor
      """
      if self.error is not None:
          tensor += self.error
      compressed_tensor = self._compress(tensor)
      self.error = tensor - self._decompress(compressed_tensor)
      reduced = self._all_reduce(compressed_tensor, conf)
      return self._decompress(reduced)
  
imports: from abc import ABC, abstractmethod
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework.ops import Tensor
  from tensorflow.python.ops import collective_ops, math_ops
label_desc: Use image node_id 2 for calling the CompressorEF obj's underlying member method code with example usage: obj.reduce(tensor, conf) and returns: self