code: def testShapeInferenceReduceBackFrontX(self):
      model = model_helper.ModelHelper(name="test_model")
      model.net.ReduceBackSum(["x"], ["x_back_sum"])
      model.net.ReduceBackMean(["x"], ["x_back_mean"])
      model.net.ReduceBackMax(["x"], ["x_back_max"])
      model.net.ReduceFrontSum(["x"], ["x_front_sum"])
      model.net.ReduceFrontMean(["x"], ["x_front_mean"])
      model.net.ReduceFrontMax(["x"], ["x_front_max"])
  
      workspace.FeedBlob(
          "x", np.random.rand(10, 12, 18).astype(np.float32)
      )
      self.InferTensorRunAndCompare(model)
  
imports: import numpy
  import unittest
  from caffe2.proto import caffe2_pb2
  from caffe2.python import core, workspace, test_util, model_helper, brew, build
label_desc: Use image node_id 6 for calling the TestShapeInference obj's underlying member method code with example usage: obj.testShapeInferenceReduceBackFrontX() without return types