code: def _grad_op(self, out_grad):
      return tf.squeeze(
          nn_grad.gen_nn_ops.avg_pool_grad(
              orig_input_shape=tf.shape(
                  tf.expand_dims(self._get_input_activation_vars(), 1)
              ),
              grad=tf.expand_dims(out_grad, 1),
              ksize=(1, 1, self.pool_length, 1),
              strides=(1, 1, self.stride, 1),
              padding=self.padding,
          ),
          1,
      )
  
imports: from __future__ import division
  from __future__ import print_function
  from __future__ import absolute_import
  from .core import *
  from .helper_functions import conv1d_transpose_via_conv2d
  from .convolutional import PaddingMode, DataFormat
  from .None import helper_functions
  import tensorflow
  from tensorflow.python.ops import nn_grad
label_desc: Use image node_id 4 for calling the AvgPool1D obj's underlying member method code with example usage: obj._grad_op(out_grad) and returns: tf