'Composes symbol using inputs.
x._compose(y, z) <=> x(y,z)
This function mutates the current symbol.
Example usage:
>>> data = mx.symbol.Variable(\'data\')
>>> net1 = mx.symbol.FullyConnected(data=data, name=\'fc1\', num_hidden=10)
>>> net2 = mx.symbol.FullyConnected(name=\'fc3\', num_hidden=10)
>>> net2
<Symbol fc3>
>>> net2._compose(fc3_data=net1, name=\'composed\')
>>> net2
<Symbol composed>
Parameters
args:
Positional arguments.
kwargs:
Keyword arguments.
Returns
The resulting symbol.'

def _compose(self, *args, **kwargs):

    name = kwargs.pop('name', None)
    if name:
        name = c_str(name)
    if ((len(args) != 0) and (len(kwargs) != 0)):
        raise TypeError('compose    only    accept    input    Symbols                                                                    either    as    positional    or    keyword    arguments,    not    both')
    for arg in args:
        if (not isinstance(arg, Symbol)):
            raise TypeError('Compose    expect    `Symbol`    as    arguments')
    for val in kwargs.values():
        if (not isinstance(val, Symbol)):
            raise TypeError('Compose    expect    `Symbol`    as    arguments')
    num_args = (len(args) + len(kwargs))
    if (len(kwargs) != 0):
        keys = c_array(ctypes.c_char_p, [c_str(key) for key in kwargs])
        args = c_array(SymbolHandle, [s.handle for s in kwargs.values()])
    else:
        keys = None
        args = c_array(SymbolHandle, [s.handle for s in args])
    check_call(_LIB.MXSymbolCompose(self.handle, name, num_args, keys, args))
