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 commuting with sum.
  
  This method is complementary to the `decode_before_sum` method in the sense
  that `decode_after_sum(decode_before_sum(encoded_tensors), ...)` is always
  equivalent to the full decoding of `encoded_tensors`.
  
  Args:
    encoded_tensors: A dictionary representing the encoded value. The
      structure needs to be the return structure of the `decode_before_sum`
      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.
    num_summands: The number of summands to be passed to individual encoding
      stages.
    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:
    A single decoded `Tensor`.
docstr_tok: ["Decodes","the","part","of","encoded","representation","commuting","with","sum",".","This","method","is","complementary","to","the","`","decode_before_sum","`","method","in","the","sense","that","`","decode_after_sum","(","decode_before_sum","(","encoded_tensors",")",",","...",")","`","is","always","equivalent","to","the","full","decoding","of","`","encoded_tensors","`",".","Args",":","encoded_tensors",":","A","dictionary","representing","the","encoded","value",".","The","structure","needs","to","be","the","return","structure","of","the","`","decode_before_sum","`","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",".","num_summands",":","The","number","of","summands","to","be","passed","to","individual","encoding","stages",".","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",":","A","single","decoded","`","Tensor","`","."]
code: def decode_after_sum(
      self,
      encoded_tensors,
      decode_params,
      num_summands,
      shape,
      name=None,
  ):
      """Decodes the part of encoded representation commuting with sum.
  
      This method is complementary to the `decode_before_sum` method in the sense
      that `decode_after_sum(decode_before_sum(encoded_tensors), ...)` is always
      equivalent to the full decoding of `encoded_tensors`.
  
      Args:
        encoded_tensors: A dictionary representing the encoded value. The
          structure needs to be the return structure of the `decode_before_sum`
          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.
        num_summands: The number of summands to be passed to individual encoding
          stages.
        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:
        A single decoded `Tensor`.
      """
      values = (
          tf.nest.flatten(shape)
          + tf.nest.flatten(decode_params)
          + tf.nest.flatten(encoded_tensors)
          + [num_summands]
      )
      num_summands = tf.convert_to_tensor(num_summands)
      with tf.compat.v1.name_scope(
          name, "encoder_decode_after_sum", values
      ):
          return self._decode_after_sum_impl(
              encoded_tensors, decode_params, num_summands, shape
          )
  
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 17 for calling the Encoder obj's underlying member method code with example usage: obj.decode_after_sum(encoded_tensors, decode_params, num_summands, shape, name) and returns: self