'Infers the shape partially.
This functions works the same way as `infer_shape`,
except that this function can return partial results.
In the following example, information about fc2 is not available. So, `infer_shape`
will return a tuple of `None` values but `infer_shape_partial` will return partial values.
Example usage:
>>> data = mx.sym.Variable(\'data\')
>>> prev = mx.sym.Variable(\'prev\')
>>> fc1  = mx.sym.FullyConnected(data=data, name=\'fc1\', num_hidden=128)
>>> fc2  = mx.sym.FullyConnected(data=prev, name=\'fc2\', num_hidden=128)
>>> out  = mx.sym.Activation(data=mx.sym.elemwise_add(fc1, fc2), act_type=\'relu\')
>>> out.list_arguments()
[\'data\', \'fc1_weight\', \'fc1_bias\', \'prev\', \'fc2_weight\', \'fc2_bias\']
>>> out.infer_shape(data=(10,64))
(None, None, None)
>>> out.infer_shape_partial(data=(10,64))
([(10L, 64L), (128L, 64L), (128L,), (), (), ()], [(10L, 128L)], [])
>>> # infers shape if you give information about fc2
>>> out.infer_shape(data=(10,64), prev=(10,128))
([(10L, 64L), (128L, 64L), (128L,), (10L, 128L), (128L, 128L), (128L,)], [(10L, 128L)], [])
Parameters
*args :
Shape of arguments in a positional way.
Unknown shape can be marked as None
**kwargs :
Keyword arguments of known shapes.
Returns
arg_shapes : list of tuple or None
List of argument shapes.
The order is same as the order of list_arguments().
out_shapes : list of tuple or None
List of output shapes.
The order is same as the order of list_outputs().
aux_shapes : list of tuple or None
List of auxiliary state shapes.
The order is same as the order of list_auxiliary_states().'

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

    return self._infer_shape_impl(True, *args, **kwargs)
