class_docstr: Pooling layer for arbitrary reduce functions for 1D inputs.
  
  The same as `tf.python.layers.pooling._Pooling1D` except that the pooling
  dimension is entirely reduced (i.e., `pool_size=length`).
  
  This class is for code reuse, rather than an exposed API.
class_docstr_tok: ["Pooling","layer","for","arbitrary","reduce","functions","for","1D","inputs",".","The","same","as","`","tf.python.layers.pooling._Pooling1D","`","except","that","the","pooling","dimension","is","entirely","reduced","(","i.e.",",","`","pool_size=length","`",")",".","This","class","is","for","code","reuse",",","rather","than","an","exposed","API","."]
code: def compute_output_shape(self, input_shape):
      input_shape = tf.TensorShape(input_shape).as_list()
      if self._data_format == "channels_last":
          return tf.TensorShape([input_shape[0], input_shape[2]])
      else:
          return tf.TensorShape([input_shape[0], input_shape[1]])
  
imports: import copy
  import tensorflow
  import tensorflow.contrib.rnn
  from texar.tf.hyperparams import HParams
  from texar.tf.utils import utils
  from texar.tf.utils.dtypes import is_str
  from texar.tf.utils.variables import add_variable
  from texar.tf.utils.mode import is_train_mode, switch_dropout
label_desc: Use image node_id 2 for calling the _ReducePooling1D obj's underlying member method code with example usage: obj.compute_output_shape(input_shape) and returns: tf, tf