class_docstr: Class for composing individual encoding stages.
  
  This class provides functionality for arbitrarily composing individual
  encoding stages (implementations of `EncodingStageInterface` or
  `AdaptiveEncodingStageInterface`) into a tree, where an output `Tensor` of an
  encoding stage can be further encoded by another encoding stage.
  
  The interface is similar to that of `AdaptiveEncodingStageInterface`, with the
  additional methods `decode_before_sum` and `decode_after_sum`. These methods
  split the decoding functionality to two parts, based on commutativity with
  summation.
  
  Similar to the `AdaptiveEncodingStageInterface`, the methods are designed to
  be functional transformations. That means, for instance, that the
  `initial_state` and `update_state` methods do not modify any underlying state.
  Rather, the user of the `Encoder` class is responsible for storing any values
  if necessary, and providing them back to appropriate methods of this class.
docstr: Decodes the part of encoded representation not commuting with sum.
  
  This method represents part of the whole decoding logic, which does not
  commute with sum. It can be an identity (if everything commutes with sum),
  the full decoding (if nothing commutes with sum), or a partial decoding.
  
  Args:
    encoded_tensors: A dictionary representing the encoded value. The
      structure needs to be the corresponding return structure of the `encode`
      method.
    decode_params: A dictionary containing the parameters needed for the
      decoding. The structure needs to be the corresponding return structure
      of the `get_params` method.
    shape: A dictionary with the input shapes provided to the `encode` methods
      of individual encoding stages. The structure needs to be the
      corresponding return structure of the `encode` method.
    name: `string`, name of the operation.
  
  Returns:
    If `self.stage.commutes_with_sum` is `False`, returns a single decoded
    `Tensor`. If it is `True`, returns partially decoded `encoded_tensors`,
    i.e., dictionary with the same structure up to the part which does commute
    with sum. This structure is also the expected input to the
    `decode_after_sum` method.
docstr_tok: ["Decodes","the","part","of","encoded","representation","not","commuting","with","sum",".","This","method","represents","part","of","the","whole","decoding","logic",",","which","does","not","commute","with","sum",".","It","can","be","an","identity","(","if","everything","commutes","with","sum",")",",","the","full","decoding","(","if","nothing","commutes","with","sum",")",",","or","a","partial","decoding",".","Args",":","encoded_tensors",":","A","dictionary","representing","the","encoded","value",".","The","structure","needs","to","be","the","corresponding","return","structure","of","the","`","encode","`","method",".","decode_params",":","A","dictionary","containing","the","parameters","needed","for","the","decoding",".","The","structure","needs","to","be","the","corresponding","return","structure","of","the","`","get_params","`","method",".","shape",":","A","dictionary","with","the","input","shapes","provided","to","the","`","encode","`","methods","of","individual","encoding","stages",".","The","structure","needs","to","be","the","corresponding","return","structure","of","the","`","encode","`","method",".","name",":","`","string","`",",","name","of","the","operation",".","Returns",":","If","`","self.stage.commutes_with_sum","`","is","`","False","`",",","returns","a","single","decoded","`","Tensor","`",".","If","it","is","`","True","`",",","returns","partially","decoded","`","encoded_tensors","`",",","i.e.",",","dictionary","with","the","same","structure","up","to","the","part","which","does","commute","with","sum",".","This","structure","is","also","the","expected","input","to","the","`","decode_after_sum","`","method","."]
code: def decode_before_sum(
      self, encoded_tensors, decode_params, shape, name=None
  ):
      """Decodes the part of encoded representation not commuting with sum.
  
      This method represents part of the whole decoding logic, which does not
      commute with sum. It can be an identity (if everything commutes with sum),
      the full decoding (if nothing commutes with sum), or a partial decoding.
  
      Args:
        encoded_tensors: A dictionary representing the encoded value. The
          structure needs to be the corresponding return structure of the `encode`
          method.
        decode_params: A dictionary containing the parameters needed for the
          decoding. The structure needs to be the corresponding return structure
          of the `get_params` method.
        shape: A dictionary with the input shapes provided to the `encode` methods
          of individual encoding stages. The structure needs to be the
          corresponding return structure of the `encode` method.
        name: `string`, name of the operation.
  
      Returns:
        If `self.stage.commutes_with_sum` is `False`, returns a single decoded
        `Tensor`. If it is `True`, returns partially decoded `encoded_tensors`,
        i.e., dictionary with the same structure up to the part which does commute
        with sum. This structure is also the expected input to the
        `decode_after_sum` method.
      """
      values = (
          tf.nest.flatten(shape)
          + tf.nest.flatten(decode_params)
          + tf.nest.flatten(encoded_tensors)
      )
      with tf.compat.v1.name_scope(
          name, "encoder_decode_before_sum", values
      ):
          return self._decode_before_sum_impl(
              encoded_tensors, decode_params, shape, force_decode=False
          )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import six
  import tensorflow
  from tensorflow_model_optimization.python.core.internal.tensor_encoding.core import encoding_stage
  from tensorflow_model_optimization.python.core.internal.tensor_encoding.utils import py_utils
label_desc: Use image node_id 15 for calling the Encoder obj's underlying member method code with example usage: obj.decode_before_sum(encoded_tensors, decode_params, shape, name) and returns: self