class_docstr: A class of MBConv: Mobile Inverted Residual Bottleneck.
  
  Attributes:
    endpoints: dict. A list of internal tensors.
class_docstr_tok: ["A","class","of","MBConv",":","Mobile","Inverted","Residual","Bottleneck",".","Attributes",":","endpoints",":","dict",".","A","list","of","internal","tensors","."]
docstr: Builds block according to the arguments.
docstr_tok: ["Builds","block","according","to","the","arguments","."]
code: def _build(self):
      """Builds block according to the arguments."""
      if self._block_args.super_pixel == 1:
          self._superpixel = tf.layers.Conv2D(
              self._block_args.input_filters,
              kernel_size=[2, 2],
              strides=[2, 2],
              kernel_initializer=conv_kernel_initializer,
              padding="same",
              data_format=self._data_format,
              use_bias=False,
          )
          self._bnsp = self._batch_norm(
              axis=self._channel_axis,
              momentum=self._batch_norm_momentum,
              epsilon=self._batch_norm_epsilon,
          )
  
      if self._block_args.condconv:
          # Add the example-dependent routing function
          self._avg_pooling = tf.keras.layers.GlobalAveragePooling2D(
              data_format=self._data_format
          )
          self._routing_fn = tf.layers.Dense(
              self._condconv_num_experts, activation=tf.nn.sigmoid
          )
  
      filters = (
          self._block_args.input_filters * self._block_args.expand_ratio
      )
      kernel_size = self._block_args.kernel_size
  
      # Fused expansion phase. Called if using fused convolutions.
      self._fused_conv = self.conv_cls(
          filters=filters,
          kernel_size=[kernel_size, kernel_size],
          strides=self._block_args.strides,
          kernel_initializer=conv_kernel_initializer,
          padding="same",
          data_format=self._data_format,
          use_bias=False,
      )
  
      # Expansion phase. Called if not using fused convolutions and expansion
      # phase is necessary.
      self._expand_conv = self.conv_cls(
          filters=filters,
          kernel_size=[1, 1],
          strides=[1, 1],
          kernel_initializer=conv_kernel_initializer,
          padding="same",
          data_format=self._data_format,
          use_bias=False,
      )
      self._bn0 = self._batch_norm(
          axis=self._channel_axis,
          momentum=self._batch_norm_momentum,
          epsilon=self._batch_norm_epsilon,
      )
  
      # Depth-wise convolution phase. Called if not using fused convolutions.
      self._depthwise_conv = self.depthwise_conv_cls(
          kernel_size=[kernel_size, kernel_size],
          strides=self._block_args.strides,
          depthwise_initializer=conv_kernel_initializer,
          padding="same",
          data_format=self._data_format,
          use_bias=False,
      )
  
      self._bn1 = self._batch_norm(
          axis=self._channel_axis,
          momentum=self._batch_norm_momentum,
          epsilon=self._batch_norm_epsilon,
      )
  
      if self._has_se:
          num_reduced_filters = max(
              1,
              int(
                  self._block_args.input_filters
                  * self._block_args.se_ratio
              ),
          )
          # Squeeze and Excitation layer.
          self._se_reduce = tf.layers.Conv2D(
              num_reduced_filters,
              kernel_size=[1, 1],
              strides=[1, 1],
              kernel_initializer=conv_kernel_initializer,
              padding="same",
              data_format=self._data_format,
              use_bias=True,
          )
          self._se_expand = tf.layers.Conv2D(
              filters,
              kernel_size=[1, 1],
              strides=[1, 1],
              kernel_initializer=conv_kernel_initializer,
              padding="same",
              data_format=self._data_format,
              use_bias=True,
          )
  
      # Output phase.
      filters = self._block_args.output_filters
      self._project_conv = self.conv_cls(
          filters=filters,
          kernel_size=[1, 1],
          strides=[1, 1],
          kernel_initializer=conv_kernel_initializer,
          padding="same",
          data_format=self._data_format,
          use_bias=False,
      )
      self._bn2 = self._batch_norm(
          axis=self._channel_axis,
          momentum=self._batch_norm_momentum,
          epsilon=self._batch_norm_epsilon,
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import collections
  import functools
  import math
  from absl import logging
  import numpy
  import six
  from six.moves import xrange
  import tensorflow.compat.v1
  import utils
label_desc: Use image node_id 3 for calling the MBConvBlock obj's underlying member method code with example usage: obj._build() without return types