class_docstr: ConvNet model.
class_docstr_tok: ["ConvNet","model","."]
docstr: Convolution.
docstr_tok: ["Convolution","."]
code: def _conv(self, x, kernel_size, filters, strides, is_atrous=False):
      """Convolution."""
  
      padding = "SAME"
      if not is_atrous and strides > 1:
          pad = kernel_size - 1
          pad_beg = pad // 2
          pad_end = pad - pad_beg
          if self._data_format == "channels_first":
              x = tf.pad(
                  x,
                  [
                      [0, 0],
                      [0, 0],
                      [pad_beg, pad_end],
                      [pad_beg, pad_end],
                  ],
              )
          else:
              x = tf.pad(
                  x,
                  [
                      [0, 0],
                      [pad_beg, pad_end],
                      [pad_beg, pad_end],
                      [0, 0],
                  ],
              )
          padding = "VALID"
      return tf.layers.conv2d(
          inputs=x,
          kernel_size=kernel_size,
          filters=filters,
          strides=strides,
          padding=padding,
          use_bias=False,
          data_format=self._data_format,
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import tensorflow
label_desc: Use image node_id 5 for calling the ConvNet obj's underlying member method code with example usage: obj._conv(x, kernel_size, filters, strides, is_atrous) and returns: tf