code: def test_concat(self):
      I0 = np.random.randn(20, 4).astype(np.float32)
      I1 = np.random.randn(20, 4).astype(np.float32)
      for i in range(2):
          predict_net = caffe2_pb2.NetDef()
          predict_net.name = "test-concat-net"
          predict_net.external_input[:] = ["I0", "I1"]
          predict_net.external_output[:] = ["Y", "output_dim"]
          predict_net.op.extend(
              [
                  core.CreateOperator(
                      "Concat",
                      inputs=["I0", "I1"],
                      outputs=["Y", "output_dim"],
                      axis=1,
                      add_axis=(1 if i == 0 else 0),
                  ),
              ]
          )
          ws, c2_outputs = c2_native_run_net(
              init_net=None, predict_net=predict_net, inputs=[I0, I1]
          )
          onnx_model = c2_onnx.caffe2_net_to_onnx_model(
              predict_net=predict_net,
              value_info={
                  "I0": (
                      onnx.mapping.NP_TYPE_TO_TENSOR_TYPE[I0.dtype],
                      I0.shape,
                  ),
                  "I1": (
                      onnx.mapping.NP_TYPE_TO_TENSOR_TYPE[I1.dtype],
                      I1.shape,
                  ),
              },
          )
          onnx_outputs = c2.run_model(onnx_model, inputs=[I0, I1])
          self.assertSameOutputs(c2_outputs, onnx_outputs)
  
imports: import os
  import unittest
  from caffe2.python import core
  from caffe2.proto import caffe2_pb2
  import onnx
  from onnx.helper import make_node, make_graph, make_tensor, make_tensor_value_info, make_model
  from caffe2.python.onnx.helper import c2_native_run_net, c2_native_run_op
  from onnx import mapping
  import caffe2.python.onnx.frontend
  import caffe2.python.onnx.backend
  import numpy
  from caffe2.python.models.download import ModelDownloader
  from caffe2.python.onnx.tests.test_utils import TestCase
  import caffe2.python._import_c_extension
label_desc: Use image node_id 16 for calling the TestCaffe2Basic obj's underlying member method code with example usage: obj.test_concat() without return types