

``mx.symbol.infer.shape``
==================================================

Description
----------------------

Inference the shape of arguments, outputs, and auxiliary states.

Usage
----------

.. code:: r

	mx.symbol.infer.shape(symbol, ...)

Arguments
------------------

+----------------------------------------+------------------------------------------------------------+
| Argument                               | Description                                                |
+========================================+============================================================+
| ``symbol``                             | The ``mx.symbol`` object                                   |
+----------------------------------------+------------------------------------------------------------+



