code: def test_symbol_compose():
      data = mx.symbol.Variable("data")
      net1 = mx.symbol.FullyConnected(
          data=data, name="fc1", num_hidden=10
      )
      net1 = mx.symbol.FullyConnected(
          data=net1, name="fc2", num_hidden=100
      )
      net1.list_arguments() == [
          "data",
          "fc1_weight",
          "fc1_bias",
          "fc2_weight",
          "fc2_bias",
      ]
  
      net2 = mx.symbol.FullyConnected(name="fc3", num_hidden=10)
      net2 = mx.symbol.Activation(data=net2, act_type="relu")
      net2 = mx.symbol.FullyConnected(
          data=net2, name="fc4", num_hidden=20
      )
  
      composed = net2(fc3_data=net1, name="composed")
      multi_out = mx.symbol.Group([composed, net1])
      assert len(multi_out.list_outputs()) == 2
      assert len(multi_out) == 2
  
imports: import copy
  import sys
  import os
  import logging
  import re
  import json
  import mxnet
  import numpy
  from common import assertRaises, models, TemporaryDirectory
  from mxnet.base import NotImplementedForSymbol
  from mxnet.test_utils import discard_stderr, rand_shape_nd, use_np, environment
  from mxnet.util import np_shape
  import pickle
label_desc: Use image node_id 3 for calling a global function with example usage: test_symbol_compose() without return types