code: def residual_block(
      scope: Scope,
      x: Array,
      conv,
      norm,
      act,
      features: int,
      strides=(1, 1),
  ):
      residual = x
      x = scope.child(conv, "conv_1")(x, features, (1, 1))
      x = scope.child(norm, "bn_1")(x)
      x = act(x)
      x = scope.child(conv, "conv_2")(
          x, 4 * features, (3, 3), strides=strides
      )
      x = scope.child(norm, "bn_2")(x)
      x = act(x)
      x = scope.child(conv, "conv_3")(x, 4 * features, (1, 1))
      x = scope.child(norm, "bn_3")(x)
  
      if x.shape != residual.shape:
          residual = scope.child(conv, "proj_conv")(
              residual, 4 * features, (1, 1), strides=strides
          )
          residual = scope.child(norm, "proj_bn")(residual)
  
      return act(residual + x)
  
file_path: flax/tests/core/design/core_resnet_test.py
imports: from functools import partial
  import jax
  from absl.testing import absltest
  from jax import numpy
  from jax import random
  from flax.core import Array, Scope, init, nn, unfreeze
label_desc: Use image node_id 1 for calling a global function with example usage: residual_block(scope, x, conv, norm, act, features, strides) and returns: act