code: def _bottleneck_residual(self, x, in_filter, out_filter, stride,
                             activate_before_residual=False):
      
      if activate_before_residual:
        with tf.variable_scope('common_bn_relu'):
          x = self._layer_norm('init_bn', x)
          x = self._relu(x, self.hps.relu_leakiness)
          orig_x = x
      else:
        with tf.variable_scope('residual_bn_relu'):
          orig_x = x
          x = self._layer_norm('init_bn', x)
          x = self._relu(x, self.hps.relu_leakiness)
  
      with tf.variable_scope('sub1'):
        x = self._conv('conv1', x, 1, in_filter, out_filter / 4, stride)
  
      with tf.variable_scope('sub2'):
        x = self._layer_norm('bn2', x)
        x = self._relu(x, self.hps.relu_leakiness)
        x = self._conv('conv2', x, 3, out_filter / 4,
                       out_filter / 4, [1, 1, 1, 1])
  
      with tf.variable_scope('sub3'):
        x = self._layer_norm('bn3', x)
        x = self._relu(x, self.hps.relu_leakiness)
        x = self._conv('conv3', x, 1, out_filter /
                       4, out_filter, [1, 1, 1, 1])
  
      with tf.variable_scope('sub_add'):
        if in_filter != out_filter:
          orig_x = self._conv('project', orig_x, 1,
                              in_filter, out_filter, stride)
        x += orig_x
  
      return x
docs: Bottleneck residual unit with 3 sub layers.