docstr: Parallel inference (concat reduction) with batch norm in eval mode.
docstr_tok: ["Parallel","inference","(","concat","reduction",")","with","batch","norm","in","eval","mode","."]
code: def test_parallel_bneval_concat(self):
      """Parallel inference (concat reduction) with batch norm in eval mode."""
      f = objax.nn.Sequential(
          [
              objax.nn.Conv2D(3, 4, k=1),
              objax.nn.BatchNorm2D(4),
              objax.nn.Conv2D(4, 2, k=1),
          ]
      )
      x = objax.random.normal((96, 3, 16, 16))
      y = f(x, training=False)
      fp = objax.Parallel(lambda x: f(x, training=False), f.vars())
      with fp.vars().replicate():
          z = fp(x)
      self.assertTrue(jn.array_equal(z, y))
      self.assertEqual(((f[1].running_var.value - 1) ** 2).sum(), 0)
      self.assertEqual((f[1].running_mean.value ** 2).sum(), 0)
  
imports: import os
  import unittest
  import jax.numpy
  import numpy
  import objax
label_desc: Use image node_id 5 for calling the TestParallel obj's underlying member method code with example usage: obj.test_parallel_bneval_concat() without return types