class_docstr: Encoding stage performing uniform quantization per channel in conv layers.
  
  This encoding stage will first reshape the input `x` to `(-1, dim)`, where
  `dim` is the size of the last dimension of `x`. Then each of the `dim`
  vectors will be quantized independently.
  
  This encoding stage does not require the shape of the input `x` to the
  `encode` method to be statically known.
  
  In particular, given a floating point input `x` to the `encode` method, the
  output will have the same `dtype` as `x`, with values being "floating point
  integers" in the range `[0, 2**bits-1]`.
  
  The extreme points of the quantized interval will correspond to the min and
  max values of the input `x`.
docstr: See base class.
code: def decode_needs_input_shape(self):
      """See base class."""
      return True
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import collections
  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 tf_utils
label_desc: Use image node_id 5 for calling the PerChannelUniformQuantizationEncodingStage obj's underlying member method code with example usage: obj.decode_needs_input_shape() and returns: True