class_docstr: ResNet v2 block with optional bottleneck.
code: def __call__(self, x: JaxArray, training: bool) -> JaxArray:
      if self.stride > 1:
          shortcut = objax.functional.max_pool_2d(
              x, size=1, strides=self.stride
          )
      else:
          shortcut = x
  
      for i, (bn_i, conv_i) in enumerate(self.layers):
          x = bn_i(x, training)
          x = self.activation_fn(x)
          if i == 0 and self.use_projection:
              shortcut = self.proj_conv(x)
          x = conv_i(x)
  
      return x + shortcut
  
imports: import functools
  from typing import Callable, Sequence, Union, Optional
  from jax import numpy
  import objax
  from objax.constants import ConvPadding
  from objax.nn import Conv2D
  from objax.typing import JaxArray, ConvPaddingInt
label_desc: Use image node_id 2 for calling the ResNetV2Block obj's underlying member method code with example usage: obj.__call__(x, training) and returns: unknown