<!DOCTYPE html >
<html>
        <head>
          <title>Symbol - MXNet - org.apache.mxnet.Symbol</title>
          <meta name="description" content="Symbol - MXNet - org.apache.mxnet.Symbol" />
          <meta name="keywords" content="Symbol MXNet org.apache.mxnet.Symbol" />
          <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
          
      <link href="../../../lib/template.css" media="screen" type="text/css" rel="stylesheet" />
      <link href="../../../lib/diagrams.css" media="screen" type="text/css" rel="stylesheet" id="diagrams-css" />
      <script type="text/javascript" src="../../../lib/jquery.js" id="jquery-js"></script>
      <script type="text/javascript" src="../../../lib/jquery-ui.js"></script>
      <script type="text/javascript" src="../../../lib/template.js"></script>
      <script type="text/javascript" src="../../../lib/tools.tooltip.js"></script>
      
      <script type="text/javascript">
         if(top === self) {
            var url = '../../../index.html';
            var hash = 'org.apache.mxnet.Symbol$';
            var anchor = window.location.hash;
            var anchor_opt = '';
            if (anchor.length >= 1)
              anchor_opt = '@' + anchor.substring(1);
            window.location.href = url + '#' + hash + anchor_opt;
         }
   	  </script>
    
        </head>
        <body class="value">
      <div id="definition">
        <a href="Symbol.html" title="See companion class"><img src="../../../lib/object_to_class_big.png" /></a>
        <p id="owner"><a href="../../package.html" class="extype" name="org">org</a>.<a href="../package.html" class="extype" name="org.apache">apache</a>.<a href="package.html" class="extype" name="org.apache.mxnet">mxnet</a></p>
        <h1><a href="Symbol.html" title="See companion class">Symbol</a></h1><h3><span class="morelinks"><div>
            Related Docs:
            <a href="Symbol.html" title="See companion class">class Symbol</a>
            | <a href="package.html" class="extype" name="org.apache.mxnet">package mxnet</a>
          </div></span></h3><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      </div>

      <h4 id="signature" class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">object</span>
      </span>
      <span class="symbol">
        <span class="name">Symbol</span><span class="result"> extends <a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></span>
      </span>
      </h4>
      
          <div id="comment" class="fullcommenttop"><div class="comment cmt"><p>Symbol Object extends from SymbolBase for abstract function signatures
Main code will be generated during compile time through Macros
</p></div><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@AddSymbolFunctions</span><span class="args">(<span>
      
      <span class="symbol">false</span>
    </span>)</span>
              
        </dd></dl><div class="toggleContainer block">
          <span class="toggle">Linear Supertypes</span>
          <div class="superTypes hiddenContent"><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a>, <span class="extype" name="scala.AnyRef">AnyRef</span>, <span class="extype" name="scala.Any">Any</span></div>
        </div></div>
        

      <div id="mbrsel">
        <div id="textfilter"><span class="pre"></span><span class="input"><input id="mbrsel-input" type="text" accesskey="/" /></span><span class="post"></span></div>
        <div id="order">
              <span class="filtertype">Ordering</span>
              <ol>
                
                <li class="alpha in"><span>Alphabetic</span></li>
                <li class="inherit out"><span>By inheritance</span></li>
              </ol>
            </div>
        <div id="ancestors">
                <span class="filtertype">Inherited<br />
                </span>
                <ol id="linearization">
                  <li class="in" name="org.apache.mxnet.Symbol"><span>Symbol</span></li><li class="in" name="org.apache.mxnet.SymbolBase"><span>SymbolBase</span></li><li class="in" name="scala.AnyRef"><span>AnyRef</span></li><li class="in" name="scala.Any"><span>Any</span></li>
                </ol>
              </div><div id="ancestors">
            <span class="filtertype"></span>
            <ol>
              <li class="hideall out"><span>Hide All</span></li>
              <li class="showall in"><span>Show all</span></li>
            </ol>
            <a href="http://docs.scala-lang.org/overviews/scaladoc/usage.html#members" target="_blank">Learn more about member selection</a>
          </div>
        <div id="visbl">
            <span class="filtertype">Visibility</span>
            <ol><li class="public in"><span>Public</span></li><li class="all out"><span>All</span></li></ol>
          </div>
      </div>

      <div id="template">
        <div id="allMembers">
        

        

        <div id="values" class="values members">
              <h3>Abstract Value Members</h3>
              <ol><li name="org.apache.mxnet.SymbolBase#Activation" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Activation(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Activation(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Activation</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Activation(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Applies an activation function element-wise to the input.

The following activation functions are supported:

- `relu`: Rectified Linear <span class="std">Unit</span>, :math:`y = max(x, <span class="num">0</span>)`
- `sigmoid`: :math:`y = \frac{<span class="num">1</span>}{<span class="num">1</span> + exp(-x)}`
- `tanh`: Hyperbolic tangent, :math:`y = \frac{exp(x) - exp(-x)}{exp(x) + exp(-x)}`
- `softrelu`: Soft ReLU, or SoftPlus, :math:`y = log(<span class="num">1</span> + exp(x))`
- `softsign`: :math:`y = \frac{x}{<span class="num">1</span> + abs(x)}`



Defined in src/operator/nn/activation.cc:L165</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#BatchNorm" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="BatchNorm(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="BatchNorm(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">BatchNorm</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@BatchNorm(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Batch normalization.

Normalizes a data batch by mean and variance, and applies a scale ``gamma`` as
well as offset ``beta``.

Assume the input has more than one dimension and we normalize along axis <span class="num">1.</span>
We first compute the mean and variance along <span class="kw">this</span> axis:

.. math::

  data\_mean[i] = mean(data[:,i,:,...]) \\
  data\_var[i] = <span class="kw">var</span>(data[:,i,:,...])

Then compute the normalized output, which has the same shape as input, as following:

.. math::

  out[:,i,:,...] = \frac{data[:,i,:,...] - data\_mean[i]}{\sqrt{data\_var[i]+\epsilon}} * gamma[i] + beta[i]

Both *mean* and *<span class="kw">var</span>* returns a scalar by treating the input as a vector.

Assume the input has size *k* on axis <span class="num">1</span>, then both ``gamma`` and ``beta``
have shape *(k,)*. If ``output_mean_var`` is set to be <span class="kw">true</span>, then outputs both ``data_mean`` and
the inverse of ``data_var``, which are needed <span class="kw">for</span> the backward pass. Note that gradient of these
two outputs are blocked.

Besides the inputs and the outputs, <span class="kw">this</span> operator accepts two auxiliary
states, ``moving_mean`` and ``moving_var``, which are *k*-length
vectors. They are global statistics <span class="kw">for</span> the whole dataset, which are updated
by::

  moving_mean = moving_mean * momentum + data_mean * (<span class="num">1</span> - momentum)
  moving_var = moving_var * momentum + data_var * (<span class="num">1</span> - momentum)

If ``use_global_stats`` is set to be <span class="kw">true</span>, then ``moving_mean`` and
``moving_var`` are used instead of ``data_mean`` and ``data_var`` to compute
the output. It is often used during inference.

The parameter ``axis`` specifies which axis of the input shape denotes
the 'channel' (separately normalized groups).  The default is <span class="num">1.</span>  Specifying -<span class="num">1</span> sets the channel
axis to be the last item in the input shape.

Both ``gamma`` and ``beta`` are learnable parameters. But <span class="kw">if</span> ``fix_gamma`` is <span class="kw">true</span>,
then set ``gamma`` to <span class="num">1</span> and its gradient to <span class="num">0.</span>

.. Note::
  When ``fix_gamma`` is set to True, no sparse support is provided. If ``fix_gamma is`` set to False,
  the sparse tensors will fallback.



Defined in src/operator/nn/batch_norm.cc:L591</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#BatchNorm_v1" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="BatchNorm_v1(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="BatchNorm_v1(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">BatchNorm_v1</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@BatchNorm_v1(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Batch normalization.

This operator is DEPRECATED. Perform BatchNorm on the input.

Normalizes a data batch by mean and variance, and applies a scale ``gamma`` as
well as offset ``beta``.

Assume the input has more than one dimension and we normalize along axis <span class="num">1.</span>
We first compute the mean and variance along <span class="kw">this</span> axis:

.. math::

  data\_mean[i] = mean(data[:,i,:,...]) \\
  data\_var[i] = <span class="kw">var</span>(data[:,i,:,...])

Then compute the normalized output, which has the same shape as input, as following:

.. math::

  out[:,i,:,...] = \frac{data[:,i,:,...] - data\_mean[i]}{\sqrt{data\_var[i]+\epsilon}} * gamma[i] + beta[i]

Both *mean* and *<span class="kw">var</span>* returns a scalar by treating the input as a vector.

Assume the input has size *k* on axis <span class="num">1</span>, then both ``gamma`` and ``beta``
have shape *(k,)*. If ``output_mean_var`` is set to be <span class="kw">true</span>, then outputs both ``data_mean`` and
``data_var`` as well, which are needed <span class="kw">for</span> the backward pass.

Besides the inputs and the outputs, <span class="kw">this</span> operator accepts two auxiliary
states, ``moving_mean`` and ``moving_var``, which are *k*-length
vectors. They are global statistics <span class="kw">for</span> the whole dataset, which are updated
by::

  moving_mean = moving_mean * momentum + data_mean * (<span class="num">1</span> - momentum)
  moving_var = moving_var * momentum + data_var * (<span class="num">1</span> - momentum)

If ``use_global_stats`` is set to be <span class="kw">true</span>, then ``moving_mean`` and
``moving_var`` are used instead of ``data_mean`` and ``data_var`` to compute
the output. It is often used during inference.

Both ``gamma`` and ``beta`` are learnable parameters. But <span class="kw">if</span> ``fix_gamma`` is <span class="kw">true</span>,
then set ``gamma`` to <span class="num">1</span> and its gradient to <span class="num">0.</span>

There's no sparse support <span class="kw">for</span> <span class="kw">this</span> operator, and it will exhibit problematic behavior <span class="kw">if</span> used <span class="kw">with</span>
sparse tensors.



Defined in src/operator/batch_norm_v1.cc:L95</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#BilinearSampler" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="BilinearSampler(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="BilinearSampler(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">BilinearSampler</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@BilinearSampler(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Applies bilinear sampling to input feature map.

Bilinear Sampling is the key of  [NIPS2015] \<span class="lit">"Spatial Transformer Networks\". The usage of the operator is very similar to remap function in OpenCV,
except that the operator has the backward pass.

Given :math:`data` and :math:`grid`, then the output is computed by

.. math::
  x_{src} = grid[batch, 0, y_{dst}, x_{dst}] \\
  y_{src} = grid[batch, 1, y_{dst}, x_{dst}] \\
  output[batch, channel, y_{dst}, x_{dst}] = G(data[batch, channel, y_{src}, x_{src})

:math:`x_{dst}`, :math:`y_{dst}` enumerate all spatial locations in :math:`output`, and :math:`G()` denotes the bilinear interpolation kernel.
The out-boundary points will be padded with zeros.The shape of the output will be (data.shape[0], data.shape[1], grid.shape[2], grid.shape[3]).

The operator assumes that :math:`data` has 'NCHW' layout and :math:`grid` has been normalized to [-1, 1].

BilinearSampler often cooperates with GridGenerator which generates sampling grids for BilinearSampler.
GridGenerator supports two kinds of transformation: ``affine`` and ``warp``.
If users want to design a CustomOp to manipulate :math:`grid`, please firstly refer to the code of GridGenerator.

Example 1::

  ## Zoom out data two times
  data = array(`[ [`[ [1, 4, 3, 6],
                  [1, 8, 8, 9],
                  [0, 4, 1, 5],
                  [1, 0, 1, 3] ] ] ])

  affine_matrix = array(`[ [2, 0, 0],
                         [0, 2, 0] ])

  affine_matrix = reshape(affine_matrix, shape=(1, 6))

  grid = GridGenerator(data=affine_matrix, transform_type='affine', target_shape=(4, 4))

  out = BilinearSampler(data, grid)

  out
  `[ [`[ [ 0,   0,     0,   0],
     [ 0,   3.5,   6.5, 0],
     [ 0,   1.25,  2.5, 0],
     [ 0,   0,     0,   0] ] ]


Example 2::

  ## shift data horizontally by -1 pixel

  data = array(`[ [`[ [1, 4, 3, 6],
                  [1, 8, 8, 9],
                  [0, 4, 1, 5],
                  [1, 0, 1, 3] ] ] ])

  warp_maxtrix = array(`[ [`[ [1, 1, 1, 1],
                          [1, 1, 1, 1],
                          [1, 1, 1, 1],
                          [1, 1, 1, 1] ],
                         `[ [0, 0, 0, 0],
                          [0, 0, 0, 0],
                          [0, 0, 0, 0],
                          [0, 0, 0, 0] ] ] ])

  grid = GridGenerator(data=warp_matrix, transform_type='warp')
  out = BilinearSampler(data, grid)

  out
  `[ [`[ [ 4,  3,  6,  0],
     [ 8,  8,  9,  0],
     [ 4,  1,  5,  0],
     [ 0,  1,  3,  0] ] ]


Defined in src/operator/bilinear_sampler.cc:L256</span></pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#BlockGrad" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="BlockGrad(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="BlockGrad(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">BlockGrad</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@BlockGrad(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Stops gradient computation.

Stops the accumulated gradient of the inputs from flowing through <span class="kw">this</span> operator
in the backward direction. In other words, <span class="kw">this</span> operator prevents the contribution
of its inputs to be taken into account <span class="kw">for</span> computing gradients.

Example::

  v1 = [<span class="num">1</span>, <span class="num">2</span>]
  v2 = [<span class="num">0</span>, <span class="num">1</span>]
  a = Variable(<span class="lit">'a'</span>)
  b = Variable(<span class="lit">'b'</span>)
  b_stop_grad = stop_gradient(<span class="num">3</span> * b)
  loss = MakeLoss(b_stop_grad + a)

  executor = loss.simple_bind(ctx=cpu(), a=(<span class="num">1</span>,<span class="num">2</span>), b=(<span class="num">1</span>,<span class="num">2</span>))
  executor.forward(is_train=True, a=v1, b=v2)
  executor.outputs
  [ <span class="num">1.</span>  <span class="num">5.</span>]

  executor.backward()
  executor.grad_arrays
  [ <span class="num">0.</span>  <span class="num">0.</span>]
  [ <span class="num">1.</span>  <span class="num">1.</span>]



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L325</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#CTCLoss" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="CTCLoss(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="CTCLoss(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">CTCLoss</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@CTCLoss(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Connectionist Temporal Classification Loss.

.. note:: The existing alias ``contrib_CTCLoss`` is deprecated.

The shapes of the inputs and outputs:

- **data**: `(sequence_length, batch_size, alphabet_size)`
- **label**: `(batch_size, label_sequence_length)`
- **out**: `(batch_size)`

The `data` tensor consists of sequences of activation vectors (without applying softmax),
<span class="kw">with</span> i-th channel in the last dimension corresponding to i-th label
<span class="kw">for</span> i between <span class="num">0</span> and alphabet_size-<span class="num">1</span> (i.e always <span class="num">0</span>-indexed).
Alphabet size should include one additional value reserved <span class="kw">for</span> blank label.
When `blank_label` is ``<span class="lit">"first"</span>``, the ``<span class="num">0</span>``-th channel is be reserved <span class="kw">for</span>
activation of blank label, or otherwise <span class="kw">if</span> it is <span class="lit">"last"</span>, ``(alphabet_size-<span class="num">1</span>)``-th channel should be
reserved <span class="kw">for</span> blank label.

``label`` is an index matrix of integers. When `blank_label` is ``<span class="lit">"first"</span>``,
the value <span class="num">0</span> is then reserved <span class="kw">for</span> blank label, and should not be passed in <span class="kw">this</span> matrix. Otherwise,
when `blank_label` is ``<span class="lit">"last"</span>``, the value `(alphabet_size-<span class="num">1</span>)` is reserved <span class="kw">for</span> blank label.

If a sequence of labels is shorter than *label_sequence_length*, use the special
padding value at the end of the sequence to conform it to the correct
length. The padding value is `<span class="num">0</span>` when `blank_label` is ``<span class="lit">"first"</span>``, and `-<span class="num">1</span>` otherwise.

For example, suppose the vocabulary is `[a, b, c]`, and in one batch we have three sequences
<span class="lit">'ba'</span>, <span class="lit">'cbb'</span>, and <span class="lit">'abac'</span>. When `blank_label` is ``<span class="lit">"first"</span>``, we can index the labels as
`{<span class="lit">'a'</span>: <span class="num">1</span>, <span class="lit">'b'</span>: <span class="num">2</span>, <span class="lit">'c'</span>: <span class="num">3</span>}`, and we reserve the <span class="num">0</span>-th channel <span class="kw">for</span> blank label in data tensor.
The resulting `label` tensor should be padded to be::

  `[ [<span class="num">2</span>, <span class="num">1</span>, <span class="num">0</span>, <span class="num">0</span>], [<span class="num">3</span>, <span class="num">2</span>, <span class="num">2</span>, <span class="num">0</span>], [<span class="num">1</span>, <span class="num">2</span>, <span class="num">1</span>, <span class="num">3</span>] ]

When `blank_label` is ``<span class="lit">"last"</span>``, we can index the labels as
`{<span class="lit">'a'</span>: <span class="num">0</span>, <span class="lit">'b'</span>: <span class="num">1</span>, <span class="lit">'c'</span>: <span class="num">2</span>}`, and we reserve the channel index <span class="num">3</span> <span class="kw">for</span> blank label in data tensor.
The resulting `label` tensor should be padded to be::

  `[ [<span class="num">1</span>, <span class="num">0</span>, -<span class="num">1</span>, -<span class="num">1</span>], [<span class="num">2</span>, <span class="num">1</span>, <span class="num">1</span>, -<span class="num">1</span>], [<span class="num">0</span>, <span class="num">1</span>, <span class="num">0</span>, <span class="num">2</span>] ]

``out`` is a list of CTC loss values, one per example in the batch.

See *Connectionist Temporal Classification: Labelling Unsegmented
Sequence Data <span class="kw">with</span> Recurrent Neural Networks*, A. Graves *et al*. <span class="kw">for</span> more
information on the definition and the algorithm.



Defined in src/operator/nn/ctc_loss.cc:L100</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#Cast" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Cast(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Cast(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Cast</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Cast(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Casts all elements of the input to a <span class="kw">new</span> <span class="kw">type</span>.

.. note:: ``Cast`` is deprecated. Use ``cast`` instead.

Example::

   cast([<span class="num">0.9</span>, <span class="num">1.3</span>], dtype=<span class="lit">'int32'</span>) = [<span class="num">0</span>, <span class="num">1</span>]
   cast([<span class="num">1</span>e20, <span class="num">11.1</span>], dtype='float16') = [inf, <span class="num">11.09375</span>]
   cast([<span class="num">300</span>, <span class="num">11.1</span>, <span class="num">10.9</span>, -<span class="num">1</span>, -<span class="num">3</span>], dtype=<span class="lit">'uint8'</span>) = [<span class="num">44</span>, <span class="num">11</span>, <span class="num">10</span>, <span class="num">255</span>, <span class="num">253</span>]



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L664</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#Concat" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Concat(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Concat(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Concat</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Concat(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Joins input arrays along a given axis.

.. note:: `Concat` is deprecated. Use `concat` instead.

The dimensions of the input arrays should be the same except the axis along
which they will be concatenated.
The dimension of the output array along the concatenated axis will be equal
to the sum of the corresponding dimensions of the input arrays.

The storage <span class="kw">type</span> of ``concat`` output depends on storage types of inputs

- concat(csr, csr, ..., csr, dim=<span class="num">0</span>) = csr
- otherwise, ``concat`` generates output <span class="kw">with</span> default storage

Example::

   x = `[ [<span class="num">1</span>,<span class="num">1</span>],[<span class="num">2</span>,<span class="num">2</span>] ]
   y = `[ [<span class="num">3</span>,<span class="num">3</span>],[<span class="num">4</span>,<span class="num">4</span>],[<span class="num">5</span>,<span class="num">5</span>] ]
   z = `[ [<span class="num">6</span>,<span class="num">6</span>], [<span class="num">7</span>,<span class="num">7</span>],[<span class="num">8</span>,<span class="num">8</span>] ]

   concat(x,y,z,dim=<span class="num">0</span>) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>],
                          [ <span class="num">2.</span>,  <span class="num">2.</span>],
                          [ <span class="num">3.</span>,  <span class="num">3.</span>],
                          [ <span class="num">4.</span>,  <span class="num">4.</span>],
                          [ <span class="num">5.</span>,  <span class="num">5.</span>],
                          [ <span class="num">6.</span>,  <span class="num">6.</span>],
                          [ <span class="num">7.</span>,  <span class="num">7.</span>],
                          [ <span class="num">8.</span>,  <span class="num">8.</span>] ]

   Note that you cannot concat x,y,z along dimension <span class="num">1</span> since dimension
   <span class="num">0</span> is not the same <span class="kw">for</span> all the input arrays.

   concat(y,z,dim=<span class="num">1</span>) = `[ [ <span class="num">3.</span>,  <span class="num">3.</span>,  <span class="num">6.</span>,  <span class="num">6.</span>],
                         [ <span class="num">4.</span>,  <span class="num">4.</span>,  <span class="num">7.</span>,  <span class="num">7.</span>],
                         [ <span class="num">5.</span>,  <span class="num">5.</span>,  <span class="num">8.</span>,  <span class="num">8.</span>] ]



Defined in src/operator/nn/concat.cc:L385</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#Convolution" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Convolution(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Convolution(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Convolution</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Convolution(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Compute *N*-D convolution on *(N+<span class="num">2</span>)*-D input.

In the <span class="num">2</span>-D convolution, given input data <span class="kw">with</span> shape *(batch_size,
channel, height, width)*, the output is computed by

.. math::

   out[n,i,:,:] = bias[i] + \sum_{j=<span class="num">0</span>}^{channel} data[n,j,:,:] \star
   weight[i,j,:,:]

where :math:`\star` is the <span class="num">2</span>-D cross-correlation operator.

For general <span class="num">2</span>-D convolution, the shapes are

- **data**: *(batch_size, channel, height, width)*
- **weight**: *(num_filter, channel, kernel[<span class="num">0</span>], kernel[<span class="num">1</span>])*
- **bias**: *(num_filter,)*
- **out**: *(batch_size, num_filter, out_height, out_width)*.

Define::

  f(x,k,p,s,d) = floor((x+<span class="num">2</span>*p-d*(k-<span class="num">1</span>)-<span class="num">1</span>)/s)+<span class="num">1</span>

then we have::

  out_height=f(height, kernel[<span class="num">0</span>], pad[<span class="num">0</span>], stride[<span class="num">0</span>], dilate[<span class="num">0</span>])
  out_width=f(width, kernel[<span class="num">1</span>], pad[<span class="num">1</span>], stride[<span class="num">1</span>], dilate[<span class="num">1</span>])

If ``no_bias`` is set to be <span class="kw">true</span>, then the ``bias`` term is ignored.

The default data ``layout`` is *NCHW*, namely *(batch_size, channel, height,
width)*. We can choose other layouts such as *NWC*.

If ``num_group`` is larger than <span class="num">1</span>, denoted by *g*, then split the input ``data``
evenly into *g* parts along the channel axis, and also evenly split ``weight``
along the first dimension. Next compute the convolution on the *i*-th part of
the data <span class="kw">with</span> the *i*-th weight part. The output is obtained by concatenating all
the *g* results.

<span class="num">1</span>-D convolution does not have *height* dimension but only *width* in space.

- **data**: *(batch_size, channel, width)*
- **weight**: *(num_filter, channel, kernel[<span class="num">0</span>])*
- **bias**: *(num_filter,)*
- **out**: *(batch_size, num_filter, out_width)*.

<span class="num">3</span>-D convolution adds an additional *depth* dimension besides *height* and
*width*. The shapes are

- **data**: *(batch_size, channel, depth, height, width)*
- **weight**: *(num_filter, channel, kernel[<span class="num">0</span>], kernel[<span class="num">1</span>], kernel[<span class="num">2</span>])*
- **bias**: *(num_filter,)*
- **out**: *(batch_size, num_filter, out_depth, out_height, out_width)*.

Both ``weight`` and ``bias`` are learnable parameters.

There are other options to tune the performance.

- **cudnn_tune**: enable <span class="kw">this</span> option leads to higher startup time but may give
  faster speed. Options are

  - **off**: no tuning
  - **limited_workspace**:run test and pick the fastest algorithm that doesn't
    exceed workspace limit.
  - **fastest**: pick the fastest algorithm and ignore workspace limit.
  - **<span class="std">None</span>** (default): the behavior is determined by environment variable
    ``MXNET_CUDNN_AUTOTUNE_DEFAULT``. <span class="num">0</span> <span class="kw">for</span> off, <span class="num">1</span> <span class="kw">for</span> limited workspace
    (default), <span class="num">2</span> <span class="kw">for</span> fastest.

- **workspace**: A large number leads to more (GPU) memory usage but may improve
  the performance.



Defined in src/operator/nn/convolution.cc:L469</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#Convolution_v1" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Convolution_v1(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Convolution_v1(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Convolution_v1</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Convolution_v1(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>This operator is DEPRECATED. Apply convolution to input then add a bias.</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#Correlation" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Correlation(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Correlation(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Correlation</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Correlation(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Applies correlation to inputs.

The correlation layer performs multiplicative patch comparisons between two feature maps.

Given two multi-channel feature maps :math:`f_{<span class="num">1</span>}, f_{<span class="num">2</span>}`, <span class="kw">with</span> :math:`w`, :math:`h`, and :math:`c` being their width, height, and number of channels,
the correlation layer lets the network compare each patch from :math:`f_{<span class="num">1</span>}` <span class="kw">with</span> each patch from :math:`f_{<span class="num">2</span>}`.

For now we consider only a single comparison of two patches. The 'correlation' of two patches centered at :math:`x_{<span class="num">1</span>}` in the first map and
:math:`x_{<span class="num">2</span>}` in the second map is then defined as:

.. math::

   c(x_{<span class="num">1</span>}, x_{<span class="num">2</span>}) = \sum_{o \in [-k,k] \times [-k,k]} &lt;f_{<span class="num">1</span>}(x_{<span class="num">1</span>} + o), f_{<span class="num">2</span>}(x_{<span class="num">2</span>} + o)&gt;

<span class="kw">for</span> a square patch of size :math:`K:=<span class="num">2</span>k+<span class="num">1</span>`.

Note that the equation above is identical to one step of a convolution in neural networks, but instead of convolving data <span class="kw">with</span> a filter, it convolves data <span class="kw">with</span> other
data. For <span class="kw">this</span> reason, it has no training weights.

Computing :math:`c(x_{<span class="num">1</span>}, x_{<span class="num">2</span>})` involves :math:`c * K^{<span class="num">2</span>}` multiplications. Comparing all patch combinations involves :math:`w^{<span class="num">2</span>}*h^{<span class="num">2</span>}` such computations.

Given a maximum displacement :math:`d`, <span class="kw">for</span> each location :math:`x_{<span class="num">1</span>}` it computes correlations :math:`c(x_{<span class="num">1</span>}, x_{<span class="num">2</span>})` only in a neighborhood of size :math:`D:=<span class="num">2</span>d+<span class="num">1</span>`,
by limiting the range of :math:`x_{<span class="num">2</span>}`. We use strides :math:`s_{<span class="num">1</span>}, s_{<span class="num">2</span>}`, to quantize :math:`x_{<span class="num">1</span>}` globally and to quantize :math:`x_{<span class="num">2</span>}` within the neighborhood
centered around :math:`x_{<span class="num">1</span>}`.

The <span class="kw">final</span> output is defined by the following expression:

.. math::
  out[n, q, i, j] = c(x_{i, j}, x_{q})

where :math:`i` and :math:`j` enumerate spatial locations in :math:`f_{<span class="num">1</span>}`, and :math:`q` denotes the :math:`q^{th}` neighborhood of :math:`x_{i,j}`.


Defined in src/operator/correlation.cc:L198</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#Crop" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Crop(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Crop(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Crop</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Crop(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>.. note:: `Crop` is deprecated. Use `slice` instead.

Crop the <span class="num">2</span>nd and <span class="num">3</span>rd dim of input data, <span class="kw">with</span> the corresponding size of h_w or
<span class="kw">with</span> width and height of the second input symbol, i.e., <span class="kw">with</span> one input, we need h_w to
specify the crop height and width, otherwise the second input symbol's size will be used


Defined in src/operator/crop.cc:L50</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#Custom" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Custom(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Custom(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Custom</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Custom(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Apply a custom operator implemented in a frontend language (like Python).

Custom operators should <span class="kw">override</span> required methods like `forward` and `backward`.
The custom operator must be registered before it can be used.
Please check the tutorial here: https:<span class="cmt">//mxnet.incubator.apache.org/api/faq/new_op</span>



Defined in src/operator/custom/custom.cc:L547</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#Deconvolution" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Deconvolution(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Deconvolution(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Deconvolution</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Deconvolution(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes <span class="num">1</span>D or <span class="num">2</span>D transposed convolution (aka fractionally strided convolution) of the input tensor. This operation can be seen as the gradient of Convolution operation <span class="kw">with</span> respect to its input. Convolution usually reduces the size of the input. Transposed convolution works the other way, going from a smaller input to a larger output <span class="kw">while</span> preserving the connectivity pattern.</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#Dropout" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Dropout(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Dropout(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Dropout</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Dropout(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Applies dropout operation to input array.

- During training, each element of the input is set to zero <span class="kw">with</span> probability p.
  The whole array is rescaled by :math:`<span class="num">1</span>/(<span class="num">1</span>-p)` to keep the expected
  sum of the input unchanged.

- During testing, <span class="kw">this</span> operator does not change the input <span class="kw">if</span> mode is 'training'.
  If mode is <span class="lit">'always'</span>, the same computaion as during training will be applied.

Example::

  random.seed(<span class="num">998</span>)
  input_array = array(`[ [<span class="num">3.</span>, <span class="num">0.5</span>,  -<span class="num">0.5</span>,  <span class="num">2.</span>, <span class="num">7.</span>],
                      [<span class="num">2.</span>, -<span class="num">0.4</span>,   <span class="num">7.</span>,  <span class="num">3.</span>, <span class="num">0.2</span>] ])
  a = symbol.Variable(<span class="lit">'a'</span>)
  dropout = symbol.Dropout(a, p = <span class="num">0.2</span>)
  executor = dropout.simple_bind(a = input_array.shape)

  ## If training
  executor.forward(is_train = True, a = input_array)
  executor.outputs
  `[ [ <span class="num">3.75</span>   <span class="num">0.625</span> -<span class="num">0.</span>     <span class="num">2.5</span>    <span class="num">8.75</span> ]
   [ <span class="num">2.5</span>   -<span class="num">0.5</span>    <span class="num">8.75</span>   <span class="num">3.75</span>   <span class="num">0.</span>   ] ]

  ## If testing
  executor.forward(is_train = False, a = input_array)
  executor.outputs
  `[ [ <span class="num">3.</span>     <span class="num">0.5</span>   -<span class="num">0.5</span>    <span class="num">2.</span>     <span class="num">7.</span>   ]
   [ <span class="num">2.</span>    -<span class="num">0.4</span>    <span class="num">7.</span>     <span class="num">3.</span>     <span class="num">0.2</span>  ] ]


Defined in src/operator/nn/dropout.cc:L96</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#ElementWiseSum" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="ElementWiseSum(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="ElementWiseSum(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">ElementWiseSum</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@ElementWiseSum(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Adds all input arguments element-wise.

.. math::
   add\_n(a_1, a_2, ..., a_n) = a_1 + a_2 + ... + a_n

``add_n`` is potentially more efficient than calling ``add`` by `n` times.

The storage <span class="kw">type</span> of ``add_n`` output depends on storage types of inputs

- add_n(row_sparse, row_sparse, ..) = row_sparse
- add_n(default, csr, default) = default
- add_n(any input combinations longer than <span class="num">4</span> (&gt;<span class="num">4</span>) <span class="kw">with</span> at least one default <span class="kw">type</span>) = default
- otherwise, ``add_n`` falls all inputs back to default storage and generates default storage



Defined in src/operator/tensor/elemwise_sum.cc:L156</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#Embedding" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Embedding(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Embedding(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Embedding</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Embedding(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Maps integer indices to vector representations (embeddings).

This operator maps words to real-valued vectors in a high-dimensional space,
called word embeddings. These embeddings can capture semantic and syntactic properties of the words.
For example, it has been noted that in the learned embedding spaces, similar words tend
to be close to each other and dissimilar words far apart.

For an input array of shape (d1, ..., dK),
the shape of an output array is (d1, ..., dK, output_dim).
All the input values should be integers in the range [<span class="num">0</span>, input_dim).

If the input_dim is ip0 and output_dim is op0, then shape of the embedding weight matrix must be
(ip0, op0).

When <span class="lit">"sparse_grad"</span> is False, <span class="kw">if</span> any index mentioned is too large, it is replaced by the index that
addresses the last vector in an embedding matrix.
When <span class="lit">"sparse_grad"</span> is True, an error will be raised <span class="kw">if</span> invalid indices are found.

Examples::

  input_dim = <span class="num">4</span>
  output_dim = <span class="num">5</span>

  <span class="cmt">// Each row in weight matrix y represents a word. So, y = (w0,w1,w2,w3)</span>
  y = `[ [  <span class="num">0.</span>,   <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>,   <span class="num">4.</span>],
       [  <span class="num">5.</span>,   <span class="num">6.</span>,   <span class="num">7.</span>,   <span class="num">8.</span>,   <span class="num">9.</span>],
       [ <span class="num">10.</span>,  <span class="num">11.</span>,  <span class="num">12.</span>,  <span class="num">13.</span>,  <span class="num">14.</span>],
       [ <span class="num">15.</span>,  <span class="num">16.</span>,  <span class="num">17.</span>,  <span class="num">18.</span>,  <span class="num">19.</span>] ]

  <span class="cmt">// Input array x represents n-grams(2-gram). So, x = [(w1,w3), (w0,w2)]</span>
  x = `[ [ <span class="num">1.</span>,  <span class="num">3.</span>],
       [ <span class="num">0.</span>,  <span class="num">2.</span>] ]

  <span class="cmt">// Mapped input x to its vector representation y.</span>
  Embedding(x, y, <span class="num">4</span>, <span class="num">5</span>) = `[ `[ [  <span class="num">5.</span>,   <span class="num">6.</span>,   <span class="num">7.</span>,   <span class="num">8.</span>,   <span class="num">9.</span>],
                            [ <span class="num">15.</span>,  <span class="num">16.</span>,  <span class="num">17.</span>,  <span class="num">18.</span>,  <span class="num">19.</span>] ],

                           `[ [  <span class="num">0.</span>,   <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>,   <span class="num">4.</span>],
                            [ <span class="num">10.</span>,  <span class="num">11.</span>,  <span class="num">12.</span>,  <span class="num">13.</span>,  <span class="num">14.</span>] ] ]


The storage <span class="kw">type</span> of weight can be either row_sparse or default.

.. Note::

    If <span class="lit">"sparse_grad"</span> is set to True, the storage <span class="kw">type</span> of gradient w.r.t weights will be
    <span class="lit">"row_sparse"</span>. Only a subset of optimizers support sparse gradients, including SGD, AdaGrad
    and Adam. Note that by default <span class="kw">lazy</span> updates is turned on, which may perform differently
    from standard updates. For more details, please check the Optimization API at:
    https:<span class="cmt">//mxnet.incubator.apache.org/api/python/optimization/optimization.html</span>



Defined in src/operator/tensor/indexing_op.cc:L598</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#Flatten" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Flatten(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Flatten(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Flatten</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Flatten(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Flattens the input array into a <span class="num">2</span>-D array by collapsing the higher dimensions.
.. note:: `Flatten` is deprecated. Use `flatten` instead.
For an input array <span class="kw">with</span> shape ``(d1, d2, ..., dk)``, `flatten` operation reshapes
the input array into an output array of shape ``(d1, d2*...*dk)``.
Note that the behavior of <span class="kw">this</span> function is different from numpy.ndarray.flatten,
which behaves similar to mxnet.ndarray.reshape((-<span class="num">1</span>,)).
Example::
    x = `[ [
        [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>],
        [<span class="num">4</span>,<span class="num">5</span>,<span class="num">6</span>],
        [<span class="num">7</span>,<span class="num">8</span>,<span class="num">9</span>]
    ],
    [    [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>],
        [<span class="num">4</span>,<span class="num">5</span>,<span class="num">6</span>],
        [<span class="num">7</span>,<span class="num">8</span>,<span class="num">9</span>]
    ] ],
    flatten(x) = `[ [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">5.</span>,  <span class="num">6.</span>,  <span class="num">7.</span>,  <span class="num">8.</span>,  <span class="num">9.</span>],
       [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">5.</span>,  <span class="num">6.</span>,  <span class="num">7.</span>,  <span class="num">8.</span>,  <span class="num">9.</span>] ]


Defined in src/operator/tensor/matrix_op.cc:L250</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#FullyConnected" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="FullyConnected(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="FullyConnected(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">FullyConnected</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@FullyConnected(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Applies a linear transformation: :math:`Y = XW^T + b`.

If ``flatten`` is set to be <span class="kw">true</span>, then the shapes are:

- **data**: `(batch_size, x1, x2, ..., xn)`
- **weight**: `(num_hidden, x1 * x2 * ... * xn)`
- **bias**: `(num_hidden,)`
- **out**: `(batch_size, num_hidden)`

If ``flatten`` is set to be <span class="kw">false</span>, then the shapes are:

- **data**: `(x1, x2, ..., xn, input_dim)`
- **weight**: `(num_hidden, input_dim)`
- **bias**: `(num_hidden,)`
- **out**: `(x1, x2, ..., xn, num_hidden)`

The learnable parameters include both ``weight`` and ``bias``.

If ``no_bias`` is set to be <span class="kw">true</span>, then the ``bias`` term is ignored.

.. Note::

    The sparse support <span class="kw">for</span> FullyConnected is limited to forward evaluation <span class="kw">with</span> `row_sparse`
    weight and bias, where the length of `weight.indices` and `bias.indices` must be equal
    to `num_hidden`. This could be useful <span class="kw">for</span> model inference <span class="kw">with</span> `row_sparse` weights
    trained <span class="kw">with</span> importance sampling or noise contrastive estimation.

    To compute linear transformation <span class="kw">with</span> <span class="lit">'csr'</span> sparse data, sparse.dot is recommended instead
    of sparse.FullyConnected.



Defined in src/operator/nn/fully_connected.cc:L287</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#GridGenerator" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="GridGenerator(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="GridGenerator(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">GridGenerator</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@GridGenerator(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Generates <span class="num">2</span>D sampling grid <span class="kw">for</span> bilinear sampling.</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#GroupNorm" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="GroupNorm(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="GroupNorm(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">GroupNorm</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@GroupNorm(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Group normalization.

The input channels are separated into ``num_groups`` groups, each containing ``num_channels / num_groups`` channels.
The mean and standard-deviation are calculated separately over the each group.

.. math::

  data = data.reshape((N, num_groups, C <span class="cmt">// num_groups, ...))</span>
  out = \frac{data - mean(data, axis)}{\sqrt{<span class="kw">var</span>(data, axis) + \epsilon}} * gamma + beta

Both ``gamma`` and ``beta`` are learnable parameters.



Defined in src/operator/nn/group_norm.cc:L77</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#IdentityAttachKLSparseReg" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="IdentityAttachKLSparseReg(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="IdentityAttachKLSparseReg(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">IdentityAttachKLSparseReg</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@IdentityAttachKLSparseReg(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Apply a sparse regularization to the output a sigmoid activation function.</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#InstanceNorm" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="InstanceNorm(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="InstanceNorm(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">InstanceNorm</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@InstanceNorm(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Applies instance normalization to the n-dimensional input array.

This operator takes an n-dimensional input array where (n&gt;<span class="num">2</span>) and normalizes
the input using the following formula:

.. math::

  out = \frac{x - mean[data]}{ \sqrt{Var[data]} + \epsilon} * gamma + beta

This layer is similar to batch normalization layer (`BatchNorm`)
<span class="kw">with</span> two differences: first, the normalization is
carried out per example (instance), not over a batch. Second, the
same normalization is applied both at test and train time. This
operation is also known as `contrast normalization`.

If the input data is of shape [batch, channel, spacial_dim1, spacial_dim2, ...],
`gamma` and `beta` parameters must be vectors of shape [channel].

This implementation is based on <span class="kw">this</span> paper [<span class="num">1</span>]_

.. [<span class="num">1</span>] Instance Normalization: The Missing Ingredient <span class="kw">for</span> Fast Stylization,
   D. Ulyanov, A. Vedaldi, V. Lempitsky, <span class="num">2016</span> (arXiv:<span class="num">1607.08022</span>v2).

Examples::

  <span class="cmt">// Input of shape (2,1,2)</span>
  x = `[ `[ [ <span class="num">1.1</span>,  <span class="num">2.2</span>] ],
       `[ [ <span class="num">3.3</span>,  <span class="num">4.4</span>] ] ]

  <span class="cmt">// gamma parameter of length 1</span>
  gamma = [<span class="num">1.5</span>]

  <span class="cmt">// beta parameter of length 1</span>
  beta = [<span class="num">0.5</span>]

  <span class="cmt">// Instance normalization is calculated with the above formula</span>
  InstanceNorm(x,gamma,beta) = `[ `[ [-<span class="num">0.997527</span>  ,  <span class="num">1.99752665</span>] ],
                                `[ [-<span class="num">0.99752653</span>,  <span class="num">1.99752724</span>] ] ]



Defined in src/operator/instance_norm.cc:L95</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#L2Normalization" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="L2Normalization(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="L2Normalization(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">L2Normalization</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@L2Normalization(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Normalize the input array using the L2 norm.

For <span class="num">1</span>-D NDArray, it computes::

  out = data / sqrt(sum(data ** <span class="num">2</span>) + eps)

For N-D NDArray, <span class="kw">if</span> the input array has shape (N, N, ..., N),

<span class="kw">with</span> ``mode`` = ``instance``, it normalizes each instance in the multidimensional
array by its L2 norm.::

  <span class="kw">for</span> i in <span class="num">0.</span>..N
    out[i,:,:,...,:] = data[i,:,:,...,:] / sqrt(sum(data[i,:,:,...,:] ** <span class="num">2</span>) + eps)

<span class="kw">with</span> ``mode`` = ``channel``, it normalizes each channel in the array by its L2 norm.::

  <span class="kw">for</span> i in <span class="num">0.</span>..N
    out[:,i,:,...,:] = data[:,i,:,...,:] / sqrt(sum(data[:,i,:,...,:] ** <span class="num">2</span>) + eps)

<span class="kw">with</span> ``mode`` = ``spatial``, it normalizes the cross channel norm <span class="kw">for</span> each position
in the array by its L2 norm.::

  <span class="kw">for</span> dim in <span class="num">2.</span>..N
    <span class="kw">for</span> i in <span class="num">0.</span>..N
      out[.....,i,...] = take(out, indices=i, axis=dim) / sqrt(sum(take(out, indices=i, axis=dim) ** <span class="num">2</span>) + eps)
          -dim-

Example::

  x = `[ `[ [<span class="num">1</span>,<span class="num">2</span>],
        [<span class="num">3</span>,<span class="num">4</span>] ],
       `[ [<span class="num">2</span>,<span class="num">2</span>],
        [<span class="num">5</span>,<span class="num">6</span>] ] ]

  L2Normalization(x, mode='instance')
  =`[ `[ [ <span class="num">0.18257418</span>  <span class="num">0.36514837</span>]
     [ <span class="num">0.54772252</span>  <span class="num">0.73029673</span>] ]
    `[ [ <span class="num">0.24077171</span>  <span class="num">0.24077171</span>]
     [ <span class="num">0.60192931</span>  <span class="num">0.72231513</span>] ] ]

  L2Normalization(x, mode='channel')
  =`[ `[ [ <span class="num">0.31622776</span>  <span class="num">0.44721359</span>]
     [ <span class="num">0.94868326</span>  <span class="num">0.89442718</span>] ]
    `[ [ <span class="num">0.37139067</span>  <span class="num">0.31622776</span>]
     [ <span class="num">0.92847669</span>  <span class="num">0.94868326</span>] ] ]

  L2Normalization(x, mode='spatial')
  =`[ `[ [ <span class="num">0.44721359</span>  <span class="num">0.89442718</span>]
     [ <span class="num">0.60000002</span>  <span class="num">0.80000001</span>] ]
    `[ [ <span class="num">0.70710677</span>  <span class="num">0.70710677</span>]
     [ <span class="num">0.6401844</span>   <span class="num">0.76822126</span>] ] ]



Defined in src/operator/l2_normalization.cc:L196</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#LRN" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="LRN(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="LRN(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">LRN</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@LRN(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Applies local response normalization to the input.

The local response normalization layer performs <span class="lit">"lateral inhibition"</span> by normalizing
over local input regions.

If :math:`a_{x,y}^{i}` is the activity of a neuron computed by applying kernel :math:`i` at position
:math:`(x, y)` and then applying the ReLU nonlinearity, the response-normalized
activity :math:`b_{x,y}^{i}` is given by the expression:

.. math::
   b_{x,y}^{i} = \frac{a_{x,y}^{i}}{\Bigg({k + \frac{\alpha}{n} \sum_{j=max(<span class="num">0</span>, i-\frac{n}{<span class="num">2</span>})}^{min(N-<span class="num">1</span>, i+\frac{n}{<span class="num">2</span>})} (a_{x,y}^{j})^{<span class="num">2</span>}}\Bigg)^{\beta}}

where the sum runs over :math:`n` <span class="lit">"adjacent"</span> kernel maps at the same spatial position, and :math:`N` is the total
number of kernels in the layer.



Defined in src/operator/nn/lrn.cc:L158</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#LayerNorm" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="LayerNorm(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="LayerNorm(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">LayerNorm</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@LayerNorm(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Layer normalization.

Normalizes the channels of the input tensor by mean and variance, and applies a scale ``gamma`` as
well as offset ``beta``.

Assume the input has more than one dimension and we normalize along axis <span class="num">1.</span>
We first compute the mean and variance along <span class="kw">this</span> axis and then
compute the normalized output, which has the same shape as input, as following:

.. math::

  out = \frac{data - mean(data, axis)}{\sqrt{<span class="kw">var</span>(data, axis) + \epsilon}} * gamma + beta

Both ``gamma`` and ``beta`` are learnable parameters.

Unlike BatchNorm and InstanceNorm,  the *mean* and *<span class="kw">var</span>* are computed along the channel dimension.

Assume the input has size *k* on axis <span class="num">1</span>, then both ``gamma`` and ``beta``
have shape *(k,)*. If ``output_mean_var`` is set to be <span class="kw">true</span>, then outputs both ``data_mean`` and
``data_std``. Note that no gradient will be passed through these two outputs.

The parameter ``axis`` specifies which axis of the input shape denotes
the 'channel' (separately normalized groups).  The default is -<span class="num">1</span>, which sets the channel
axis to be the last item in the input shape.



Defined in src/operator/nn/layer_norm.cc:L158</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#LeakyReLU" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="LeakyReLU(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="LeakyReLU(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">LeakyReLU</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@LeakyReLU(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Applies Leaky rectified linear unit activation element-wise to the input.

Leaky ReLUs attempt to fix the <span class="lit">"dying ReLU"</span> problem by allowing a small `slope`
when the input is negative and has a slope of one when input is positive.

The following modified ReLU Activation functions are supported:

- *elu*: Exponential Linear <span class="std">Unit</span>. `y = x &gt; <span class="num">0</span> ? x : slope * (exp(x)-<span class="num">1</span>)`
- *selu*: Scaled Exponential Linear <span class="std">Unit</span>. `y = lambda * (x &gt; <span class="num">0</span> ? x : alpha * (exp(x) - <span class="num">1</span>))` where
  *lambda = <span class="num">1.0507009873554804934193349852946</span>* and *alpha = <span class="num">1.6732632423543772848170429916717</span>*.
- *leaky*: Leaky ReLU. `y = x &gt; <span class="num">0</span> ? x : slope * x`
- *prelu*: Parametric ReLU. This is same as *leaky* except that `slope` is learnt during training.
- *rrelu*: Randomized ReLU. same as *leaky* but the `slope` is uniformly and randomly chosen from
  *[lower_bound, upper_bound)* <span class="kw">for</span> training, <span class="kw">while</span> fixed to be
  *(lower_bound+upper_bound)/<span class="num">2</span>* <span class="kw">for</span> inference.



Defined in src/operator/leaky_relu.cc:L161</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#LinearRegressionOutput" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="LinearRegressionOutput(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="LinearRegressionOutput(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">LinearRegressionOutput</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@LinearRegressionOutput(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes and optimizes <span class="kw">for</span> squared loss during backward propagation.
Just outputs ``data`` during forward propagation.

If :math:`\hat{y}_i` is the predicted value of the i-th sample, and :math:`y_i` is the corresponding target value,
then the squared loss estimated over :math:`n` samples is defined as

:math:`\text{SquaredLoss}(\textbf{Y}, \hat{\textbf{Y}} ) = \frac{<span class="num">1</span>}{n} \sum_{i=<span class="num">0</span>}^{n-<span class="num">1</span>} \lVert  \textbf{y}_i - \hat{\textbf{y}}_i  \rVert_2`

.. note::
   Use the LinearRegressionOutput as the <span class="kw">final</span> output layer of a net.

The storage <span class="kw">type</span> of ``label`` can be ``default`` or ``csr``

- LinearRegressionOutput(default, default) = default
- LinearRegressionOutput(default, csr) = default

By default, gradients of <span class="kw">this</span> loss function are scaled by factor `<span class="num">1</span>/m`, where m is the number of regression outputs of a training example.
The parameter `grad_scale` can be used to change <span class="kw">this</span> scale to `grad_scale/m`.



Defined in src/operator/regression_output.cc:L92</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#LogisticRegressionOutput" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="LogisticRegressionOutput(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="LogisticRegressionOutput(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">LogisticRegressionOutput</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@LogisticRegressionOutput(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Applies a logistic function to the input.

The logistic function, also known as the sigmoid function, is computed as
:math:`\frac{<span class="num">1</span>}{<span class="num">1</span>+exp(-\textbf{x})}`.

Commonly, the sigmoid is used to squash the real-valued output of a linear model
:math:`wTx+b` into the [<span class="num">0</span>,<span class="num">1</span>] range so that it can be interpreted as a probability.
It is suitable <span class="kw">for</span> binary classification or probability prediction tasks.

.. note::
   Use the LogisticRegressionOutput as the <span class="kw">final</span> output layer of a net.

The storage <span class="kw">type</span> of ``label`` can be ``default`` or ``csr``

- LogisticRegressionOutput(default, default) = default
- LogisticRegressionOutput(default, csr) = default

The loss function used is the Binary Cross Entropy Loss:

:math:`-{(y\log(p) + (<span class="num">1</span> - y)\log(<span class="num">1</span> - p))}`

Where `y` is the ground truth probability of positive outcome <span class="kw">for</span> a given example, and `p` the probability predicted by the model. By default, gradients of <span class="kw">this</span> loss function are scaled by factor `<span class="num">1</span>/m`, where m is the number of regression outputs of a training example.
The parameter `grad_scale` can be used to change <span class="kw">this</span> scale to `grad_scale/m`.



Defined in src/operator/regression_output.cc:L152</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#MAERegressionOutput" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="MAERegressionOutput(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="MAERegressionOutput(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">MAERegressionOutput</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@MAERegressionOutput(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes mean absolute error of the input.

MAE is a risk metric corresponding to the expected value of the absolute error.

If :math:`\hat{y}_i` is the predicted value of the i-th sample, and :math:`y_i` is the corresponding target value,
then the mean absolute error (MAE) estimated over :math:`n` samples is defined as

:math:`\text{MAE}(\textbf{Y}, \hat{\textbf{Y}} ) = \frac{<span class="num">1</span>}{n} \sum_{i=<span class="num">0</span>}^{n-<span class="num">1</span>} \lVert \textbf{y}_i - \hat{\textbf{y}}_i \rVert_1`

.. note::
   Use the MAERegressionOutput as the <span class="kw">final</span> output layer of a net.

The storage <span class="kw">type</span> of ``label`` can be ``default`` or ``csr``

- MAERegressionOutput(default, default) = default
- MAERegressionOutput(default, csr) = default

By default, gradients of <span class="kw">this</span> loss function are scaled by factor `<span class="num">1</span>/m`, where m is the number of regression outputs of a training example.
The parameter `grad_scale` can be used to change <span class="kw">this</span> scale to `grad_scale/m`.



Defined in src/operator/regression_output.cc:L120</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#MakeLoss" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="MakeLoss(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="MakeLoss(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">MakeLoss</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@MakeLoss(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Make your own loss function in network construction.

This operator accepts a customized loss function symbol as a terminal loss and
the symbol should be an operator <span class="kw">with</span> no backward dependency.
The output of <span class="kw">this</span> function is the gradient of loss <span class="kw">with</span> respect to the input data.

For example, <span class="kw">if</span> you are a making a cross entropy loss function. Assume ``out`` is the
predicted output and ``label`` is the <span class="kw">true</span> label, then the cross entropy can be defined as::

  cross_entropy = label * log(out) + (<span class="num">1</span> - label) * log(<span class="num">1</span> - out)
  loss = MakeLoss(cross_entropy)

We will need to use ``MakeLoss`` when we are creating our own loss function or we want to
combine multiple loss functions. Also we may want to stop some variables' gradients
from backpropagation. See more detail in ``BlockGrad`` or ``stop_gradient``.

In addition, we can give a scale to the loss by setting ``grad_scale``,
so that the gradient of the loss will be rescaled in the backpropagation.

.. note:: This operator should be used as a <span class="std">Symbol</span> instead of NDArray.



Defined in src/operator/make_loss.cc:L71</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#Pad" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Pad(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Pad(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Pad</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Pad(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Pads an input array <span class="kw">with</span> a constant or edge values of the array.

.. note:: `Pad` is deprecated. Use `pad` instead.

.. note:: Current implementation only supports <span class="num">4</span>D and <span class="num">5</span>D input arrays <span class="kw">with</span> padding applied
   only on axes <span class="num">1</span>, <span class="num">2</span> and <span class="num">3.</span> Expects axes <span class="num">4</span> and <span class="num">5</span> in `pad_width` to be zero.

This operation pads an input array <span class="kw">with</span> either a `constant_value` or edge values
along each axis of the input array. The amount of padding is specified by `pad_width`.

`pad_width` is a tuple of integer padding widths <span class="kw">for</span> each axis of the format
``(before_1, after_1, ... , before_N, after_N)``. The `pad_width` should be of length ``<span class="num">2</span>*N``
where ``N`` is the number of dimensions of the array.

For dimension ``N`` of the input array, ``before_N`` and ``after_N`` indicates how many values
to add before and after the elements of the array along dimension ``N``.
The widths of the higher two dimensions ``before_1``, ``after_1``, ``before_2``,
``after_2`` must be <span class="num">0.</span>

Example::

   x = `[ [`[ [  <span class="num">1.</span>   <span class="num">2.</span>   <span class="num">3.</span>]
          [  <span class="num">4.</span>   <span class="num">5.</span>   <span class="num">6.</span>] ]

         `[ [  <span class="num">7.</span>   <span class="num">8.</span>   <span class="num">9.</span>]
          [ <span class="num">10.</span>  <span class="num">11.</span>  <span class="num">12.</span>] ] ]


        `[ `[ [ <span class="num">11.</span>  <span class="num">12.</span>  <span class="num">13.</span>]
          [ <span class="num">14.</span>  <span class="num">15.</span>  <span class="num">16.</span>] ]

         `[ [ <span class="num">17.</span>  <span class="num">18.</span>  <span class="num">19.</span>]
          [ <span class="num">20.</span>  <span class="num">21.</span>  <span class="num">22.</span>] ] ] ]

   pad(x,mode=<span class="lit">"edge"</span>, pad_width=(<span class="num">0</span>,<span class="num">0</span>,<span class="num">0</span>,<span class="num">0</span>,<span class="num">1</span>,<span class="num">1</span>,<span class="num">1</span>,<span class="num">1</span>)) =

         `[ [`[ [  <span class="num">1.</span>   <span class="num">1.</span>   <span class="num">2.</span>   <span class="num">3.</span>   <span class="num">3.</span>]
            [  <span class="num">1.</span>   <span class="num">1.</span>   <span class="num">2.</span>   <span class="num">3.</span>   <span class="num">3.</span>]
            [  <span class="num">4.</span>   <span class="num">4.</span>   <span class="num">5.</span>   <span class="num">6.</span>   <span class="num">6.</span>]
            [  <span class="num">4.</span>   <span class="num">4.</span>   <span class="num">5.</span>   <span class="num">6.</span>   <span class="num">6.</span>] ]

           `[ [  <span class="num">7.</span>   <span class="num">7.</span>   <span class="num">8.</span>   <span class="num">9.</span>   <span class="num">9.</span>]
            [  <span class="num">7.</span>   <span class="num">7.</span>   <span class="num">8.</span>   <span class="num">9.</span>   <span class="num">9.</span>]
            [ <span class="num">10.</span>  <span class="num">10.</span>  <span class="num">11.</span>  <span class="num">12.</span>  <span class="num">12.</span>]
            [ <span class="num">10.</span>  <span class="num">10.</span>  <span class="num">11.</span>  <span class="num">12.</span>  <span class="num">12.</span>] ] ]


          `[ `[ [ <span class="num">11.</span>  <span class="num">11.</span>  <span class="num">12.</span>  <span class="num">13.</span>  <span class="num">13.</span>]
            [ <span class="num">11.</span>  <span class="num">11.</span>  <span class="num">12.</span>  <span class="num">13.</span>  <span class="num">13.</span>]
            [ <span class="num">14.</span>  <span class="num">14.</span>  <span class="num">15.</span>  <span class="num">16.</span>  <span class="num">16.</span>]
            [ <span class="num">14.</span>  <span class="num">14.</span>  <span class="num">15.</span>  <span class="num">16.</span>  <span class="num">16.</span>] ]

           `[ [ <span class="num">17.</span>  <span class="num">17.</span>  <span class="num">18.</span>  <span class="num">19.</span>  <span class="num">19.</span>]
            [ <span class="num">17.</span>  <span class="num">17.</span>  <span class="num">18.</span>  <span class="num">19.</span>  <span class="num">19.</span>]
            [ <span class="num">20.</span>  <span class="num">20.</span>  <span class="num">21.</span>  <span class="num">22.</span>  <span class="num">22.</span>]
            [ <span class="num">20.</span>  <span class="num">20.</span>  <span class="num">21.</span>  <span class="num">22.</span>  <span class="num">22.</span>] ] ] ]

   pad(x, mode=<span class="lit">"constant"</span>, constant_value=<span class="num">0</span>, pad_width=(<span class="num">0</span>,<span class="num">0</span>,<span class="num">0</span>,<span class="num">0</span>,<span class="num">1</span>,<span class="num">1</span>,<span class="num">1</span>,<span class="num">1</span>)) =

         `[ [`[ [  <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>   <span class="num">1.</span>   <span class="num">2.</span>   <span class="num">3.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>   <span class="num">4.</span>   <span class="num">5.</span>   <span class="num">6.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>] ]

           `[ [  <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>   <span class="num">7.</span>   <span class="num">8.</span>   <span class="num">9.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>  <span class="num">10.</span>  <span class="num">11.</span>  <span class="num">12.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>] ] ]


          `[ `[ [  <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>  <span class="num">11.</span>  <span class="num">12.</span>  <span class="num">13.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>  <span class="num">14.</span>  <span class="num">15.</span>  <span class="num">16.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>] ]

           `[ [  <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>  <span class="num">17.</span>  <span class="num">18.</span>  <span class="num">19.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>  <span class="num">20.</span>  <span class="num">21.</span>  <span class="num">22.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>] ] ] ]




Defined in src/operator/pad.cc:L766</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#Pooling" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Pooling(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Pooling(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Pooling</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Pooling(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Performs pooling on the input.

The shapes <span class="kw">for</span> <span class="num">1</span>-D pooling are

- **data** and **out**: *(batch_size, channel, width)* (NCW layout) or
  *(batch_size, width, channel)* (NWC layout),

The shapes <span class="kw">for</span> <span class="num">2</span>-D pooling are

- **data** and **out**: *(batch_size, channel, height, width)* (NCHW layout) or
  *(batch_size, height, width, channel)* (NHWC layout),

    out_height = f(height, kernel[<span class="num">0</span>], pad[<span class="num">0</span>], stride[<span class="num">0</span>])
    out_width = f(width, kernel[<span class="num">1</span>], pad[<span class="num">1</span>], stride[<span class="num">1</span>])

The definition of *f* depends on ``pooling_convention``, which has two options:

- **valid** (default)::

    f(x, k, p, s) = floor((x+<span class="num">2</span>*p-k)/s)+<span class="num">1</span>

- **full**, which is compatible <span class="kw">with</span> Caffe::

    f(x, k, p, s) = ceil((x+<span class="num">2</span>*p-k)/s)+<span class="num">1</span>

When ``global_pool`` is set to be <span class="kw">true</span>, then global pooling is performed. It will reset
``kernel=(height, width)`` and set the appropiate padding to <span class="num">0.</span>

Three pooling options are supported by ``pool_type``:

- **avg**: average pooling
- **max**: max pooling
- **sum**: sum pooling
- **lp**: Lp pooling

For <span class="num">3</span>-D pooling, an additional *depth* dimension is added before
*height*. Namely the input data and output will have shape *(batch_size, channel, depth,
height, width)* (NCDHW layout) or *(batch_size, depth, height, width, channel)* (NDHWC layout).

Notes on Lp pooling:

Lp pooling was first introduced by <span class="kw">this</span> paper: https:<span class="cmt">//arxiv.org/pdf/1204.3968.pdf.</span>
L-<span class="num">1</span> pooling is simply sum pooling, <span class="kw">while</span> L-inf pooling is simply max pooling.
We can see that Lp pooling stands between those two, in practice the most common value <span class="kw">for</span> p is <span class="num">2.</span>

For each window ``X``, the mathematical expression <span class="kw">for</span> Lp pooling is:

:math:`f(X) = \sqrt[p]{\sum_{x}^{X} x^p}`



Defined in src/operator/nn/pooling.cc:L414</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#Pooling_v1" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Pooling_v1(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Pooling_v1(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Pooling_v1</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Pooling_v1(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>This operator is DEPRECATED.
Perform pooling on the input.

The shapes <span class="kw">for</span> <span class="num">2</span>-D pooling is

- **data**: *(batch_size, channel, height, width)*
- **out**: *(batch_size, num_filter, out_height, out_width)*, <span class="kw">with</span>::

    out_height = f(height, kernel[<span class="num">0</span>], pad[<span class="num">0</span>], stride[<span class="num">0</span>])
    out_width = f(width, kernel[<span class="num">1</span>], pad[<span class="num">1</span>], stride[<span class="num">1</span>])

The definition of *f* depends on ``pooling_convention``, which has two options:

- **valid** (default)::

    f(x, k, p, s) = floor((x+<span class="num">2</span>*p-k)/s)+<span class="num">1</span>

- **full**, which is compatible <span class="kw">with</span> Caffe::

    f(x, k, p, s) = ceil((x+<span class="num">2</span>*p-k)/s)+<span class="num">1</span>

But ``global_pool`` is set to be <span class="kw">true</span>, then <span class="kw">do</span> a global pooling, namely reset
``kernel=(height, width)``.

Three pooling options are supported by ``pool_type``:

- **avg**: average pooling
- **max**: max pooling
- **sum**: sum pooling

<span class="num">1</span>-D pooling is special <span class="kw">case</span> of <span class="num">2</span>-D pooling <span class="kw">with</span> *weight=<span class="num">1</span>* and
*kernel[<span class="num">1</span>]=<span class="num">1</span>*.

For <span class="num">3</span>-D pooling, an additional *depth* dimension is added before
*height*. Namely the input data will have shape *(batch_size, channel, depth,
height, width)*.



Defined in src/operator/pooling_v1.cc:L104</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#RNN" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="RNN(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="RNN(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">RNN</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@RNN(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Applies recurrent layers to input data. Currently, vanilla RNN, LSTM and GRU are
implemented, <span class="kw">with</span> both multi-layer and bidirectional support.

When the input data is of <span class="kw">type</span> float32 and the environment variables MXNET_CUDA_ALLOW_TENSOR_CORE
and MXNET_CUDA_TENSOR_OP_MATH_ALLOW_CONVERSION are set to <span class="num">1</span>, <span class="kw">this</span> operator will <span class="kw">try</span> to use
pseudo-float16 precision (float32 math <span class="kw">with</span> float16 I/O) precision in order to use
Tensor Cores on suitable NVIDIA GPUs. This can sometimes give significant speedups.

**Vanilla RNN**

Applies a single-gate recurrent layer to input X. Two kinds of activation function are supported:
ReLU and Tanh.

With ReLU activation function:

.. math::
    h_t = relu(W_{ih} * x_t + b_{ih}  +  W_{hh} * h_{(t-<span class="num">1</span>)} + b_{hh})

With Tanh activtion function:

.. math::
    h_t = \tanh(W_{ih} * x_t + b_{ih}  +  W_{hh} * h_{(t-<span class="num">1</span>)} + b_{hh})

Reference paper: Finding structure in time - Elman, <span class="num">1988.</span>
https:<span class="cmt">//crl.ucsd.edu/~elman/Papers/fsit.pdf</span>

**LSTM**

<span class="std">Long</span> <span class="std">Short</span>-Term Memory - Hochreiter, <span class="num">1997.</span> http:<span class="cmt">//www.bioinf.jku.at/publications/older/2604.pdf</span>

.. math::
  \begin{array}{ll}
            i_t = \mathrm{sigmoid}(W_{ii} x_t + b_{ii} + W_{hi} h_{(t-<span class="num">1</span>)} + b_{hi}) \\
            f_t = \mathrm{sigmoid}(W_{<span class="kw">if</span>} x_t + b_{<span class="kw">if</span>} + W_{hf} h_{(t-<span class="num">1</span>)} + b_{hf}) \\
            g_t = \tanh(W_{ig} x_t + b_{ig} + W_{hc} h_{(t-<span class="num">1</span>)} + b_{hg}) \\
            o_t = \mathrm{sigmoid}(W_{io} x_t + b_{io} + W_{ho} h_{(t-<span class="num">1</span>)} + b_{ho}) \\
            c_t = f_t * c_{(t-<span class="num">1</span>)} + i_t * g_t \\
            h_t = o_t * \tanh(c_t)
            \end{array}

With the projection size being set, LSTM could use the projection feature to reduce the parameters
size and give some speedups without significant damage to the accuracy.

<span class="std">Long</span> <span class="std">Short</span>-Term Memory Based Recurrent Neural Network Architectures <span class="kw">for</span> Large Vocabulary Speech
Recognition - Sak et al. <span class="num">2014.</span> https:<span class="cmt">//arxiv.org/abs/1402.1128</span>

.. math::
  \begin{array}{ll}
            i_t = \mathrm{sigmoid}(W_{ii} x_t + b_{ii} + W_{ri} r_{(t-<span class="num">1</span>)} + b_{ri}) \\
            f_t = \mathrm{sigmoid}(W_{<span class="kw">if</span>} x_t + b_{<span class="kw">if</span>} + W_{rf} r_{(t-<span class="num">1</span>)} + b_{rf}) \\
            g_t = \tanh(W_{ig} x_t + b_{ig} + W_{rc} r_{(t-<span class="num">1</span>)} + b_{rg}) \\
            o_t = \mathrm{sigmoid}(W_{io} x_t + b_{o} + W_{ro} r_{(t-<span class="num">1</span>)} + b_{ro}) \\
            c_t = f_t * c_{(t-<span class="num">1</span>)} + i_t * g_t \\
            h_t = o_t * \tanh(c_t)
            r_t = W_{hr} h_t
            \end{array}

**GRU**

Gated Recurrent <span class="std">Unit</span> - Cho et al. <span class="num">2014.</span> http:<span class="cmt">//arxiv.org/abs/1406.1078</span>

The definition of GRU here is slightly different from paper but compatible <span class="kw">with</span> CUDNN.

.. math::
  \begin{array}{ll}
            r_t = \mathrm{sigmoid}(W_{ir} x_t + b_{ir} + W_{hr} h_{(t-<span class="num">1</span>)} + b_{hr}) \\
            z_t = \mathrm{sigmoid}(W_{iz} x_t + b_{iz} + W_{hz} h_{(t-<span class="num">1</span>)} + b_{hz}) \\
            n_t = \tanh(W_{in} x_t + b_{in} + r_t * (W_{hn} h_{(t-<span class="num">1</span>)}+ b_{hn})) \\
            h_t = (<span class="num">1</span> - z_t) * n_t + z_t * h_{(t-<span class="num">1</span>)} \\
            \end{array}


Defined in src/operator/rnn.cc:L368</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#ROIPooling" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="ROIPooling(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="ROIPooling(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">ROIPooling</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@ROIPooling(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Performs region of interest(ROI) pooling on the input array.

ROI pooling is a variant of a max pooling layer, in which the output size is fixed and
region of interest is a parameter. Its purpose is to perform max pooling on the inputs
of non-uniform sizes to obtain fixed-size feature maps. ROI pooling is a neural-net
layer mostly used in training a `Fast R-CNN` network <span class="kw">for</span> <span class="kw">object</span> detection.

This operator takes a <span class="num">4</span>D feature map as an input array and region proposals as `rois`,
then it pools over sub-regions of input and produces a fixed-sized output array
regardless of the ROI size.

To crop the feature map accordingly, you can resize the bounding box coordinates
by changing the parameters `rois` and `spatial_scale`.

The cropped feature maps are pooled by standard max pooling operation to a fixed size output
indicated by a `pooled_size` parameter. batch_size will change to the number of region
bounding boxes after `ROIPooling`.

The size of each region of interest doesn't have to be perfectly divisible by
the number of pooling sections(`pooled_size`).

Example::

  x = `[ [`[ [  <span class="num">0.</span>,   <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>,   <span class="num">4.</span>,   <span class="num">5.</span>],
         [  <span class="num">6.</span>,   <span class="num">7.</span>,   <span class="num">8.</span>,   <span class="num">9.</span>,  <span class="num">10.</span>,  <span class="num">11.</span>],
         [ <span class="num">12.</span>,  <span class="num">13.</span>,  <span class="num">14.</span>,  <span class="num">15.</span>,  <span class="num">16.</span>,  <span class="num">17.</span>],
         [ <span class="num">18.</span>,  <span class="num">19.</span>,  <span class="num">20.</span>,  <span class="num">21.</span>,  <span class="num">22.</span>,  <span class="num">23.</span>],
         [ <span class="num">24.</span>,  <span class="num">25.</span>,  <span class="num">26.</span>,  <span class="num">27.</span>,  <span class="num">28.</span>,  <span class="num">29.</span>],
         [ <span class="num">30.</span>,  <span class="num">31.</span>,  <span class="num">32.</span>,  <span class="num">33.</span>,  <span class="num">34.</span>,  <span class="num">35.</span>],
         [ <span class="num">36.</span>,  <span class="num">37.</span>,  <span class="num">38.</span>,  <span class="num">39.</span>,  <span class="num">40.</span>,  <span class="num">41.</span>],
         [ <span class="num">42.</span>,  <span class="num">43.</span>,  <span class="num">44.</span>,  <span class="num">45.</span>,  <span class="num">46.</span>,  <span class="num">47.</span>] ] ] ]

  <span class="cmt">// region of interest i.e. bounding box coordinates.</span>
  y = `[ [<span class="num">0</span>,<span class="num">0</span>,<span class="num">0</span>,<span class="num">4</span>,<span class="num">4</span>] ]

  <span class="cmt">// returns array of shape (2,2) according to the given roi with max pooling.</span>
  ROIPooling(x, y, (<span class="num">2</span>,<span class="num">2</span>), <span class="num">1.0</span>) = `[ [`[ [ <span class="num">14.</span>,  <span class="num">16.</span>],
                                    [ <span class="num">26.</span>,  <span class="num">28.</span>] ] ] ]

  <span class="cmt">// region of interest is changed due to the change in `spacial_scale` parameter.</span>
  ROIPooling(x, y, (<span class="num">2</span>,<span class="num">2</span>), <span class="num">0.7</span>) = `[ [`[ [  <span class="num">7.</span>,   <span class="num">9.</span>],
                                    [ <span class="num">19.</span>,  <span class="num">21.</span>] ] ] ]



Defined in src/operator/roi_pooling.cc:L225</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#Reshape" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Reshape(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Reshape(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Reshape</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Reshape(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Reshapes the input array.
.. note:: ``Reshape`` is deprecated, use ``reshape``
Given an array and a shape, <span class="kw">this</span> function returns a copy of the array in the <span class="kw">new</span> shape.
The shape is a tuple of integers such as (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>). The size of the <span class="kw">new</span> shape should be same as the size of the input array.
Example::
  reshape([<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>], shape=(<span class="num">2</span>,<span class="num">2</span>)) = `[ [<span class="num">1</span>,<span class="num">2</span>], [<span class="num">3</span>,<span class="num">4</span>] ]
<span class="std">Some</span> dimensions of the shape can take special values from the set {<span class="num">0</span>, -<span class="num">1</span>, -<span class="num">2</span>, -<span class="num">3</span>, -<span class="num">4</span>}. The significance of each is explained below:
- ``<span class="num">0</span>``  copy <span class="kw">this</span> dimension from the input to the output shape.
  Example::
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (<span class="num">4</span>,<span class="num">0</span>,<span class="num">2</span>), output shape = (<span class="num">4</span>,<span class="num">3</span>,<span class="num">2</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (<span class="num">2</span>,<span class="num">0</span>,<span class="num">0</span>), output shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>)
- ``-<span class="num">1</span>`` infers the dimension of the output shape by using the remainder of the input dimensions
  keeping the size of the <span class="kw">new</span> array same as that of the input array.
  At most one dimension of shape can be -<span class="num">1.</span>
  Example::
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (<span class="num">6</span>,<span class="num">1</span>,-<span class="num">1</span>), output shape = (<span class="num">6</span>,<span class="num">1</span>,<span class="num">4</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (<span class="num">3</span>,-<span class="num">1</span>,<span class="num">8</span>), output shape = (<span class="num">3</span>,<span class="num">1</span>,<span class="num">8</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape=(-<span class="num">1</span>,), output shape = (<span class="num">24</span>,)
- ``-<span class="num">2</span>`` copy all/remainder of the input dimensions to the output shape.
  Example::
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (-<span class="num">2</span>,), output shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (<span class="num">2</span>,-<span class="num">2</span>), output shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (-<span class="num">2</span>,<span class="num">1</span>,<span class="num">1</span>), output shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>,<span class="num">1</span>,<span class="num">1</span>)
- ``-<span class="num">3</span>`` use the product of two consecutive dimensions of the input shape as the output dimension.
  Example::
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (-<span class="num">3</span>,<span class="num">4</span>), output shape = (<span class="num">6</span>,<span class="num">4</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>,<span class="num">5</span>), shape = (-<span class="num">3</span>,-<span class="num">3</span>), output shape = (<span class="num">6</span>,<span class="num">20</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (<span class="num">0</span>,-<span class="num">3</span>), output shape = (<span class="num">2</span>,<span class="num">12</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (-<span class="num">3</span>,-<span class="num">2</span>), output shape = (<span class="num">6</span>,<span class="num">4</span>)
- ``-<span class="num">4</span>`` split one dimension of the input into two dimensions passed subsequent to -<span class="num">4</span> in shape (can contain -<span class="num">1</span>).
  Example::
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (-<span class="num">4</span>,<span class="num">1</span>,<span class="num">2</span>,-<span class="num">2</span>), output shape =(<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (<span class="num">2</span>,-<span class="num">4</span>,-<span class="num">1</span>,<span class="num">3</span>,-<span class="num">2</span>), output shape = (<span class="num">2</span>,<span class="num">1</span>,<span class="num">3</span>,<span class="num">4</span>)
If the argument `reverse` is set to <span class="num">1</span>, then the special values are inferred from right to left.
  Example::
  - without reverse=<span class="num">1</span>, <span class="kw">for</span> input shape = (<span class="num">10</span>,<span class="num">5</span>,<span class="num">4</span>), shape = (-<span class="num">1</span>,<span class="num">0</span>), output shape would be (<span class="num">40</span>,<span class="num">5</span>)
  - <span class="kw">with</span> reverse=<span class="num">1</span>, output shape will be (<span class="num">50</span>,<span class="num">4</span>).


Defined in src/operator/tensor/matrix_op.cc:L175</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#SVMOutput" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SVMOutput(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="SVMOutput(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">SVMOutput</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@SVMOutput(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes support vector machine based transformation of the input.

This tutorial demonstrates using SVM as output layer <span class="kw">for</span> classification instead of softmax:
https:<span class="cmt">//github.com/dmlc/mxnet/tree/master/example/svm_mnist.</span></pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#SequenceLast" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SequenceLast(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="SequenceLast(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">SequenceLast</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@SequenceLast(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Takes the last element of a sequence.

This function takes an n-dimensional input array of the form
[max_sequence_length, batch_size, other_feature_dims] and returns a (n-<span class="num">1</span>)-dimensional array
of the form [batch_size, other_feature_dims].

Parameter `sequence_length` is used to handle variable-length sequences. `sequence_length` should be
an input array of positive ints of dimension [batch_size]. To use <span class="kw">this</span> parameter,
set `use_sequence_length` to `True`, otherwise each example in the batch is assumed
to have the max sequence length.

.. note:: Alternatively, you can also use `take` operator.

Example::

   x = `[ `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>],
         [  <span class="num">4.</span>,   <span class="num">5.</span>,   <span class="num">6.</span>],
         [  <span class="num">7.</span>,   <span class="num">8.</span>,   <span class="num">9.</span>] ],

        `[ [ <span class="num">10.</span>,   <span class="num">11.</span>,   <span class="num">12.</span>],
         [ <span class="num">13.</span>,   <span class="num">14.</span>,   <span class="num">15.</span>],
         [ <span class="num">16.</span>,   <span class="num">17.</span>,   <span class="num">18.</span>] ],

        `[ [  <span class="num">19.</span>,   <span class="num">20.</span>,   <span class="num">21.</span>],
         [  <span class="num">22.</span>,   <span class="num">23.</span>,   <span class="num">24.</span>],
         [  <span class="num">25.</span>,   <span class="num">26.</span>,   <span class="num">27.</span>] ] ]

   <span class="cmt">// returns last sequence when sequence_length parameter is not used</span>
   SequenceLast(x) = `[ [  <span class="num">19.</span>,   <span class="num">20.</span>,   <span class="num">21.</span>],
                      [  <span class="num">22.</span>,   <span class="num">23.</span>,   <span class="num">24.</span>],
                      [  <span class="num">25.</span>,   <span class="num">26.</span>,   <span class="num">27.</span>] ]

   <span class="cmt">// sequence_length is used</span>
   SequenceLast(x, sequence_length=[<span class="num">1</span>,<span class="num">1</span>,<span class="num">1</span>], use_sequence_length=True) =
            `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>],
             [  <span class="num">4.</span>,   <span class="num">5.</span>,   <span class="num">6.</span>],
             [  <span class="num">7.</span>,   <span class="num">8.</span>,   <span class="num">9.</span>] ]

   <span class="cmt">// sequence_length is used</span>
   SequenceLast(x, sequence_length=[<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>], use_sequence_length=True) =
            `[ [  <span class="num">1.</span>,    <span class="num">2.</span>,   <span class="num">3.</span>],
             [  <span class="num">13.</span>,  <span class="num">14.</span>,  <span class="num">15.</span>],
             [  <span class="num">25.</span>,  <span class="num">26.</span>,  <span class="num">27.</span>] ]



Defined in src/operator/sequence_last.cc:L106</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#SequenceMask" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SequenceMask(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="SequenceMask(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">SequenceMask</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@SequenceMask(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Sets all elements outside the sequence to a constant value.

This function takes an n-dimensional input array of the form
[max_sequence_length, batch_size, other_feature_dims] and returns an array of the same shape.

Parameter `sequence_length` is used to handle variable-length sequences. `sequence_length`
should be an input array of positive ints of dimension [batch_size].
To use <span class="kw">this</span> parameter, set `use_sequence_length` to `True`,
otherwise each example in the batch is assumed to have the max sequence length and
<span class="kw">this</span> operator works as the `identity` operator.

Example::

   x = `[ `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>],
         [  <span class="num">4.</span>,   <span class="num">5.</span>,   <span class="num">6.</span>] ],

        `[ [  <span class="num">7.</span>,   <span class="num">8.</span>,   <span class="num">9.</span>],
         [ <span class="num">10.</span>,  <span class="num">11.</span>,  <span class="num">12.</span>] ],

        `[ [ <span class="num">13.</span>,  <span class="num">14.</span>,   <span class="num">15.</span>],
         [ <span class="num">16.</span>,  <span class="num">17.</span>,   <span class="num">18.</span>] ] ]

   <span class="cmt">// Batch 1</span>
   B1 = `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>],
         [  <span class="num">7.</span>,   <span class="num">8.</span>,   <span class="num">9.</span>],
         [ <span class="num">13.</span>,  <span class="num">14.</span>,  <span class="num">15.</span>] ]

   <span class="cmt">// Batch 2</span>
   B2 = `[ [  <span class="num">4.</span>,   <span class="num">5.</span>,   <span class="num">6.</span>],
         [ <span class="num">10.</span>,  <span class="num">11.</span>,  <span class="num">12.</span>],
         [ <span class="num">16.</span>,  <span class="num">17.</span>,  <span class="num">18.</span>] ]

   <span class="cmt">// works as identity operator when sequence_length parameter is not used</span>
   SequenceMask(x) = `[ `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>],
                       [  <span class="num">4.</span>,   <span class="num">5.</span>,   <span class="num">6.</span>] ],

                      `[ [  <span class="num">7.</span>,   <span class="num">8.</span>,   <span class="num">9.</span>],
                       [ <span class="num">10.</span>,  <span class="num">11.</span>,  <span class="num">12.</span>] ],

                      `[ [ <span class="num">13.</span>,  <span class="num">14.</span>,   <span class="num">15.</span>],
                       [ <span class="num">16.</span>,  <span class="num">17.</span>,   <span class="num">18.</span>] ] ]

   <span class="cmt">// sequence_length [1,1] means 1 of each batch will be kept</span>
   <span class="cmt">// and other rows are masked with default mask value = 0</span>
   SequenceMask(x, sequence_length=[<span class="num">1</span>,<span class="num">1</span>], use_sequence_length=True) =
                `[ `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>],
                  [  <span class="num">4.</span>,   <span class="num">5.</span>,   <span class="num">6.</span>] ],

                 `[ [  <span class="num">0.</span>,   <span class="num">0.</span>,   <span class="num">0.</span>],
                  [  <span class="num">0.</span>,   <span class="num">0.</span>,   <span class="num">0.</span>] ],

                 `[ [  <span class="num">0.</span>,   <span class="num">0.</span>,   <span class="num">0.</span>],
                  [  <span class="num">0.</span>,   <span class="num">0.</span>,   <span class="num">0.</span>] ] ]

   <span class="cmt">// sequence_length [2,3] means 2 of batch B1 and 3 of batch B2 will be kept</span>
   <span class="cmt">// and other rows are masked with value = 1</span>
   SequenceMask(x, sequence_length=[<span class="num">2</span>,<span class="num">3</span>], use_sequence_length=True, value=<span class="num">1</span>) =
                `[ `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>],
                  [  <span class="num">4.</span>,   <span class="num">5.</span>,   <span class="num">6.</span>] ],

                 `[ [  <span class="num">7.</span>,   <span class="num">8.</span>,   <span class="num">9.</span>],
                  [  <span class="num">10.</span>,  <span class="num">11.</span>,  <span class="num">12.</span>] ],

                 `[ [   <span class="num">1.</span>,   <span class="num">1.</span>,   <span class="num">1.</span>],
                  [  <span class="num">16.</span>,  <span class="num">17.</span>,  <span class="num">18.</span>] ] ]



Defined in src/operator/sequence_mask.cc:L186</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#SequenceReverse" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SequenceReverse(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="SequenceReverse(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">SequenceReverse</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@SequenceReverse(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Reverses the elements of each sequence.

This function takes an n-dimensional input array of the form [max_sequence_length, batch_size, other_feature_dims]
and returns an array of the same shape.

Parameter `sequence_length` is used to handle variable-length sequences.
`sequence_length` should be an input array of positive ints of dimension [batch_size].
To use <span class="kw">this</span> parameter, set `use_sequence_length` to `True`,
otherwise each example in the batch is assumed to have the max sequence length.

Example::

   x = `[ `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>],
         [  <span class="num">4.</span>,   <span class="num">5.</span>,   <span class="num">6.</span>] ],

        `[ [  <span class="num">7.</span>,   <span class="num">8.</span>,   <span class="num">9.</span>],
         [ <span class="num">10.</span>,  <span class="num">11.</span>,  <span class="num">12.</span>] ],

        `[ [ <span class="num">13.</span>,  <span class="num">14.</span>,   <span class="num">15.</span>],
         [ <span class="num">16.</span>,  <span class="num">17.</span>,   <span class="num">18.</span>] ] ]

   <span class="cmt">// Batch 1</span>
   B1 = `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>],
         [  <span class="num">7.</span>,   <span class="num">8.</span>,   <span class="num">9.</span>],
         [ <span class="num">13.</span>,  <span class="num">14.</span>,  <span class="num">15.</span>] ]

   <span class="cmt">// Batch 2</span>
   B2 = `[ [  <span class="num">4.</span>,   <span class="num">5.</span>,   <span class="num">6.</span>],
         [ <span class="num">10.</span>,  <span class="num">11.</span>,  <span class="num">12.</span>],
         [ <span class="num">16.</span>,  <span class="num">17.</span>,  <span class="num">18.</span>] ]

   <span class="cmt">// returns reverse sequence when sequence_length parameter is not used</span>
   SequenceReverse(x) = `[ `[ [ <span class="num">13.</span>,  <span class="num">14.</span>,   <span class="num">15.</span>],
                          [ <span class="num">16.</span>,  <span class="num">17.</span>,   <span class="num">18.</span>] ],

                         `[ [  <span class="num">7.</span>,   <span class="num">8.</span>,   <span class="num">9.</span>],
                          [ <span class="num">10.</span>,  <span class="num">11.</span>,  <span class="num">12.</span>] ],

                         `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>],
                          [  <span class="num">4.</span>,   <span class="num">5.</span>,   <span class="num">6.</span>] ] ]

   <span class="cmt">// sequence_length [2,2] means 2 rows of</span>
   <span class="cmt">// both batch B1 and B2 will be reversed.</span>
   SequenceReverse(x, sequence_length=[<span class="num">2</span>,<span class="num">2</span>], use_sequence_length=True) =
                     `[ `[ [  <span class="num">7.</span>,   <span class="num">8.</span>,   <span class="num">9.</span>],
                       [ <span class="num">10.</span>,  <span class="num">11.</span>,  <span class="num">12.</span>] ],

                      `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>],
                       [  <span class="num">4.</span>,   <span class="num">5.</span>,   <span class="num">6.</span>] ],

                      `[ [ <span class="num">13.</span>,  <span class="num">14.</span>,   <span class="num">15.</span>],
                       [ <span class="num">16.</span>,  <span class="num">17.</span>,   <span class="num">18.</span>] ] ]

   <span class="cmt">// sequence_length [2,3] means 2 of batch B2 and 3 of batch B3</span>
   <span class="cmt">// will be reversed.</span>
   SequenceReverse(x, sequence_length=[<span class="num">2</span>,<span class="num">3</span>], use_sequence_length=True) =
                    `[ `[ [  <span class="num">7.</span>,   <span class="num">8.</span>,   <span class="num">9.</span>],
                      [ <span class="num">16.</span>,  <span class="num">17.</span>,  <span class="num">18.</span>] ],

                     `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>],
                      [ <span class="num">10.</span>,  <span class="num">11.</span>,  <span class="num">12.</span>] ],

                     `[ [ <span class="num">13.</span>,  <span class="num">14</span>,   <span class="num">15.</span>],
                      [  <span class="num">4.</span>,   <span class="num">5.</span>,   <span class="num">6.</span>] ] ]



Defined in src/operator/sequence_reverse.cc:L122</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#SliceChannel" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SliceChannel(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="SliceChannel(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">SliceChannel</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@SliceChannel(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Splits an array along a particular axis into multiple sub-arrays.

.. note:: ``SliceChannel`` is deprecated. Use ``split`` instead.

**Note** that `num_outputs` should evenly divide the length of the axis
along which to split the array.

Example::

   x  = `[ `[ [ <span class="num">1.</span>]
          [ <span class="num">2.</span>] ]
         `[ [ <span class="num">3.</span>]
          [ <span class="num">4.</span>] ]
         `[ [ <span class="num">5.</span>]
          [ <span class="num">6.</span>] ] ]
   x.shape = (<span class="num">3</span>, <span class="num">2</span>, <span class="num">1</span>)

   y = split(x, axis=<span class="num">1</span>, num_outputs=<span class="num">2</span>) <span class="cmt">// a list of 2 arrays with shape (3, 1, 1)</span>
   y = `[ `[ [ <span class="num">1.</span>] ]
        `[ [ <span class="num">3.</span>] ]
        `[ [ <span class="num">5.</span>] ] ]

       `[ `[ [ <span class="num">2.</span>] ]
        `[ [ <span class="num">4.</span>] ]
        `[ [ <span class="num">6.</span>] ] ]

   y[<span class="num">0</span>].shape = (<span class="num">3</span>, <span class="num">1</span>, <span class="num">1</span>)

   z = split(x, axis=<span class="num">0</span>, num_outputs=<span class="num">3</span>) <span class="cmt">// a list of 3 arrays with shape (1, 2, 1)</span>
   z = `[ `[ [ <span class="num">1.</span>]
         [ <span class="num">2.</span>] ] ]

       `[ `[ [ <span class="num">3.</span>]
         [ <span class="num">4.</span>] ] ]

       `[ `[ [ <span class="num">5.</span>]
         [ <span class="num">6.</span>] ] ]

   z[<span class="num">0</span>].shape = (<span class="num">1</span>, <span class="num">2</span>, <span class="num">1</span>)

`squeeze_axis=<span class="num">1</span>` removes the axis <span class="kw">with</span> length <span class="num">1</span> from the shapes of the output arrays.
**Note** that setting `squeeze_axis` to ``<span class="num">1</span>`` removes axis <span class="kw">with</span> length <span class="num">1</span> only
along the `axis` which it is split.
Also `squeeze_axis` can be set to <span class="kw">true</span> only <span class="kw">if</span> ``input.shape[axis] == num_outputs``.

Example::

   z = split(x, axis=<span class="num">0</span>, num_outputs=<span class="num">3</span>, squeeze_axis=<span class="num">1</span>) <span class="cmt">// a list of 3 arrays with shape (2, 1)</span>
   z = `[ [ <span class="num">1.</span>]
        [ <span class="num">2.</span>] ]

       `[ [ <span class="num">3.</span>]
        [ <span class="num">4.</span>] ]

       `[ [ <span class="num">5.</span>]
        [ <span class="num">6.</span>] ]
   z[<span class="num">0</span>].shape = (<span class="num">2</span> ,<span class="num">1</span> )



Defined in src/operator/slice_channel.cc:L107</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#Softmax" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Softmax(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="Softmax(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Softmax</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Softmax(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the gradient of cross entropy loss <span class="kw">with</span> respect to softmax output.

- This operator computes the gradient in two steps.
  The cross entropy loss does not actually need to be computed.

  - Applies softmax function on the input array.
  - Computes and returns the gradient of cross entropy loss w.r.t. the softmax output.

- The softmax function, cross entropy loss and gradient is given by:

  - Softmax <span class="std">Function</span>:

    .. math:: \text{softmax}(x)_i = \frac{exp(x_i)}{\sum_j exp(x_j)}

  - Cross Entropy <span class="std">Function</span>:

    .. math:: \text{CE(label, output)} = - \sum_i \text{label}_i \log(\text{output}_i)

  - The gradient of cross entropy loss w.r.t softmax output:

    .. math:: \text{gradient} = \text{output} - \text{label}

- During forward propagation, the softmax function is computed <span class="kw">for</span> each instance in the input array.

  For general *N*-D input arrays <span class="kw">with</span> shape :math:`(d_1, d_2, ..., d_n)`. The size is
  :math:`s=d_1 \cdot d_2 \cdot \cdot \cdot d_n`. We can use the parameters `preserve_shape`
  and `multi_output` to specify the way to compute softmax:

  - By default, `preserve_shape` is ``<span class="kw">false</span>``. This operator will reshape the input array
    into a <span class="num">2</span>-D array <span class="kw">with</span> shape :math:`(d_1, \frac{s}{d_1})` and then compute the softmax function <span class="kw">for</span>
    each row in the reshaped array, and afterwards reshape it back to the original shape
    :math:`(d_1, d_2, ..., d_n)`.
  - If `preserve_shape` is ``<span class="kw">true</span>``, the softmax function will be computed along
    the last axis (`axis` = ``-<span class="num">1</span>``).
  - If `multi_output` is ``<span class="kw">true</span>``, the softmax function will be computed along
    the second axis (`axis` = ``<span class="num">1</span>``).

- During backward propagation, the gradient of cross-entropy loss w.r.t softmax output array is computed.
  The provided label can be a one-hot label array or a probability label array.

  - If the parameter `use_ignore` is ``<span class="kw">true</span>``, `ignore_label` can specify input instances
    <span class="kw">with</span> a particular label to be ignored during backward propagation. **This has no effect when
    softmax `output` has same shape as `label`**.

    Example::

      data = `[ [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>],[<span class="num">2</span>,<span class="num">2</span>,<span class="num">2</span>,<span class="num">2</span>],[<span class="num">3</span>,<span class="num">3</span>,<span class="num">3</span>,<span class="num">3</span>],[<span class="num">4</span>,<span class="num">4</span>,<span class="num">4</span>,<span class="num">4</span>] ]
      label = [<span class="num">1</span>,<span class="num">0</span>,<span class="num">2</span>,<span class="num">3</span>]
      ignore_label = <span class="num">1</span>
      SoftmaxOutput(data=data, label = label,\
                    multi_output=<span class="kw">true</span>, use_ignore=<span class="kw">true</span>,\
                    ignore_label=ignore_label)
      ## forward softmax output
      `[ [ <span class="num">0.0320586</span>   <span class="num">0.08714432</span>  <span class="num">0.23688284</span>  <span class="num">0.64391428</span>]
       [ <span class="num">0.25</span>        <span class="num">0.25</span>        <span class="num">0.25</span>        <span class="num">0.25</span>      ]
       [ <span class="num">0.25</span>        <span class="num">0.25</span>        <span class="num">0.25</span>        <span class="num">0.25</span>      ]
       [ <span class="num">0.25</span>        <span class="num">0.25</span>        <span class="num">0.25</span>        <span class="num">0.25</span>      ] ]
      ## backward gradient output
      `[ [ <span class="num">0.</span>    <span class="num">0.</span>    <span class="num">0.</span>    <span class="num">0.</span>  ]
       [-<span class="num">0.75</span>  <span class="num">0.25</span>  <span class="num">0.25</span>  <span class="num">0.25</span>]
       [ <span class="num">0.25</span>  <span class="num">0.25</span> -<span class="num">0.75</span>  <span class="num">0.25</span>]
       [ <span class="num">0.25</span>  <span class="num">0.25</span>  <span class="num">0.25</span> -<span class="num">0.75</span>] ]
      ## notice that the first row is all <span class="num">0</span> because label[<span class="num">0</span>] is <span class="num">1</span>, which is equal to ignore_label.

  - The parameter `grad_scale` can be used to rescale the gradient, which is often used to
    give each loss function different weights.

  - This operator also supports various ways to normalize the gradient by `normalization`,
    The `normalization` is applied <span class="kw">if</span> softmax output has different shape than the labels.
    The `normalization` mode can be set to the followings:

    - ``<span class="lit">'null'</span>``: <span class="kw">do</span> nothing.
    - ``<span class="lit">'batch'</span>``: divide the gradient by the batch size.
    - ``<span class="lit">'valid'</span>``: divide the gradient by the number of instances which are not ignored.



Defined in src/operator/softmax_output.cc:L231</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#SoftmaxActivation" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SoftmaxActivation(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="SoftmaxActivation(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">SoftmaxActivation</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@SoftmaxActivation(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Applies softmax activation to input. This is intended <span class="kw">for</span> internal layers.

.. note::

  This operator has been deprecated, please use `softmax`.

If `mode` = ``instance``, <span class="kw">this</span> operator will compute a softmax <span class="kw">for</span> each instance in the batch.
This is the default mode.

If `mode` = ``channel``, <span class="kw">this</span> operator will compute a k-<span class="kw">class</span> softmax at each position
of each instance, where `k` = ``num_channel``. This mode can only be used when the input array
has at least <span class="num">3</span> dimensions.
This can be used <span class="kw">for</span> `fully convolutional network`, `image segmentation`, etc.

Example::

  &gt;&gt;&gt; input_array = mx.nd.array(`[ [<span class="num">3.</span>, <span class="num">0.5</span>, -<span class="num">0.5</span>, <span class="num">2.</span>, <span class="num">7.</span>],
  &gt;&gt;&gt;                            [<span class="num">2.</span>, -<span class="num">.4</span>, <span class="num">7.</span>,   <span class="num">3.</span>, <span class="num">0.2</span>] ])
  &gt;&gt;&gt; softmax_act = mx.nd.SoftmaxActivation(input_array)
  &gt;&gt;&gt; print softmax_act.asnumpy()
  `[ [  <span class="num">1.78322066e-02</span>   <span class="num">1.46375655e-03</span>   <span class="num">5.38485940e-04</span>   <span class="num">6.56010211e-03</span>   <span class="num">9.73605454e-01</span>]
   [  <span class="num">6.56221947e-03</span>   <span class="num">5.95310994e-04</span>   <span class="num">9.73919690e-01</span>   <span class="num">1.78379621e-02</span>   <span class="num">1.08472735e-03</span>] ]



Defined in src/operator/nn/softmax_activation.cc:L59</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#SoftmaxOutput" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SoftmaxOutput(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="SoftmaxOutput(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">SoftmaxOutput</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@SoftmaxOutput(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the gradient of cross entropy loss <span class="kw">with</span> respect to softmax output.

- This operator computes the gradient in two steps.
  The cross entropy loss does not actually need to be computed.

  - Applies softmax function on the input array.
  - Computes and returns the gradient of cross entropy loss w.r.t. the softmax output.

- The softmax function, cross entropy loss and gradient is given by:

  - Softmax <span class="std">Function</span>:

    .. math:: \text{softmax}(x)_i = \frac{exp(x_i)}{\sum_j exp(x_j)}

  - Cross Entropy <span class="std">Function</span>:

    .. math:: \text{CE(label, output)} = - \sum_i \text{label}_i \log(\text{output}_i)

  - The gradient of cross entropy loss w.r.t softmax output:

    .. math:: \text{gradient} = \text{output} - \text{label}

- During forward propagation, the softmax function is computed <span class="kw">for</span> each instance in the input array.

  For general *N*-D input arrays <span class="kw">with</span> shape :math:`(d_1, d_2, ..., d_n)`. The size is
  :math:`s=d_1 \cdot d_2 \cdot \cdot \cdot d_n`. We can use the parameters `preserve_shape`
  and `multi_output` to specify the way to compute softmax:

  - By default, `preserve_shape` is ``<span class="kw">false</span>``. This operator will reshape the input array
    into a <span class="num">2</span>-D array <span class="kw">with</span> shape :math:`(d_1, \frac{s}{d_1})` and then compute the softmax function <span class="kw">for</span>
    each row in the reshaped array, and afterwards reshape it back to the original shape
    :math:`(d_1, d_2, ..., d_n)`.
  - If `preserve_shape` is ``<span class="kw">true</span>``, the softmax function will be computed along
    the last axis (`axis` = ``-<span class="num">1</span>``).
  - If `multi_output` is ``<span class="kw">true</span>``, the softmax function will be computed along
    the second axis (`axis` = ``<span class="num">1</span>``).

- During backward propagation, the gradient of cross-entropy loss w.r.t softmax output array is computed.
  The provided label can be a one-hot label array or a probability label array.

  - If the parameter `use_ignore` is ``<span class="kw">true</span>``, `ignore_label` can specify input instances
    <span class="kw">with</span> a particular label to be ignored during backward propagation. **This has no effect when
    softmax `output` has same shape as `label`**.

    Example::

      data = `[ [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>],[<span class="num">2</span>,<span class="num">2</span>,<span class="num">2</span>,<span class="num">2</span>],[<span class="num">3</span>,<span class="num">3</span>,<span class="num">3</span>,<span class="num">3</span>],[<span class="num">4</span>,<span class="num">4</span>,<span class="num">4</span>,<span class="num">4</span>] ]
      label = [<span class="num">1</span>,<span class="num">0</span>,<span class="num">2</span>,<span class="num">3</span>]
      ignore_label = <span class="num">1</span>
      SoftmaxOutput(data=data, label = label,\
                    multi_output=<span class="kw">true</span>, use_ignore=<span class="kw">true</span>,\
                    ignore_label=ignore_label)
      ## forward softmax output
      `[ [ <span class="num">0.0320586</span>   <span class="num">0.08714432</span>  <span class="num">0.23688284</span>  <span class="num">0.64391428</span>]
       [ <span class="num">0.25</span>        <span class="num">0.25</span>        <span class="num">0.25</span>        <span class="num">0.25</span>      ]
       [ <span class="num">0.25</span>        <span class="num">0.25</span>        <span class="num">0.25</span>        <span class="num">0.25</span>      ]
       [ <span class="num">0.25</span>        <span class="num">0.25</span>        <span class="num">0.25</span>        <span class="num">0.25</span>      ] ]
      ## backward gradient output
      `[ [ <span class="num">0.</span>    <span class="num">0.</span>    <span class="num">0.</span>    <span class="num">0.</span>  ]
       [-<span class="num">0.75</span>  <span class="num">0.25</span>  <span class="num">0.25</span>  <span class="num">0.25</span>]
       [ <span class="num">0.25</span>  <span class="num">0.25</span> -<span class="num">0.75</span>  <span class="num">0.25</span>]
       [ <span class="num">0.25</span>  <span class="num">0.25</span>  <span class="num">0.25</span> -<span class="num">0.75</span>] ]
      ## notice that the first row is all <span class="num">0</span> because label[<span class="num">0</span>] is <span class="num">1</span>, which is equal to ignore_label.

  - The parameter `grad_scale` can be used to rescale the gradient, which is often used to
    give each loss function different weights.

  - This operator also supports various ways to normalize the gradient by `normalization`,
    The `normalization` is applied <span class="kw">if</span> softmax output has different shape than the labels.
    The `normalization` mode can be set to the followings:

    - ``<span class="lit">'null'</span>``: <span class="kw">do</span> nothing.
    - ``<span class="lit">'batch'</span>``: divide the gradient by the batch size.
    - ``<span class="lit">'valid'</span>``: divide the gradient by the number of instances which are not ignored.



Defined in src/operator/softmax_output.cc:L231</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#SpatialTransformer" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SpatialTransformer(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="SpatialTransformer(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">SpatialTransformer</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@SpatialTransformer(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Applies a spatial transformer to input feature map.</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#SwapAxis" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SwapAxis(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="SwapAxis(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">SwapAxis</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@SwapAxis(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Interchanges two axes of an array.

Examples::

  x = `[ [<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>] ])
  swapaxes(x, <span class="num">0</span>, <span class="num">1</span>) = `[ [ <span class="num">1</span>],
                       [ <span class="num">2</span>],
                       [ <span class="num">3</span>] ]

  x = `[ `[ [ <span class="num">0</span>, <span class="num">1</span>],
        [ <span class="num">2</span>, <span class="num">3</span>] ],
       `[ [ <span class="num">4</span>, <span class="num">5</span>],
        [ <span class="num">6</span>, <span class="num">7</span>] ] ]  <span class="cmt">// (2,2,2) array</span>

 swapaxes(x, <span class="num">0</span>, <span class="num">2</span>) = `[ `[ [ <span class="num">0</span>, <span class="num">4</span>],
                       [ <span class="num">2</span>, <span class="num">6</span>] ],
                      `[ [ <span class="num">1</span>, <span class="num">5</span>],
                       [ <span class="num">3</span>, <span class="num">7</span>] ] ]


Defined in src/operator/swapaxis.cc:L70</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#UpSampling" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="UpSampling(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="UpSampling(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">UpSampling</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@UpSampling(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Upsamples the given input data.

Two algorithms (``sample_type``) are available <span class="kw">for</span> upsampling:

- Nearest Neighbor
- Bilinear

**Nearest Neighbor Upsampling**

Input data is expected to be NCHW.

Example::

  x = `[ [`[ [<span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span>]
         [<span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span>]
         [<span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span>] ] ] ]

  UpSampling(x, scale=<span class="num">2</span>, sample_type='nearest') = `[ [`[ [<span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span>]
                                                     [<span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span>]
                                                     [<span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span>]
                                                     [<span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span>]
                                                     [<span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span>]
                                                     [<span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span>] ] ] ]

**Bilinear Upsampling**

Uses `deconvolution` algorithm under the hood. You need provide both input data and the kernel.

Input data is expected to be NCHW.

`num_filter` is expected to be same as the number of channels.

Example::

  x = `[ [`[ [<span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span>]
         [<span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span>]
         [<span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span>] ] ] ]

  w = `[ [`[ [<span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span>]
         [<span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span>]
         [<span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span>]
         [<span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span> <span class="num">1.</span>] ] ] ]

  UpSampling(x, w, scale=<span class="num">2</span>, sample_type='bilinear', num_filter=<span class="num">1</span>) = `[ [`[ [<span class="num">1.</span> <span class="num">2.</span> <span class="num">2.</span> <span class="num">2.</span> <span class="num">2.</span> <span class="num">1.</span>]
                                                                       [<span class="num">2.</span> <span class="num">4.</span> <span class="num">4.</span> <span class="num">4.</span> <span class="num">4.</span> <span class="num">2.</span>]
                                                                       [<span class="num">2.</span> <span class="num">4.</span> <span class="num">4.</span> <span class="num">4.</span> <span class="num">4.</span> <span class="num">2.</span>]
                                                                       [<span class="num">2.</span> <span class="num">4.</span> <span class="num">4.</span> <span class="num">4.</span> <span class="num">4.</span> <span class="num">2.</span>]
                                                                       [<span class="num">2.</span> <span class="num">4.</span> <span class="num">4.</span> <span class="num">4.</span> <span class="num">4.</span> <span class="num">2.</span>]
                                                                       [<span class="num">1.</span> <span class="num">2.</span> <span class="num">2.</span> <span class="num">2.</span> <span class="num">2.</span> <span class="num">1.</span>] ] ] ]


Defined in src/operator/nn/upsampling.cc:L173</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#abs" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="abs(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="abs(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">abs</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@abs(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise absolute value of the input.

Example::

   abs([-<span class="num">2</span>, <span class="num">0</span>, <span class="num">3</span>]) = [<span class="num">2</span>, <span class="num">0</span>, <span class="num">3</span>]

The storage <span class="kw">type</span> of ``abs`` output depends upon the input storage <span class="kw">type</span>:

   - abs(default) = default
   - abs(row_sparse) = row_sparse
   - abs(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L720</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#adam_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="adam_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="adam_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">adam_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@adam_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Update function <span class="kw">for</span> Adam optimizer. Adam is seen as a generalization
of AdaGrad.

Adam update consists of the following steps, where g represents gradient and m, v
are <span class="num">1</span>st and <span class="num">2</span>nd order moment estimates (mean and variance).

.. math::

 g_t = \nabla J(W_{t-<span class="num">1</span>})\\
 m_t = \beta_1 m_{t-<span class="num">1</span>} + (<span class="num">1</span> - \beta_1) g_t\\
 v_t = \beta_2 v_{t-<span class="num">1</span>} + (<span class="num">1</span> - \beta_2) g_t^<span class="num">2</span>\\
 W_t = W_{t-<span class="num">1</span>} - \alpha \frac{ m_t }{ \sqrt{ v_t } + \epsilon }

It updates the weights using::

 m = beta1*m + (<span class="num">1</span>-beta1)*grad
 v = beta2*v + (<span class="num">1</span>-beta2)*(grad**<span class="num">2</span>)
 w += - learning_rate * m / (sqrt(v) + epsilon)

However, <span class="kw">if</span> grad's storage <span class="kw">type</span> is ``row_sparse``, ``lazy_update`` is True and the storage
<span class="kw">type</span> of weight is the same as those of m and v,
only the row slices whose indices appear in grad.indices are updated (<span class="kw">for</span> w, m and v)::

 <span class="kw">for</span> row in grad.indices:
     m[row] = beta1*m[row] + (<span class="num">1</span>-beta1)*grad[row]
     v[row] = beta2*v[row] + (<span class="num">1</span>-beta2)*(grad[row]**<span class="num">2</span>)
     w[row] += - learning_rate * m[row] / (sqrt(v[row]) + epsilon)



Defined in src/operator/optimizer_op.cc:L688</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#add_n" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="add_n(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="add_n(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">add_n</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@add_n(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Adds all input arguments element-wise.

.. math::
   add\_n(a_1, a_2, ..., a_n) = a_1 + a_2 + ... + a_n

``add_n`` is potentially more efficient than calling ``add`` by `n` times.

The storage <span class="kw">type</span> of ``add_n`` output depends on storage types of inputs

- add_n(row_sparse, row_sparse, ..) = row_sparse
- add_n(default, csr, default) = default
- add_n(any input combinations longer than <span class="num">4</span> (&gt;<span class="num">4</span>) <span class="kw">with</span> at least one default <span class="kw">type</span>) = default
- otherwise, ``add_n`` falls all inputs back to default storage and generates default storage



Defined in src/operator/tensor/elemwise_sum.cc:L156</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#all_finite" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="all_finite(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="all_finite(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">all_finite</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@all_finite(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Check <span class="kw">if</span> all the float numbers in the array are finite (used <span class="kw">for</span> AMP)


Defined in src/operator/contrib/all_finite.cc:L101</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#amp_cast" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="amp_cast(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="amp_cast(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">amp_cast</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@amp_cast(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Cast function between low precision float/FP32 used by AMP.

It casts only between low precision float/FP32 and does not <span class="kw">do</span> anything <span class="kw">for</span> other types.


Defined in src/operator/tensor/amp_cast.cc:L121</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#amp_multicast" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="amp_multicast(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="amp_multicast(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">amp_multicast</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@amp_multicast(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Cast function used by AMP, that casts its inputs to the common widest <span class="kw">type</span>.

It casts only between low precision float/FP32 and does not <span class="kw">do</span> anything <span class="kw">for</span> other types.



Defined in src/operator/tensor/amp_cast.cc:L165</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#arccos" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="arccos(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="arccos(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">arccos</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@arccos(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise inverse cosine of the input array.

The input should be in range `[-<span class="num">1</span>, <span class="num">1</span>]`.
The output is in the closed interval :math:`[<span class="num">0</span>, \pi]`

.. math::
   arccos([-<span class="num">1</span>, -<span class="num">.707</span>, <span class="num">0</span>, <span class="num">.707</span>, <span class="num">1</span>]) = [\pi, <span class="num">3</span>\pi/<span class="num">4</span>, \pi/<span class="num">2</span>, \pi/<span class="num">4</span>, <span class="num">0</span>]

The storage <span class="kw">type</span> of ``arccos`` output is always dense



Defined in src/operator/tensor/elemwise_unary_op_trig.cc:L233</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#arccosh" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="arccosh(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="arccosh(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">arccosh</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@arccosh(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the element-wise inverse hyperbolic cosine of the input array, \
computed element-wise.

The storage <span class="kw">type</span> of ``arccosh`` output is always dense



Defined in src/operator/tensor/elemwise_unary_op_trig.cc:L535</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#arcsin" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="arcsin(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="arcsin(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">arcsin</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@arcsin(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise inverse sine of the input array.

The input should be in the range `[-<span class="num">1</span>, <span class="num">1</span>]`.
The output is in the closed interval of [:math:`-\pi/<span class="num">2</span>`, :math:`\pi/<span class="num">2</span>`].

.. math::
   arcsin([-<span class="num">1</span>, -<span class="num">.707</span>, <span class="num">0</span>, <span class="num">.707</span>, <span class="num">1</span>]) = [-\pi/<span class="num">2</span>, -\pi/<span class="num">4</span>, <span class="num">0</span>, \pi/<span class="num">4</span>, \pi/<span class="num">2</span>]

The storage <span class="kw">type</span> of ``arcsin`` output depends upon the input storage <span class="kw">type</span>:

   - arcsin(default) = default
   - arcsin(row_sparse) = row_sparse
   - arcsin(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_trig.cc:L187</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#arcsinh" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="arcsinh(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="arcsinh(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">arcsinh</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@arcsinh(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the element-wise inverse hyperbolic sine of the input array, \
computed element-wise.

The storage <span class="kw">type</span> of ``arcsinh`` output depends upon the input storage <span class="kw">type</span>:

   - arcsinh(default) = default
   - arcsinh(row_sparse) = row_sparse
   - arcsinh(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_trig.cc:L494</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#arctan" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="arctan(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="arctan(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">arctan</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@arctan(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise inverse tangent of the input array.

The output is in the closed interval :math:`[-\pi/<span class="num">2</span>, \pi/<span class="num">2</span>]`

.. math::
   arctan([-<span class="num">1</span>, <span class="num">0</span>, <span class="num">1</span>]) = [-\pi/<span class="num">4</span>, <span class="num">0</span>, \pi/<span class="num">4</span>]

The storage <span class="kw">type</span> of ``arctan`` output depends upon the input storage <span class="kw">type</span>:

   - arctan(default) = default
   - arctan(row_sparse) = row_sparse
   - arctan(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_trig.cc:L282</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#arctanh" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="arctanh(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="arctanh(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">arctanh</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@arctanh(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the element-wise inverse hyperbolic tangent of the input array, \
computed element-wise.

The storage <span class="kw">type</span> of ``arctanh`` output depends upon the input storage <span class="kw">type</span>:

   - arctanh(default) = default
   - arctanh(row_sparse) = row_sparse
   - arctanh(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_trig.cc:L579</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#argmax" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="argmax(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="argmax(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">argmax</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@argmax(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns indices of the maximum values along an axis.

In the <span class="kw">case</span> of multiple occurrences of maximum values, the indices corresponding to the first occurrence
are returned.

Examples::

  x = `[ [ <span class="num">0.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>],
       [ <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">5.</span>] ]

  <span class="cmt">// argmax along axis 0</span>
  argmax(x, axis=<span class="num">0</span>) = [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>]

  <span class="cmt">// argmax along axis 1</span>
  argmax(x, axis=<span class="num">1</span>) = [ <span class="num">2.</span>,  <span class="num">2.</span>]

  <span class="cmt">// argmax along axis 1 keeping same dims as an input array</span>
  argmax(x, axis=<span class="num">1</span>, keepdims=True) = `[ [ <span class="num">2.</span>],
                                      [ <span class="num">2.</span>] ]



Defined in src/operator/tensor/broadcast_reduce_op_index.cc:L52</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#argmax_channel" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="argmax_channel(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="argmax_channel(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">argmax_channel</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@argmax_channel(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns argmax indices of each channel from the input array.

The result will be an NDArray of shape (num_channel,).

In <span class="kw">case</span> of multiple occurrences of the maximum values, the indices corresponding to the first occurrence
are returned.

Examples::

  x = `[ [ <span class="num">0.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>],
       [ <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">5.</span>] ]

  argmax_channel(x) = [ <span class="num">2.</span>,  <span class="num">2.</span>]



Defined in src/operator/tensor/broadcast_reduce_op_index.cc:L97</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#argmin" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="argmin(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="argmin(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">argmin</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@argmin(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns indices of the minimum values along an axis.

In the <span class="kw">case</span> of multiple occurrences of minimum values, the indices corresponding to the first occurrence
are returned.

Examples::

  x = `[ [ <span class="num">0.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>],
       [ <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">5.</span>] ]

  <span class="cmt">// argmin along axis 0</span>
  argmin(x, axis=<span class="num">0</span>) = [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>]

  <span class="cmt">// argmin along axis 1</span>
  argmin(x, axis=<span class="num">1</span>) = [ <span class="num">0.</span>,  <span class="num">0.</span>]

  <span class="cmt">// argmin along axis 1 keeping same dims as an input array</span>
  argmin(x, axis=<span class="num">1</span>, keepdims=True) = `[ [ <span class="num">0.</span>],
                                      [ <span class="num">0.</span>] ]



Defined in src/operator/tensor/broadcast_reduce_op_index.cc:L77</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#argsort" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="argsort(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="argsort(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">argsort</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@argsort(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the indices that would sort an input array along the given axis.

This function performs sorting along the given axis and returns an array of indices having same shape
as an input array that index data in sorted order.

Examples::

  x = `[ [ <span class="num">0.3</span>,  <span class="num">0.2</span>,  <span class="num">0.4</span>],
       [ <span class="num">0.1</span>,  <span class="num">0.3</span>,  <span class="num">0.2</span>] ]

  <span class="cmt">// sort along axis -1</span>
  argsort(x) = `[ [ <span class="num">1.</span>,  <span class="num">0.</span>,  <span class="num">2.</span>],
                [ <span class="num">0.</span>,  <span class="num">2.</span>,  <span class="num">1.</span>] ]

  <span class="cmt">// sort along axis 0</span>
  argsort(x, axis=<span class="num">0</span>) = `[ [ <span class="num">1.</span>,  <span class="num">0.</span>,  <span class="num">1.</span>]
                        [ <span class="num">0.</span>,  <span class="num">1.</span>,  <span class="num">0.</span>] ]

  <span class="cmt">// flatten and then sort</span>
  argsort(x, axis=<span class="std">None</span>) = [ <span class="num">3.</span>,  <span class="num">1.</span>,  <span class="num">5.</span>,  <span class="num">0.</span>,  <span class="num">4.</span>,  <span class="num">2.</span>]


Defined in src/operator/tensor/ordering_op.cc:L185</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#batch_dot" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="batch_dot(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="batch_dot(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">batch_dot</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@batch_dot(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Batchwise dot product.

``batch_dot`` is used to compute dot product of ``x`` and ``y`` when ``x`` and
``y`` are data in batch, namely N-D (N &gt;= <span class="num">3</span>) arrays in shape of `(B0, ..., B_i, :, :)`.

For example, given ``x`` <span class="kw">with</span> shape `(B_0, ..., B_i, N, M)` and ``y`` <span class="kw">with</span> shape
`(B_0, ..., B_i, M, K)`, the result array will have shape `(B_0, ..., B_i, N, K)`,
which is computed by::

   batch_dot(x,y)[b_0, ..., b_i, :, :] = dot(x[b_0, ..., b_i, :, :], y[b_0, ..., b_i, :, :])



Defined in src/operator/tensor/dot.cc:L127</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#batch_take" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="batch_take(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="batch_take(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">batch_take</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@batch_take(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Takes elements from a data batch.

.. note::
  `batch_take` is deprecated. Use `pick` instead.

Given an input array of shape ``(d0, d1)`` and indices of shape ``(i0,)``, the result will be
an output array of shape ``(i0,)`` <span class="kw">with</span>::

  output[i] = input[i, indices[i] ]

Examples::

  x = `[ [ <span class="num">1.</span>,  <span class="num">2.</span>],
       [ <span class="num">3.</span>,  <span class="num">4.</span>],
       [ <span class="num">5.</span>,  <span class="num">6.</span>] ]

  <span class="cmt">// takes elements with specified indices</span>
  batch_take(x, [<span class="num">0</span>,<span class="num">1</span>,<span class="num">0</span>]) = [ <span class="num">1.</span>  <span class="num">4.</span>  <span class="num">5.</span>]



Defined in src/operator/tensor/indexing_op.cc:L836</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_add" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_add(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_add(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_add</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_add(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise sum of the input arrays <span class="kw">with</span> broadcasting.

`broadcast_plus` is an alias to the function `broadcast_add`.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

   y = `[ [ <span class="num">0.</span>],
        [ <span class="num">1.</span>] ]

   broadcast_add(x, y) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                          [ <span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>] ]

   broadcast_plus(x, y) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                           [ <span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>] ]

Supported sparse operations:

   broadcast_add(csr, dense(<span class="num">1</span>D)) = dense
   broadcast_add(dense(<span class="num">1</span>D), csr) = dense



Defined in src/operator/tensor/elemwise_binary_broadcast_op_basic.cc:L58</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_axes" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_axes(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_axes(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_axes</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_axes(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Broadcasts the input array over particular axes.

Broadcasting is allowed on axes <span class="kw">with</span> size <span class="num">1</span>, such as from `(<span class="num">2</span>,<span class="num">1</span>,<span class="num">3</span>,<span class="num">1</span>)` to
`(<span class="num">2</span>,<span class="num">8</span>,<span class="num">3</span>,<span class="num">9</span>)`. Elements will be duplicated on the broadcasted axes.

`broadcast_axes` is an alias to the function `broadcast_axis`.

Example::

   <span class="cmt">// given x of shape (1,2,1)</span>
   x = `[ `[ [ <span class="num">1.</span>],
         [ <span class="num">2.</span>] ] ]

   <span class="cmt">// broadcast x on on axis 2</span>
   broadcast_axis(x, axis=<span class="num">2</span>, size=<span class="num">3</span>) = `[ `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                                         [ <span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>] ] ]
   <span class="cmt">// broadcast x on on axes 0 and 2</span>
   broadcast_axis(x, axis=(<span class="num">0</span>,<span class="num">2</span>), size=(<span class="num">2</span>,<span class="num">3</span>)) = `[ `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                                                 [ <span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>] ],
                                                `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                                                 [ <span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>] ] ]


Defined in src/operator/tensor/broadcast_reduce_op_value.cc:L93</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_axis" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_axis(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_axis(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_axis</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_axis(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Broadcasts the input array over particular axes.

Broadcasting is allowed on axes <span class="kw">with</span> size <span class="num">1</span>, such as from `(<span class="num">2</span>,<span class="num">1</span>,<span class="num">3</span>,<span class="num">1</span>)` to
`(<span class="num">2</span>,<span class="num">8</span>,<span class="num">3</span>,<span class="num">9</span>)`. Elements will be duplicated on the broadcasted axes.

`broadcast_axes` is an alias to the function `broadcast_axis`.

Example::

   <span class="cmt">// given x of shape (1,2,1)</span>
   x = `[ `[ [ <span class="num">1.</span>],
         [ <span class="num">2.</span>] ] ]

   <span class="cmt">// broadcast x on on axis 2</span>
   broadcast_axis(x, axis=<span class="num">2</span>, size=<span class="num">3</span>) = `[ `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                                         [ <span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>] ] ]
   <span class="cmt">// broadcast x on on axes 0 and 2</span>
   broadcast_axis(x, axis=(<span class="num">0</span>,<span class="num">2</span>), size=(<span class="num">2</span>,<span class="num">3</span>)) = `[ `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                                                 [ <span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>] ],
                                                `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                                                 [ <span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>] ] ]


Defined in src/operator/tensor/broadcast_reduce_op_value.cc:L93</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_div" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_div(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_div(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_div</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_div(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise division of the input arrays <span class="kw">with</span> broadcasting.

Example::

   x = `[ [ <span class="num">6.</span>,  <span class="num">6.</span>,  <span class="num">6.</span>],
        [ <span class="num">6.</span>,  <span class="num">6.</span>,  <span class="num">6.</span>] ]

   y = `[ [ <span class="num">2.</span>],
        [ <span class="num">3.</span>] ]

   broadcast_div(x, y) = `[ [ <span class="num">3.</span>,  <span class="num">3.</span>,  <span class="num">3.</span>],
                          [ <span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>] ]

Supported sparse operations:

   broadcast_div(csr, dense(<span class="num">1</span>D)) = csr



Defined in src/operator/tensor/elemwise_binary_broadcast_op_basic.cc:L187</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_equal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_equal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_equal(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_equal</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_equal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the result of element-wise **equal to** (==) comparison operation <span class="kw">with</span> broadcasting.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

   y = `[ [ <span class="num">0.</span>],
        [ <span class="num">1.</span>] ]

   broadcast_equal(x, y) = `[ [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>],
                            [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]



Defined in src/operator/tensor/elemwise_binary_broadcast_op_logic.cc:L46</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_greater" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_greater(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_greater(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_greater</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_greater(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the result of element-wise **greater than** (&gt;) comparison operation <span class="kw">with</span> broadcasting.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

   y = `[ [ <span class="num">0.</span>],
        [ <span class="num">1.</span>] ]

   broadcast_greater(x, y) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                              [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>] ]



Defined in src/operator/tensor/elemwise_binary_broadcast_op_logic.cc:L82</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_greater_equal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_greater_equal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_greater_equal(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_greater_equal</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_greater_equal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the result of element-wise **greater than or equal to** (&gt;=) comparison operation <span class="kw">with</span> broadcasting.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

   y = `[ [ <span class="num">0.</span>],
        [ <span class="num">1.</span>] ]

   broadcast_greater_equal(x, y) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                                    [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]



Defined in src/operator/tensor/elemwise_binary_broadcast_op_logic.cc:L100</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_hypot" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_hypot(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_hypot(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_hypot</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_hypot(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre> Returns the hypotenuse of a right angled triangle, given its <span class="lit">"legs"</span>
<span class="kw">with</span> broadcasting.

It is equivalent to doing :math:`sqrt(x_1^<span class="num">2</span> + x_2^<span class="num">2</span>)`.

Example::

   x = `[ [ <span class="num">3.</span>,  <span class="num">3.</span>,  <span class="num">3.</span>] ]

   y = `[ [ <span class="num">4.</span>],
        [ <span class="num">4.</span>] ]

   broadcast_hypot(x, y) = `[ [ <span class="num">5.</span>,  <span class="num">5.</span>,  <span class="num">5.</span>],
                            [ <span class="num">5.</span>,  <span class="num">5.</span>,  <span class="num">5.</span>] ]

   z = `[ [ <span class="num">0.</span>],
        [ <span class="num">4.</span>] ]

   broadcast_hypot(x, z) = `[ [ <span class="num">3.</span>,  <span class="num">3.</span>,  <span class="num">3.</span>],
                            [ <span class="num">5.</span>,  <span class="num">5.</span>,  <span class="num">5.</span>] ]



Defined in src/operator/tensor/elemwise_binary_broadcast_op_extended.cc:L158</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_lesser" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_lesser(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_lesser(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_lesser</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_lesser(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the result of element-wise **lesser than** (&lt;) comparison operation <span class="kw">with</span> broadcasting.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

   y = `[ [ <span class="num">0.</span>],
        [ <span class="num">1.</span>] ]

   broadcast_lesser(x, y) = `[ [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>],
                             [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>] ]



Defined in src/operator/tensor/elemwise_binary_broadcast_op_logic.cc:L118</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_lesser_equal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_lesser_equal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_lesser_equal(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_lesser_equal</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_lesser_equal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the result of element-wise **lesser than or equal to** (&lt;=) comparison operation <span class="kw">with</span> broadcasting.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

   y = `[ [ <span class="num">0.</span>],
        [ <span class="num">1.</span>] ]

   broadcast_lesser_equal(x, y) = `[ [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>],
                                   [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]



Defined in src/operator/tensor/elemwise_binary_broadcast_op_logic.cc:L136</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_like" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_like(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_like(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_like</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_like(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Broadcasts lhs to have the same shape as rhs.

Broadcasting is a mechanism that allows NDArrays to perform arithmetic operations
<span class="kw">with</span> arrays of different shapes efficiently without creating multiple copies of arrays.
Also see, `Broadcasting &lt;https:<span class="cmt">//docs.scipy.org/doc/numpy/user/basics.broadcasting.html>`_ for more explanation.</span>

Broadcasting is allowed on axes <span class="kw">with</span> size <span class="num">1</span>, such as from `(<span class="num">2</span>,<span class="num">1</span>,<span class="num">3</span>,<span class="num">1</span>)` to
`(<span class="num">2</span>,<span class="num">8</span>,<span class="num">3</span>,<span class="num">9</span>)`. Elements will be duplicated on the broadcasted axes.

For example::

   broadcast_like(`[ [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>] ], `[ [<span class="num">5</span>,<span class="num">6</span>,<span class="num">7</span>],[<span class="num">7</span>,<span class="num">8</span>,<span class="num">9</span>] ]) = `[ [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>],
                                                   [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>] ])

   broadcast_like([<span class="num">9</span>], [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>,<span class="num">5</span>], lhs_axes=(<span class="num">0</span>,), rhs_axes=(-<span class="num">1</span>,)) = [<span class="num">9</span>,<span class="num">9</span>,<span class="num">9</span>,<span class="num">9</span>,<span class="num">9</span>]



Defined in src/operator/tensor/broadcast_reduce_op_value.cc:L170</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_logical_and" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_logical_and(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_logical_and(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_logical_and</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_logical_and(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the result of element-wise **logical and** <span class="kw">with</span> broadcasting.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

   y = `[ [ <span class="num">0.</span>],
        [ <span class="num">1.</span>] ]

   broadcast_logical_and(x, y) = `[ [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>],
                                  [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]



Defined in src/operator/tensor/elemwise_binary_broadcast_op_logic.cc:L154</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_logical_or" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_logical_or(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_logical_or(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_logical_or</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_logical_or(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the result of element-wise **logical or** <span class="kw">with</span> broadcasting.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">0.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">0.</span>] ]

   y = `[ [ <span class="num">1.</span>],
        [ <span class="num">0.</span>] ]

   broadcast_logical_or(x, y) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                                 [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">0.</span>] ]



Defined in src/operator/tensor/elemwise_binary_broadcast_op_logic.cc:L172</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_logical_xor" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_logical_xor(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_logical_xor(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_logical_xor</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_logical_xor(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the result of element-wise **logical xor** <span class="kw">with</span> broadcasting.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">0.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">0.</span>] ]

   y = `[ [ <span class="num">1.</span>],
        [ <span class="num">0.</span>] ]

   broadcast_logical_xor(x, y) = `[ [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">1.</span>],
                                  [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">0.</span>] ]



Defined in src/operator/tensor/elemwise_binary_broadcast_op_logic.cc:L190</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_maximum" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_maximum(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_maximum(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_maximum</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_maximum(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise maximum of the input arrays <span class="kw">with</span> broadcasting.

This function compares two input arrays and returns a <span class="kw">new</span> array having the element-wise maxima.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

   y = `[ [ <span class="num">0.</span>],
        [ <span class="num">1.</span>] ]

   broadcast_maximum(x, y) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                              [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]



Defined in src/operator/tensor/elemwise_binary_broadcast_op_extended.cc:L81</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_minimum" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_minimum(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_minimum(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_minimum</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_minimum(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise minimum of the input arrays <span class="kw">with</span> broadcasting.

This function compares two input arrays and returns a <span class="kw">new</span> array having the element-wise minima.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

   y = `[ [ <span class="num">0.</span>],
        [ <span class="num">1.</span>] ]

   broadcast_maximum(x, y) = `[ [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>],
                              [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]



Defined in src/operator/tensor/elemwise_binary_broadcast_op_extended.cc:L117</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_minus" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_minus(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_minus(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_minus</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_minus(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise difference of the input arrays <span class="kw">with</span> broadcasting.

`broadcast_minus` is an alias to the function `broadcast_sub`.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

   y = `[ [ <span class="num">0.</span>],
        [ <span class="num">1.</span>] ]

   broadcast_sub(x, y) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                          [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>] ]

   broadcast_minus(x, y) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                            [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>] ]

Supported sparse operations:

   broadcast_sub/minus(csr, dense(<span class="num">1</span>D)) = dense
   broadcast_sub/minus(dense(<span class="num">1</span>D), csr) = dense



Defined in src/operator/tensor/elemwise_binary_broadcast_op_basic.cc:L106</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_mod" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_mod(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_mod(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_mod</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_mod(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise modulo of the input arrays <span class="kw">with</span> broadcasting.

Example::

   x = `[ [ <span class="num">8.</span>,  <span class="num">8.</span>,  <span class="num">8.</span>],
        [ <span class="num">8.</span>,  <span class="num">8.</span>,  <span class="num">8.</span>] ]

   y = `[ [ <span class="num">2.</span>],
        [ <span class="num">3.</span>] ]

   broadcast_mod(x, y) = `[ [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>],
                          [ <span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>] ]



Defined in src/operator/tensor/elemwise_binary_broadcast_op_basic.cc:L222</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_mul" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_mul(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_mul(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_mul</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_mul(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise product of the input arrays <span class="kw">with</span> broadcasting.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

   y = `[ [ <span class="num">0.</span>],
        [ <span class="num">1.</span>] ]

   broadcast_mul(x, y) = `[ [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>],
                          [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

Supported sparse operations:

   broadcast_mul(csr, dense(<span class="num">1</span>D)) = csr



Defined in src/operator/tensor/elemwise_binary_broadcast_op_basic.cc:L146</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_not_equal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_not_equal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_not_equal(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_not_equal</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_not_equal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the result of element-wise **not equal to** (!=) comparison operation <span class="kw">with</span> broadcasting.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

   y = `[ [ <span class="num">0.</span>],
        [ <span class="num">1.</span>] ]

   broadcast_not_equal(x, y) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                                [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>] ]



Defined in src/operator/tensor/elemwise_binary_broadcast_op_logic.cc:L64</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_plus" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_plus(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_plus(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_plus</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_plus(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise sum of the input arrays <span class="kw">with</span> broadcasting.

`broadcast_plus` is an alias to the function `broadcast_add`.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

   y = `[ [ <span class="num">0.</span>],
        [ <span class="num">1.</span>] ]

   broadcast_add(x, y) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                          [ <span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>] ]

   broadcast_plus(x, y) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                           [ <span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>] ]

Supported sparse operations:

   broadcast_add(csr, dense(<span class="num">1</span>D)) = dense
   broadcast_add(dense(<span class="num">1</span>D), csr) = dense



Defined in src/operator/tensor/elemwise_binary_broadcast_op_basic.cc:L58</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_power" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_power(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_power(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_power</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_power(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns result of first array elements raised to powers from second array, element-wise <span class="kw">with</span> broadcasting.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

   y = `[ [ <span class="num">0.</span>],
        [ <span class="num">1.</span>] ]

   broadcast_power(x, y) = `[ [ <span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>],
                            [ <span class="num">4.</span>,  <span class="num">4.</span>,  <span class="num">4.</span>] ]



Defined in src/operator/tensor/elemwise_binary_broadcast_op_extended.cc:L45</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_sub" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_sub(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_sub(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_sub</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_sub(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise difference of the input arrays <span class="kw">with</span> broadcasting.

`broadcast_minus` is an alias to the function `broadcast_sub`.

Example::

   x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
        [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

   y = `[ [ <span class="num">0.</span>],
        [ <span class="num">1.</span>] ]

   broadcast_sub(x, y) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                          [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>] ]

   broadcast_minus(x, y) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                            [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>] ]

Supported sparse operations:

   broadcast_sub/minus(csr, dense(<span class="num">1</span>D)) = dense
   broadcast_sub/minus(dense(<span class="num">1</span>D), csr) = dense



Defined in src/operator/tensor/elemwise_binary_broadcast_op_basic.cc:L106</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#broadcast_to" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_to(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="broadcast_to(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">broadcast_to</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@broadcast_to(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Broadcasts the input array to a <span class="kw">new</span> shape.

Broadcasting is a mechanism that allows NDArrays to perform arithmetic operations
<span class="kw">with</span> arrays of different shapes efficiently without creating multiple copies of arrays.
Also see, `Broadcasting &lt;https:<span class="cmt">//docs.scipy.org/doc/numpy/user/basics.broadcasting.html>`_ for more explanation.</span>

Broadcasting is allowed on axes <span class="kw">with</span> size <span class="num">1</span>, such as from `(<span class="num">2</span>,<span class="num">1</span>,<span class="num">3</span>,<span class="num">1</span>)` to
`(<span class="num">2</span>,<span class="num">8</span>,<span class="num">3</span>,<span class="num">9</span>)`. Elements will be duplicated on the broadcasted axes.

For example::

   broadcast_to(`[ [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>] ], shape=(<span class="num">2</span>,<span class="num">3</span>)) = `[ [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>],
                                           [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>] ])

The dimension which you <span class="kw">do</span> not want to change can also be kept as `<span class="num">0</span>` which means copy the original value.
So <span class="kw">with</span> `shape=(<span class="num">2</span>,<span class="num">0</span>)`, we will obtain the same result as in the above example.



Defined in src/operator/tensor/broadcast_reduce_op_value.cc:L117</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#cast" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="cast(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="cast(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">cast</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@cast(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Casts all elements of the input to a <span class="kw">new</span> <span class="kw">type</span>.

.. note:: ``Cast`` is deprecated. Use ``cast`` instead.

Example::

   cast([<span class="num">0.9</span>, <span class="num">1.3</span>], dtype=<span class="lit">'int32'</span>) = [<span class="num">0</span>, <span class="num">1</span>]
   cast([<span class="num">1</span>e20, <span class="num">11.1</span>], dtype='float16') = [inf, <span class="num">11.09375</span>]
   cast([<span class="num">300</span>, <span class="num">11.1</span>, <span class="num">10.9</span>, -<span class="num">1</span>, -<span class="num">3</span>], dtype=<span class="lit">'uint8'</span>) = [<span class="num">44</span>, <span class="num">11</span>, <span class="num">10</span>, <span class="num">255</span>, <span class="num">253</span>]



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L664</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#cast_storage" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="cast_storage(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="cast_storage(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">cast_storage</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@cast_storage(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Casts tensor storage <span class="kw">type</span> to the <span class="kw">new</span> <span class="kw">type</span>.

When an NDArray <span class="kw">with</span> default storage <span class="kw">type</span> is cast to csr or row_sparse storage,
the result is compact, which means:

- <span class="kw">for</span> csr, zero values will not be retained
- <span class="kw">for</span> row_sparse, row slices of all zeros will not be retained

The storage <span class="kw">type</span> of ``cast_storage`` output depends on stype parameter:

- cast_storage(csr, 'default') = default
- cast_storage(row_sparse, 'default') = default
- cast_storage(default, <span class="lit">'csr'</span>) = csr
- cast_storage(default, 'row_sparse') = row_sparse
- cast_storage(csr, <span class="lit">'csr'</span>) = csr
- cast_storage(row_sparse, 'row_sparse') = row_sparse

Example::

    dense = `[ [ <span class="num">0.</span>,  <span class="num">1.</span>,  <span class="num">0.</span>],
             [ <span class="num">2.</span>,  <span class="num">0.</span>,  <span class="num">3.</span>],
             [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>],
             [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>] ]

    # cast to row_sparse storage <span class="kw">type</span>
    rsp = cast_storage(dense, 'row_sparse')
    rsp.indices = [<span class="num">0</span>, <span class="num">1</span>]
    rsp.values = `[ [ <span class="num">0.</span>,  <span class="num">1.</span>,  <span class="num">0.</span>],
                  [ <span class="num">2.</span>,  <span class="num">0.</span>,  <span class="num">3.</span>] ]

    # cast to csr storage <span class="kw">type</span>
    csr = cast_storage(dense, <span class="lit">'csr'</span>)
    csr.indices = [<span class="num">1</span>, <span class="num">0</span>, <span class="num">2</span>]
    csr.values = [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>]
    csr.indptr = [<span class="num">0</span>, <span class="num">1</span>, <span class="num">3</span>, <span class="num">3</span>, <span class="num">3</span>]



Defined in src/operator/tensor/cast_storage.cc:L71</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#cbrt" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="cbrt(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="cbrt(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">cbrt</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@cbrt(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise cube-root value of the input.

.. math::
   cbrt(x) = \sqrt[<span class="num">3</span>]{x}

Example::

   cbrt([<span class="num">1</span>, <span class="num">8</span>, -<span class="num">125</span>]) = [<span class="num">1</span>, <span class="num">2</span>, -<span class="num">5</span>]

The storage <span class="kw">type</span> of ``cbrt`` output depends upon the input storage <span class="kw">type</span>:

   - cbrt(default) = default
   - cbrt(row_sparse) = row_sparse
   - cbrt(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_pow.cc:L270</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#ceil" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="ceil(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="ceil(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">ceil</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@ceil(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise ceiling of the input.

The ceil of the scalar x is the smallest integer i, such that i &gt;= x.

Example::

   ceil([-<span class="num">2.1</span>, -<span class="num">1.9</span>, <span class="num">1.5</span>, <span class="num">1.9</span>, <span class="num">2.1</span>]) = [-<span class="num">2.</span>, -<span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>]

The storage <span class="kw">type</span> of ``ceil`` output depends upon the input storage <span class="kw">type</span>:

   - ceil(default) = default
   - ceil(row_sparse) = row_sparse
   - ceil(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L817</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#choose_element_0index" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="choose_element_0index(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="choose_element_0index(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">choose_element_0index</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@choose_element_0index(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Picks elements from an input array according to the input indices along the given axis.

Given an input array of shape ``(d0, d1)`` and indices of shape ``(i0,)``, the result will be
an output array of shape ``(i0,)`` <span class="kw">with</span>::

  output[i] = input[i, indices[i] ]

By default, <span class="kw">if</span> any index mentioned is too large, it is replaced by the index that addresses
the last element along an axis (the `clip` mode).

This function supports n-dimensional input and (n-<span class="num">1</span>)-dimensional indices arrays.

Examples::

  x = `[ [ <span class="num">1.</span>,  <span class="num">2.</span>],
       [ <span class="num">3.</span>,  <span class="num">4.</span>],
       [ <span class="num">5.</span>,  <span class="num">6.</span>] ]

  <span class="cmt">// picks elements with specified indices along axis 0</span>
  pick(x, y=[<span class="num">0</span>,<span class="num">1</span>], <span class="num">0</span>) = [ <span class="num">1.</span>,  <span class="num">4.</span>]

  <span class="cmt">// picks elements with specified indices along axis 1</span>
  pick(x, y=[<span class="num">0</span>,<span class="num">1</span>,<span class="num">0</span>], <span class="num">1</span>) = [ <span class="num">1.</span>,  <span class="num">4.</span>,  <span class="num">5.</span>]

  <span class="cmt">// picks elements with specified indices along axis 1 using 'wrap' mode</span>
  <span class="cmt">// to place indicies that would normally be out of bounds</span>
  pick(x, y=[<span class="num">2</span>,-<span class="num">1</span>,-<span class="num">2</span>], <span class="num">1</span>, mode=<span class="lit">'wrap'</span>) = [ <span class="num">1.</span>,  <span class="num">4.</span>,  <span class="num">5.</span>]

  y = `[ [ <span class="num">1.</span>],
       [ <span class="num">0.</span>],
       [ <span class="num">2.</span>] ]

  <span class="cmt">// picks elements with specified indices along axis 1 and dims are maintained</span>
  pick(x, y, <span class="num">1</span>, keepdims=True) = `[ [ <span class="num">2.</span>],
                                 [ <span class="num">3.</span>],
                                 [ <span class="num">6.</span>] ]



Defined in src/operator/tensor/broadcast_reduce_op_index.cc:L151</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#clip" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="clip(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="clip(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">clip</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@clip(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Clips (limits) the values in an array.
Given an interval, values outside the interval are clipped to the interval edges.
Clipping ``x`` between `a_min` and `a_max` would be::
.. math::
   clip(x, a_min, a_max) = \max(\min(x, a_max), a_min))
Example::
    x = [<span class="num">0</span>, <span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>, <span class="num">4</span>, <span class="num">5</span>, <span class="num">6</span>, <span class="num">7</span>, <span class="num">8</span>, <span class="num">9</span>]
    clip(x,<span class="num">1</span>,<span class="num">8</span>) = [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">5.</span>,  <span class="num">6.</span>,  <span class="num">7.</span>,  <span class="num">8.</span>,  <span class="num">8.</span>]
The storage <span class="kw">type</span> of ``clip`` output depends on storage types of inputs and the a_min, a_max \
parameter values:
   - clip(default) = default
   - clip(row_sparse, a_min &lt;= <span class="num">0</span>, a_max &gt;= <span class="num">0</span>) = row_sparse
   - clip(csr, a_min &lt;= <span class="num">0</span>, a_max &gt;= <span class="num">0</span>) = csr
   - clip(row_sparse, a_min &lt; <span class="num">0</span>, a_max &lt; <span class="num">0</span>) = default
   - clip(row_sparse, a_min &gt; <span class="num">0</span>, a_max &gt; <span class="num">0</span>) = default
   - clip(csr, a_min &lt; <span class="num">0</span>, a_max &lt; <span class="num">0</span>) = csr
   - clip(csr, a_min &gt; <span class="num">0</span>, a_max &gt; <span class="num">0</span>) = csr


Defined in src/operator/tensor/matrix_op.cc:L677</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#col2im" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="col2im(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="col2im(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">col2im</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@col2im(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Combining the output column matrix of im2col back to image array.

Like :<span class="kw">class</span>:`~mxnet.ndarray.im2col`, <span class="kw">this</span> operator is also used in the vanilla convolution
implementation. Despite the name, col2im is not the reverse operation of im2col. Since there
may be overlaps between neighbouring sliding blocks, the column elements cannot be directly
put back into image. Instead, they are accumulated (i.e., summed) in the input image
just like the gradient computation, so col2im is the gradient of im2col and vice versa.

Using the notation in im2col, given an input column array of shape
:math:`(N, C \times  \prod(\text{kernel}), W)`, <span class="kw">this</span> operator accumulates the column elements
into output array of shape :math:`(N, C, \text{output_size}[<span class="num">0</span>], \text{output_size}[<span class="num">1</span>], \dots)`.
Only <span class="num">1</span>-D, <span class="num">2</span>-D and <span class="num">3</span>-D of spatial dimension is supported in <span class="kw">this</span> operator.



Defined in src/operator/nn/im2col.cc:L182</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#concat" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="concat(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="concat(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">concat</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@concat(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Joins input arrays along a given axis.

.. note:: `Concat` is deprecated. Use `concat` instead.

The dimensions of the input arrays should be the same except the axis along
which they will be concatenated.
The dimension of the output array along the concatenated axis will be equal
to the sum of the corresponding dimensions of the input arrays.

The storage <span class="kw">type</span> of ``concat`` output depends on storage types of inputs

- concat(csr, csr, ..., csr, dim=<span class="num">0</span>) = csr
- otherwise, ``concat`` generates output <span class="kw">with</span> default storage

Example::

   x = `[ [<span class="num">1</span>,<span class="num">1</span>],[<span class="num">2</span>,<span class="num">2</span>] ]
   y = `[ [<span class="num">3</span>,<span class="num">3</span>],[<span class="num">4</span>,<span class="num">4</span>],[<span class="num">5</span>,<span class="num">5</span>] ]
   z = `[ [<span class="num">6</span>,<span class="num">6</span>], [<span class="num">7</span>,<span class="num">7</span>],[<span class="num">8</span>,<span class="num">8</span>] ]

   concat(x,y,z,dim=<span class="num">0</span>) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>],
                          [ <span class="num">2.</span>,  <span class="num">2.</span>],
                          [ <span class="num">3.</span>,  <span class="num">3.</span>],
                          [ <span class="num">4.</span>,  <span class="num">4.</span>],
                          [ <span class="num">5.</span>,  <span class="num">5.</span>],
                          [ <span class="num">6.</span>,  <span class="num">6.</span>],
                          [ <span class="num">7.</span>,  <span class="num">7.</span>],
                          [ <span class="num">8.</span>,  <span class="num">8.</span>] ]

   Note that you cannot concat x,y,z along dimension <span class="num">1</span> since dimension
   <span class="num">0</span> is not the same <span class="kw">for</span> all the input arrays.

   concat(y,z,dim=<span class="num">1</span>) = `[ [ <span class="num">3.</span>,  <span class="num">3.</span>,  <span class="num">6.</span>,  <span class="num">6.</span>],
                         [ <span class="num">4.</span>,  <span class="num">4.</span>,  <span class="num">7.</span>,  <span class="num">7.</span>],
                         [ <span class="num">5.</span>,  <span class="num">5.</span>,  <span class="num">8.</span>,  <span class="num">8.</span>] ]



Defined in src/operator/nn/concat.cc:L385</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#cos" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="cos(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="cos(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">cos</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@cos(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the element-wise cosine of the input array.

The input should be in radians (:math:`<span class="num">2</span>\pi` rad equals <span class="num">360</span> degrees).

.. math::
   cos([<span class="num">0</span>, \pi/<span class="num">4</span>, \pi/<span class="num">2</span>]) = [<span class="num">1</span>, <span class="num">0.707</span>, <span class="num">0</span>]

The storage <span class="kw">type</span> of ``cos`` output is always dense



Defined in src/operator/tensor/elemwise_unary_op_trig.cc:L90</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#cosh" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="cosh(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="cosh(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">cosh</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@cosh(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the hyperbolic cosine  of the input array, computed element-wise.

.. math::
   cosh(x) = <span class="num">0.5</span>\times(exp(x) + exp(-x))

The storage <span class="kw">type</span> of ``cosh`` output is always dense



Defined in src/operator/tensor/elemwise_unary_op_trig.cc:L409</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#crop" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="crop(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="crop(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">crop</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@crop(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Slices a region of the array.
.. note:: ``crop`` is deprecated. Use ``slice`` instead.
This function returns a sliced array between the indices given
by `begin` and `end` <span class="kw">with</span> the corresponding `step`.
For an input array of ``shape=(d_0, d_1, ..., d_n-<span class="num">1</span>)``,
slice operation <span class="kw">with</span> ``begin=(b_0, b_1...b_m-<span class="num">1</span>)``,
``end=(e_0, e_1, ..., e_m-<span class="num">1</span>)``, and ``step=(s_0, s_1, ..., s_m-<span class="num">1</span>)``,
where m &lt;= n, results in an array <span class="kw">with</span> the shape
``(|e_0-b_0|/|s_0|, ..., |e_m-<span class="num">1</span>-b_m-<span class="num">1</span>|/|s_m-<span class="num">1</span>|, d_m, ..., d_n-<span class="num">1</span>)``.
The resulting array's *k*-th dimension contains elements
from the *k*-th dimension of the input array starting
from index ``b_k`` (inclusive) <span class="kw">with</span> step ``s_k``
until reaching ``e_k`` (exclusive).
If the *k*-th elements are `<span class="std">None</span>` in the sequence of `begin`, `end`,
and `step`, the following rule will be used to set default values.
If `s_k` is `<span class="std">None</span>`, set `s_k=<span class="num">1</span>`. If `s_k &gt; <span class="num">0</span>`, set `b_k=<span class="num">0</span>`, `e_k=d_k`;
<span class="kw">else</span>, set `b_k=d_k-<span class="num">1</span>`, `e_k=-<span class="num">1</span>`.
The storage <span class="kw">type</span> of ``slice`` output depends on storage types of inputs
- slice(csr) = csr
- otherwise, ``slice`` generates output <span class="kw">with</span> default storage
.. note:: When input data storage <span class="kw">type</span> is csr, it only supports
   step=(), or step=(<span class="std">None</span>,), or step=(<span class="num">1</span>,) to generate a csr output.
   For other step parameter values, it falls back to slicing
   a dense tensor.
Example::
  x = `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>,   <span class="num">4.</span>],
       [  <span class="num">5.</span>,   <span class="num">6.</span>,   <span class="num">7.</span>,   <span class="num">8.</span>],
       [  <span class="num">9.</span>,  <span class="num">10.</span>,  <span class="num">11.</span>,  <span class="num">12.</span>] ]
  slice(x, begin=(<span class="num">0</span>,<span class="num">1</span>), end=(<span class="num">2</span>,<span class="num">4</span>)) = `[ [ <span class="num">2.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>],
                                     [ <span class="num">6.</span>,  <span class="num">7.</span>,  <span class="num">8.</span>] ]
  slice(x, begin=(<span class="std">None</span>, <span class="num">0</span>), end=(<span class="std">None</span>, <span class="num">3</span>), step=(-<span class="num">1</span>, <span class="num">2</span>)) = `[ [<span class="num">9.</span>, <span class="num">11.</span>],
                                                            [<span class="num">5.</span>,  <span class="num">7.</span>],
                                                            [<span class="num">1.</span>,  <span class="num">3.</span>] ]


Defined in src/operator/tensor/matrix_op.cc:L482</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#ctc_loss" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="ctc_loss(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="ctc_loss(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">ctc_loss</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@ctc_loss(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Connectionist Temporal Classification Loss.

.. note:: The existing alias ``contrib_CTCLoss`` is deprecated.

The shapes of the inputs and outputs:

- **data**: `(sequence_length, batch_size, alphabet_size)`
- **label**: `(batch_size, label_sequence_length)`
- **out**: `(batch_size)`

The `data` tensor consists of sequences of activation vectors (without applying softmax),
<span class="kw">with</span> i-th channel in the last dimension corresponding to i-th label
<span class="kw">for</span> i between <span class="num">0</span> and alphabet_size-<span class="num">1</span> (i.e always <span class="num">0</span>-indexed).
Alphabet size should include one additional value reserved <span class="kw">for</span> blank label.
When `blank_label` is ``<span class="lit">"first"</span>``, the ``<span class="num">0</span>``-th channel is be reserved <span class="kw">for</span>
activation of blank label, or otherwise <span class="kw">if</span> it is <span class="lit">"last"</span>, ``(alphabet_size-<span class="num">1</span>)``-th channel should be
reserved <span class="kw">for</span> blank label.

``label`` is an index matrix of integers. When `blank_label` is ``<span class="lit">"first"</span>``,
the value <span class="num">0</span> is then reserved <span class="kw">for</span> blank label, and should not be passed in <span class="kw">this</span> matrix. Otherwise,
when `blank_label` is ``<span class="lit">"last"</span>``, the value `(alphabet_size-<span class="num">1</span>)` is reserved <span class="kw">for</span> blank label.

If a sequence of labels is shorter than *label_sequence_length*, use the special
padding value at the end of the sequence to conform it to the correct
length. The padding value is `<span class="num">0</span>` when `blank_label` is ``<span class="lit">"first"</span>``, and `-<span class="num">1</span>` otherwise.

For example, suppose the vocabulary is `[a, b, c]`, and in one batch we have three sequences
<span class="lit">'ba'</span>, <span class="lit">'cbb'</span>, and <span class="lit">'abac'</span>. When `blank_label` is ``<span class="lit">"first"</span>``, we can index the labels as
`{<span class="lit">'a'</span>: <span class="num">1</span>, <span class="lit">'b'</span>: <span class="num">2</span>, <span class="lit">'c'</span>: <span class="num">3</span>}`, and we reserve the <span class="num">0</span>-th channel <span class="kw">for</span> blank label in data tensor.
The resulting `label` tensor should be padded to be::

  `[ [<span class="num">2</span>, <span class="num">1</span>, <span class="num">0</span>, <span class="num">0</span>], [<span class="num">3</span>, <span class="num">2</span>, <span class="num">2</span>, <span class="num">0</span>], [<span class="num">1</span>, <span class="num">2</span>, <span class="num">1</span>, <span class="num">3</span>] ]

When `blank_label` is ``<span class="lit">"last"</span>``, we can index the labels as
`{<span class="lit">'a'</span>: <span class="num">0</span>, <span class="lit">'b'</span>: <span class="num">1</span>, <span class="lit">'c'</span>: <span class="num">2</span>}`, and we reserve the channel index <span class="num">3</span> <span class="kw">for</span> blank label in data tensor.
The resulting `label` tensor should be padded to be::

  `[ [<span class="num">1</span>, <span class="num">0</span>, -<span class="num">1</span>, -<span class="num">1</span>], [<span class="num">2</span>, <span class="num">1</span>, <span class="num">1</span>, -<span class="num">1</span>], [<span class="num">0</span>, <span class="num">1</span>, <span class="num">0</span>, <span class="num">2</span>] ]

``out`` is a list of CTC loss values, one per example in the batch.

See *Connectionist Temporal Classification: Labelling Unsegmented
Sequence Data <span class="kw">with</span> Recurrent Neural Networks*, A. Graves *et al*. <span class="kw">for</span> more
information on the definition and the algorithm.



Defined in src/operator/nn/ctc_loss.cc:L100</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#cumsum" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="cumsum(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="cumsum(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">cumsum</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@cumsum(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Return the cumulative sum of the elements along a given axis.

Defined in src/operator/numpy/np_cumsum.cc:L70</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#degrees" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="degrees(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="degrees(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">degrees</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@degrees(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Converts each element of the input array from radians to degrees.

.. math::
   degrees([<span class="num">0</span>, \pi/<span class="num">2</span>, \pi, <span class="num">3</span>\pi/<span class="num">2</span>, <span class="num">2</span>\pi]) = [<span class="num">0</span>, <span class="num">90</span>, <span class="num">180</span>, <span class="num">270</span>, <span class="num">360</span>]

The storage <span class="kw">type</span> of ``degrees`` output depends upon the input storage <span class="kw">type</span>:

   - degrees(default) = default
   - degrees(row_sparse) = row_sparse
   - degrees(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_trig.cc:L332</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#depth_to_space" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="depth_to_space(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="depth_to_space(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">depth_to_space</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@depth_to_space(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Rearranges(permutes) data from depth into blocks of spatial data.
Similar to ONNX DepthToSpace operator:
https:<span class="cmt">//github.com/onnx/onnx/blob/master/docs/Operators.md#DepthToSpace.</span>
The output is a <span class="kw">new</span> tensor where the values from depth dimension are moved in spatial blocks
to height and width dimension. The reverse of <span class="kw">this</span> operation is ``space_to_depth``.
.. math::
    \begin{gather*}
    x \prime = reshape(x, [N, block\_size, block\_size, C / (block\_size ^ <span class="num">2</span>), H * block\_size, W * block\_size]) \\
    x \prime \prime = transpose(x \prime, [<span class="num">0</span>, <span class="num">3</span>, <span class="num">4</span>, <span class="num">1</span>, <span class="num">5</span>, <span class="num">2</span>]) \\
    y = reshape(x \prime \prime, [N, C / (block\_size ^ <span class="num">2</span>), H * block\_size, W * block\_size])
    \end{gather*}
where :math:`x` is an input tensor <span class="kw">with</span> default layout as :math:`[N, C, H, W]`: [batch, channels, height, width]
and :math:`y` is the output tensor of layout :math:`[N, C / (block\_size ^ <span class="num">2</span>), H * block\_size, W * block\_size]`
Example::
  x = `[ [`[ [<span class="num">0</span>, <span class="num">1</span>, <span class="num">2</span>],
         [<span class="num">3</span>, <span class="num">4</span>, <span class="num">5</span>] ],
        `[ [<span class="num">6</span>, <span class="num">7</span>, <span class="num">8</span>],
         [<span class="num">9</span>, <span class="num">10</span>, <span class="num">11</span>] ],
        `[ [<span class="num">12</span>, <span class="num">13</span>, <span class="num">14</span>],
         [<span class="num">15</span>, <span class="num">16</span>, <span class="num">17</span>] ],
        `[ [<span class="num">18</span>, <span class="num">19</span>, <span class="num">20</span>],
         [<span class="num">21</span>, <span class="num">22</span>, <span class="num">23</span>] ] ] ]
  depth_to_space(x, <span class="num">2</span>) = `[ [`[ [<span class="num">0</span>, <span class="num">6</span>, <span class="num">1</span>, <span class="num">7</span>, <span class="num">2</span>, <span class="num">8</span>],
                            [<span class="num">12</span>, <span class="num">18</span>, <span class="num">13</span>, <span class="num">19</span>, <span class="num">14</span>, <span class="num">20</span>],
                            [<span class="num">3</span>, <span class="num">9</span>, <span class="num">4</span>, <span class="num">10</span>, <span class="num">5</span>, <span class="num">11</span>],
                            [<span class="num">15</span>, <span class="num">21</span>, <span class="num">16</span>, <span class="num">22</span>, <span class="num">17</span>, <span class="num">23</span>] ] ] ]


Defined in src/operator/tensor/matrix_op.cc:L972</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#diag" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="diag(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="diag(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">diag</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@diag(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Extracts a diagonal or constructs a diagonal array.

``diag``'s behavior depends on the input array dimensions:

- <span class="num">1</span>-D arrays: constructs a <span class="num">2</span>-D array <span class="kw">with</span> the input as its diagonal, all other elements are zero.
- N-D arrays: extracts the diagonals of the sub-arrays <span class="kw">with</span> axes specified by ``axis1`` and ``axis2``.
  The output shape would be decided by removing the axes numbered ``axis1`` and ``axis2`` from the
  input shape and appending to the result a <span class="kw">new</span> axis <span class="kw">with</span> the size of the diagonals in question.

  For example, when the input shape is `(<span class="num">2</span>, <span class="num">3</span>, <span class="num">4</span>, <span class="num">5</span>)`, ``axis1`` and ``axis2`` are <span class="num">0</span> and <span class="num">2</span>
  respectively and ``k`` is <span class="num">0</span>, the resulting shape would be `(<span class="num">3</span>, <span class="num">5</span>, <span class="num">2</span>)`.

Examples::

  x = `[ [<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>],
       [<span class="num">4</span>, <span class="num">5</span>, <span class="num">6</span>] ]

  diag(x) = [<span class="num">1</span>, <span class="num">5</span>]

  diag(x, k=<span class="num">1</span>) = [<span class="num">2</span>, <span class="num">6</span>]

  diag(x, k=-<span class="num">1</span>) = [<span class="num">4</span>]

  x = [<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>]

  diag(x) = `[ [<span class="num">1</span>, <span class="num">0</span>, <span class="num">0</span>],
             [<span class="num">0</span>, <span class="num">2</span>, <span class="num">0</span>],
             [<span class="num">0</span>, <span class="num">0</span>, <span class="num">3</span>] ]

  diag(x, k=<span class="num">1</span>) = `[ [<span class="num">0</span>, <span class="num">1</span>, <span class="num">0</span>],
                  [<span class="num">0</span>, <span class="num">0</span>, <span class="num">2</span>],
                  [<span class="num">0</span>, <span class="num">0</span>, <span class="num">0</span>] ]

  diag(x, k=-<span class="num">1</span>) = `[ [<span class="num">0</span>, <span class="num">0</span>, <span class="num">0</span>],
                   [<span class="num">1</span>, <span class="num">0</span>, <span class="num">0</span>],
                   [<span class="num">0</span>, <span class="num">2</span>, <span class="num">0</span>] ]

  x = `[ `[ [<span class="num">1</span>, <span class="num">2</span>],
        [<span class="num">3</span>, <span class="num">4</span>] ],

       `[ [<span class="num">5</span>, <span class="num">6</span>],
        [<span class="num">7</span>, <span class="num">8</span>] ] ]

  diag(x) = `[ [<span class="num">1</span>, <span class="num">7</span>],
             [<span class="num">2</span>, <span class="num">8</span>] ]

  diag(x, k=<span class="num">1</span>) = `[ [<span class="num">3</span>],
                  [<span class="num">4</span>] ]

  diag(x, axis1=-<span class="num">2</span>, axis2=-<span class="num">1</span>) = `[ [<span class="num">1</span>, <span class="num">4</span>],
                                 [<span class="num">5</span>, <span class="num">8</span>] ]



Defined in src/operator/tensor/diag_op.cc:L87</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#dot" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="dot(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="dot(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">dot</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@dot(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Dot product of two arrays.

``dot``'s behavior depends on the input array dimensions:

- <span class="num">1</span>-D arrays: inner product of vectors
- <span class="num">2</span>-D arrays: matrix multiplication
- N-D arrays: a sum product over the last axis of the first input and the first
  axis of the second input

  For example, given <span class="num">3</span>-D ``x`` <span class="kw">with</span> shape `(n,m,k)` and ``y`` <span class="kw">with</span> shape `(k,r,s)`, the
  result array will have shape `(n,m,r,s)`. It is computed by::

    dot(x,y)[i,j,a,b] = sum(x[i,j,:]*y[:,a,b])

  Example::

    x = reshape([<span class="num">0</span>,<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>,<span class="num">5</span>,<span class="num">6</span>,<span class="num">7</span>], shape=(<span class="num">2</span>,<span class="num">2</span>,<span class="num">2</span>))
    y = reshape([<span class="num">7</span>,<span class="num">6</span>,<span class="num">5</span>,<span class="num">4</span>,<span class="num">3</span>,<span class="num">2</span>,<span class="num">1</span>,<span class="num">0</span>], shape=(<span class="num">2</span>,<span class="num">2</span>,<span class="num">2</span>))
    dot(x,y)[<span class="num">0</span>,<span class="num">0</span>,<span class="num">1</span>,<span class="num">1</span>] = <span class="num">0</span>
    sum(x[<span class="num">0</span>,<span class="num">0</span>,:]*y[:,<span class="num">1</span>,<span class="num">1</span>]) = <span class="num">0</span>

The storage <span class="kw">type</span> of ``dot`` output depends on storage types of inputs, transpose option and
forward_stype option <span class="kw">for</span> output storage <span class="kw">type</span>. Implemented sparse operations include:

- dot(default, default, transpose_a=True/False, transpose_b=True/False) = default
- dot(csr, default, transpose_a=True) = default
- dot(csr, default, transpose_a=True) = row_sparse
- dot(csr, default) = default
- dot(csr, row_sparse) = default
- dot(default, csr) = csr (CPU only)
- dot(default, csr, forward_stype='default') = default
- dot(default, csr, transpose_b=True, forward_stype='default') = default

If the combination of input storage types and forward_stype does not <span class="kw">match</span> any of the
above patterns, ``dot`` will fallback and generate output <span class="kw">with</span> default storage.

.. Note::

    If the storage <span class="kw">type</span> of the lhs is <span class="lit">"csr"</span>, the storage <span class="kw">type</span> of gradient w.r.t rhs will be
    <span class="lit">"row_sparse"</span>. Only a subset of optimizers support sparse gradients, including SGD, AdaGrad
    and Adam. Note that by default <span class="kw">lazy</span> updates is turned on, which may perform differently
    from standard updates. For more details, please check the Optimization API at:
    https:<span class="cmt">//mxnet.incubator.apache.org/api/python/optimization/optimization.html</span>



Defined in src/operator/tensor/dot.cc:L77</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#elemwise_add" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="elemwise_add(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="elemwise_add(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">elemwise_add</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@elemwise_add(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Adds arguments element-wise.

The storage <span class="kw">type</span> of ``elemwise_add`` output depends on storage types of inputs

   - elemwise_add(row_sparse, row_sparse) = row_sparse
   - elemwise_add(csr, csr) = csr
   - elemwise_add(default, csr) = default
   - elemwise_add(csr, default) = default
   - elemwise_add(default, rsp) = default
   - elemwise_add(rsp, default) = default
   - otherwise, ``elemwise_add`` generates output <span class="kw">with</span> default storage</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#elemwise_div" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="elemwise_div(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="elemwise_div(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">elemwise_div</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@elemwise_div(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Divides arguments element-wise.

The storage <span class="kw">type</span> of ``elemwise_div`` output is always dense</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#elemwise_mul" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="elemwise_mul(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="elemwise_mul(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">elemwise_mul</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@elemwise_mul(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Multiplies arguments element-wise.

The storage <span class="kw">type</span> of ``elemwise_mul`` output depends on storage types of inputs

   - elemwise_mul(default, default) = default
   - elemwise_mul(row_sparse, row_sparse) = row_sparse
   - elemwise_mul(default, row_sparse) = row_sparse
   - elemwise_mul(row_sparse, default) = row_sparse
   - elemwise_mul(csr, csr) = csr
   - otherwise, ``elemwise_mul`` generates output <span class="kw">with</span> default storage</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#elemwise_sub" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="elemwise_sub(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="elemwise_sub(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">elemwise_sub</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@elemwise_sub(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Subtracts arguments element-wise.

The storage <span class="kw">type</span> of ``elemwise_sub`` output depends on storage types of inputs

   - elemwise_sub(row_sparse, row_sparse) = row_sparse
   - elemwise_sub(csr, csr) = csr
   - elemwise_sub(default, csr) = default
   - elemwise_sub(csr, default) = default
   - elemwise_sub(default, rsp) = default
   - elemwise_sub(rsp, default) = default
   - otherwise, ``elemwise_sub`` generates output <span class="kw">with</span> default storage</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#erf" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="erf(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="erf(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">erf</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@erf(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise gauss error function of the input.

Example::

   erf([<span class="num">0</span>, -<span class="num">1.</span>, <span class="num">10.</span>]) = [<span class="num">0.</span>, -<span class="num">0.8427</span>, <span class="num">1.</span>]



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L886</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#erfinv" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="erfinv(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="erfinv(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">erfinv</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@erfinv(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise inverse gauss error function of the input.

Example::

   erfinv([<span class="num">0</span>, <span class="num">0.5</span>., -<span class="num">1.</span>]) = [<span class="num">0.</span>, <span class="num">0.4769</span>, -inf]



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L908</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#exp" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="exp(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="exp(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">exp</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@exp(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise exponential value of the input.

.. math::
   exp(x) = e^x \approx <span class="num">2.718</span>^x

Example::

   exp([<span class="num">0</span>, <span class="num">1</span>, <span class="num">2</span>]) = [<span class="num">1.</span>, <span class="num">2.71828175</span>, <span class="num">7.38905621</span>]

The storage <span class="kw">type</span> of ``exp`` output is always dense



Defined in src/operator/tensor/elemwise_unary_op_logexp.cc:L64</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#expand_dims" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="expand_dims(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="expand_dims(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">expand_dims</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@expand_dims(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Inserts a <span class="kw">new</span> axis of size <span class="num">1</span> into the array shape
For example, given ``x`` <span class="kw">with</span> shape ``(<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>)``, then ``expand_dims(x, axis=<span class="num">1</span>)``
will <span class="kw">return</span> a <span class="kw">new</span> array <span class="kw">with</span> shape ``(<span class="num">2</span>,<span class="num">1</span>,<span class="num">3</span>,<span class="num">4</span>)``.


Defined in src/operator/tensor/matrix_op.cc:L395</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#expm1" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="expm1(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="expm1(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">expm1</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@expm1(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns ``exp(x) - <span class="num">1</span>`` computed element-wise on the input.

This function provides greater precision than ``exp(x) - <span class="num">1</span>`` <span class="kw">for</span> small values of ``x``.

The storage <span class="kw">type</span> of ``expm1`` output depends upon the input storage <span class="kw">type</span>:

   - expm1(default) = default
   - expm1(row_sparse) = row_sparse
   - expm1(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_logexp.cc:L244</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#fill_element_0index" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="fill_element_0index(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="fill_element_0index(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">fill_element_0index</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@fill_element_0index(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Fill one element of each line(row <span class="kw">for</span> python, column <span class="kw">for</span> R/Julia) in lhs according to index indicated by rhs and values indicated by mhs. This function assume rhs uses <span class="num">0</span>-based index.</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#fix" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="fix(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="fix(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">fix</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@fix(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise rounded value to the nearest \
integer towards zero of the input.

Example::

   fix([-<span class="num">2.1</span>, -<span class="num">1.9</span>, <span class="num">1.9</span>, <span class="num">2.1</span>]) = [-<span class="num">2.</span>, -<span class="num">1.</span>,  <span class="num">1.</span>, <span class="num">2.</span>]

The storage <span class="kw">type</span> of ``fix`` output depends upon the input storage <span class="kw">type</span>:

   - fix(default) = default
   - fix(row_sparse) = row_sparse
   - fix(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L874</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#flatten" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="flatten(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="flatten(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">flatten</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@flatten(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Flattens the input array into a <span class="num">2</span>-D array by collapsing the higher dimensions.
.. note:: `Flatten` is deprecated. Use `flatten` instead.
For an input array <span class="kw">with</span> shape ``(d1, d2, ..., dk)``, `flatten` operation reshapes
the input array into an output array of shape ``(d1, d2*...*dk)``.
Note that the behavior of <span class="kw">this</span> function is different from numpy.ndarray.flatten,
which behaves similar to mxnet.ndarray.reshape((-<span class="num">1</span>,)).
Example::
    x = `[ [
        [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>],
        [<span class="num">4</span>,<span class="num">5</span>,<span class="num">6</span>],
        [<span class="num">7</span>,<span class="num">8</span>,<span class="num">9</span>]
    ],
    [    [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>],
        [<span class="num">4</span>,<span class="num">5</span>,<span class="num">6</span>],
        [<span class="num">7</span>,<span class="num">8</span>,<span class="num">9</span>]
    ] ],
    flatten(x) = `[ [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">5.</span>,  <span class="num">6.</span>,  <span class="num">7.</span>,  <span class="num">8.</span>,  <span class="num">9.</span>],
       [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">5.</span>,  <span class="num">6.</span>,  <span class="num">7.</span>,  <span class="num">8.</span>,  <span class="num">9.</span>] ]


Defined in src/operator/tensor/matrix_op.cc:L250</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#flip" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="flip(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="flip(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">flip</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@flip(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Reverses the order of elements along given axis <span class="kw">while</span> preserving array shape.
Note: reverse and flip are equivalent. We use reverse in the following examples.
Examples::
  x = `[ [ <span class="num">0.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>],
       [ <span class="num">5.</span>,  <span class="num">6.</span>,  <span class="num">7.</span>,  <span class="num">8.</span>,  <span class="num">9.</span>] ]
  reverse(x, axis=<span class="num">0</span>) = `[ [ <span class="num">5.</span>,  <span class="num">6.</span>,  <span class="num">7.</span>,  <span class="num">8.</span>,  <span class="num">9.</span>],
                        [ <span class="num">0.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>] ]
  reverse(x, axis=<span class="num">1</span>) = `[ [ <span class="num">4.</span>,  <span class="num">3.</span>,  <span class="num">2.</span>,  <span class="num">1.</span>,  <span class="num">0.</span>],
                        [ <span class="num">9.</span>,  <span class="num">8.</span>,  <span class="num">7.</span>,  <span class="num">6.</span>,  <span class="num">5.</span>] ]


Defined in src/operator/tensor/matrix_op.cc:L832</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#floor" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="floor(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="floor(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">floor</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@floor(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise floor of the input.

The floor of the scalar x is the largest integer i, such that i &lt;= x.

Example::

   floor([-<span class="num">2.1</span>, -<span class="num">1.9</span>, <span class="num">1.5</span>, <span class="num">1.9</span>, <span class="num">2.1</span>]) = [-<span class="num">3.</span>, -<span class="num">2.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>]

The storage <span class="kw">type</span> of ``floor`` output depends upon the input storage <span class="kw">type</span>:

   - floor(default) = default
   - floor(row_sparse) = row_sparse
   - floor(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L836</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#ftml_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="ftml_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="ftml_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">ftml_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@ftml_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>The FTML optimizer described in
*FTML - Follow the Moving Leader in Deep Learning*,
available at http:<span class="cmt">//proceedings.mlr.press/v70/zheng17a/zheng17a.pdf.</span>

.. math::

 g_t = \nabla J(W_{t-<span class="num">1</span>})\\
 v_t = \beta_2 v_{t-<span class="num">1</span>} + (<span class="num">1</span> - \beta_2) g_t^<span class="num">2</span>\\
 d_t = \frac{ <span class="num">1</span> - \beta_1^t }{ \eta_t } (\sqrt{ \frac{ v_t }{ <span class="num">1</span> - \beta_2^t } } + \epsilon)
 \sigma_t = d_t - \beta_1 d_{t-<span class="num">1</span>}
 z_t = \beta_1 z_{ t-<span class="num">1</span> } + (<span class="num">1</span> - \beta_1^t) g_t - \sigma_t W_{t-<span class="num">1</span>}
 W_t = - \frac{ z_t }{ d_t }



Defined in src/operator/optimizer_op.cc:L640</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#ftrl_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="ftrl_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="ftrl_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">ftrl_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@ftrl_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Update function <span class="kw">for</span> Ftrl optimizer.
Referenced from *Ad Click Prediction: a View from the Trenches*, available at
http:<span class="cmt">//dl.acm.org/citation.cfm?id=2488200.</span>

It updates the weights using::

 rescaled_grad = clip(grad * rescale_grad, clip_gradient)
 z += rescaled_grad - (sqrt(n + rescaled_grad**<span class="num">2</span>) - sqrt(n)) * weight / learning_rate
 n += rescaled_grad**<span class="num">2</span>
 w = (sign(z) * lamda1 - z) / ((beta + sqrt(n)) / learning_rate + wd) * (abs(z) &gt; lamda1)

If w, z and n are all of ``row_sparse`` storage <span class="kw">type</span>,
only the row slices whose indices appear in grad.indices are updated (<span class="kw">for</span> w, z and n)::

 <span class="kw">for</span> row in grad.indices:
     rescaled_grad[row] = clip(grad[row] * rescale_grad, clip_gradient)
     z[row] += rescaled_grad[row] - (sqrt(n[row] + rescaled_grad[row]**<span class="num">2</span>) - sqrt(n[row])) * weight[row] / learning_rate
     n[row] += rescaled_grad[row]**<span class="num">2</span>
     w[row] = (sign(z[row]) * lamda1 - z[row]) / ((beta + sqrt(n[row])) / learning_rate + wd) * (abs(z[row]) &gt; lamda1)



Defined in src/operator/optimizer_op.cc:L876</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#gamma" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="gamma(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="gamma(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">gamma</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@gamma(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the gamma function (extension of the factorial function \
to the reals), computed element-wise on the input array.

The storage <span class="kw">type</span> of ``gamma`` output is always dense</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#gammaln" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="gammaln(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="gammaln(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">gammaln</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@gammaln(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise log of the absolute value of the gamma function \
of the input.

The storage <span class="kw">type</span> of ``gammaln`` output is always dense</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#gather_nd" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="gather_nd(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="gather_nd(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">gather_nd</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@gather_nd(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Gather elements or slices from `data` and store to a tensor whose
shape is defined by `indices`.

Given `data` <span class="kw">with</span> shape `(X_0, X_1, ..., X_{N-<span class="num">1</span>})` and indices <span class="kw">with</span> shape
`(M, Y_0, ..., Y_{K-<span class="num">1</span>})`, the output will have shape `(Y_0, ..., Y_{K-<span class="num">1</span>}, X_M, ..., X_{N-<span class="num">1</span>})`,
where `M &lt;= N`. If `M == N`, output shape will simply be `(Y_0, ..., Y_{K-<span class="num">1</span>})`.

The elements in output is defined as follows::

  output[y_0, ..., y_{K-<span class="num">1</span>}, x_M, ..., x_{N-<span class="num">1</span>}] = data[indices[<span class="num">0</span>, y_0, ..., y_{K-<span class="num">1</span>}],
                                                      ...,
                                                      indices[M-<span class="num">1</span>, y_0, ..., y_{K-<span class="num">1</span>}],
                                                      x_M, ..., x_{N-<span class="num">1</span>}]

Examples::

  data = `[ [<span class="num">0</span>, <span class="num">1</span>], [<span class="num">2</span>, <span class="num">3</span>] ]
  indices = `[ [<span class="num">1</span>, <span class="num">1</span>, <span class="num">0</span>], [<span class="num">0</span>, <span class="num">1</span>, <span class="num">0</span>] ]
  gather_nd(data, indices) = [<span class="num">2</span>, <span class="num">3</span>, <span class="num">0</span>]

  data = `[ `[ [<span class="num">1</span>, <span class="num">2</span>], [<span class="num">3</span>, <span class="num">4</span>] ], `[ [<span class="num">5</span>, <span class="num">6</span>], [<span class="num">7</span>, <span class="num">8</span>] ] ]
  indices = `[ [<span class="num">0</span>, <span class="num">1</span>], [<span class="num">1</span>, <span class="num">0</span>] ]
  gather_nd(data, indices) = `[ [<span class="num">3</span>, <span class="num">4</span>], [<span class="num">5</span>, <span class="num">6</span>] ]</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#hard_sigmoid" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="hard_sigmoid(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="hard_sigmoid(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">hard_sigmoid</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@hard_sigmoid(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes hard sigmoid of x element-wise.

.. math::
   y = max(<span class="num">0</span>, min(<span class="num">1</span>, alpha * x + beta))



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L161</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#identity" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="identity(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="identity(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">identity</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@identity(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns a copy of the input.

From:src/operator/tensor/elemwise_unary_op_basic.cc:<span class="num">244</span></pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#im2col" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="im2col(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="im2col(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">im2col</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@im2col(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Extract sliding blocks from input array.

This operator is used in vanilla convolution implementation to transform the sliding
blocks on image to column matrix, then the convolution operation can be computed
by matrix multiplication between column and convolution weight. Due to the close
relation between im2col and convolution, the concept of **kernel**, **stride**,
**dilate** and **pad** in <span class="kw">this</span> operator are inherited from convolution operation.

Given the input data of shape :math:`(N, C, *)`, where :math:`N` is the batch size,
:math:`C` is the channel size, and :math:`*` is the arbitrary spatial dimension,
the output column array is always <span class="kw">with</span> shape :math:`(N, C \times \prod(\text{kernel}), W)`,
where :math:`C \times \prod(\text{kernel})` is the block size, and :math:`W` is the
block number which is the spatial size of the convolution output <span class="kw">with</span> same input parameters.
Only <span class="num">1</span>-D, <span class="num">2</span>-D and <span class="num">3</span>-D of spatial dimension is supported in <span class="kw">this</span> operator.



Defined in src/operator/nn/im2col.cc:L100</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#khatri_rao" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="khatri_rao(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="khatri_rao(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">khatri_rao</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@khatri_rao(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the Khatri-Rao product of the input matrices.

Given a collection of :math:`n` input matrices,

.. math::
   A_1 \in \mathbb{R}^{M_1 \times M}, \ldots, A_n \in \mathbb{R}^{M_n \times N},

the (column-wise) Khatri-Rao product is defined as the matrix,

.. math::
   X = A_1 \otimes \cdots \otimes A_n \in \mathbb{R}^{(M_1 \cdots M_n) \times N},

where the :math:`k` th column is equal to the column-wise outer product
:math:`{A_1}_k \otimes \cdots \otimes {A_n}_k` where :math:`{A_i}_k` is the kth
column of the ith matrix.

Example::

  &gt;&gt;&gt; A = mx.nd.array(`[ [<span class="num">1</span>, -<span class="num">1</span>],
  &gt;&gt;&gt;                  [<span class="num">2</span>, -<span class="num">3</span>] ])
  &gt;&gt;&gt; B = mx.nd.array(`[ [<span class="num">1</span>, <span class="num">4</span>],
  &gt;&gt;&gt;                  [<span class="num">2</span>, <span class="num">5</span>],
  &gt;&gt;&gt;                  [<span class="num">3</span>, <span class="num">6</span>] ])
  &gt;&gt;&gt; C = mx.nd.khatri_rao(A, B)
  &gt;&gt;&gt; print(C.asnumpy())
  `[ [  <span class="num">1.</span>  -<span class="num">4.</span>]
   [  <span class="num">2.</span>  -<span class="num">5.</span>]
   [  <span class="num">3.</span>  -<span class="num">6.</span>]
   [  <span class="num">2.</span> -<span class="num">12.</span>]
   [  <span class="num">4.</span> -<span class="num">15.</span>]
   [  <span class="num">6.</span> -<span class="num">18.</span>] ]



Defined in src/operator/contrib/krprod.cc:L108</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#lamb_update_phase1" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="lamb_update_phase1(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="lamb_update_phase1(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">lamb_update_phase1</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@lamb_update_phase1(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Phase I of lamb update it performs the following operations and returns g:.

Link to paper: https:<span class="cmt">//arxiv.org/pdf/1904.00962.pdf</span>

.. math::
    \begin{gather*}
    grad = grad * rescale_grad
    <span class="kw">if</span> (grad &lt; -clip_gradient)
    then
         grad = -clip_gradient
    <span class="kw">if</span> (grad &gt; clip_gradient)
    then
         grad = clip_gradient

    mean = beta1 * mean + (<span class="num">1</span> - beta1) * grad;
    variance = beta2 * variance + (<span class="num">1.</span> - beta2) * grad ^ <span class="num">2</span>;

    <span class="kw">if</span> (bias_correction)
    then
         mean_hat = mean / (<span class="num">1.</span> - beta1^t);
         var_hat = <span class="kw">var</span> / (<span class="num">1</span> - beta2^t);
         g = mean_hat / (var_hat^(<span class="num">1</span>/<span class="num">2</span>) + epsilon) + wd * weight;
    <span class="kw">else</span>
         g = mean / (var_data^(<span class="num">1</span>/<span class="num">2</span>) + epsilon) + wd * weight;
    \end{gather*}



Defined in src/operator/optimizer_op.cc:L953</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#lamb_update_phase2" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="lamb_update_phase2(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="lamb_update_phase2(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">lamb_update_phase2</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@lamb_update_phase2(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Phase II of lamb update it performs the following operations and updates grad.

Link to paper: https:<span class="cmt">//arxiv.org/pdf/1904.00962.pdf</span>

.. math::
    \begin{gather*}
    <span class="kw">if</span> (lower_bound &gt;= <span class="num">0</span>)
    then
         r1 = max(r1, lower_bound)
    <span class="kw">if</span> (upper_bound &gt;= <span class="num">0</span>)
    then
         r1 = max(r1, upper_bound)

    <span class="kw">if</span> (r1 == <span class="num">0</span> or r2 == <span class="num">0</span>)
    then
         lr = lr
    <span class="kw">else</span>
         lr = lr * (r1/r2)
    weight = weight - lr * g
    \end{gather*}



Defined in src/operator/optimizer_op.cc:L992</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#linalg_det" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_det(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="linalg_det(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">linalg_det</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@linalg_det(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Compute the determinant of a matrix.
Input is a tensor *A* of dimension *n &gt;= <span class="num">2</span>*.

If *n=<span class="num">2</span>*, *A* is a square matrix. We compute:

  *out* = *det(A)*

If *n&gt;<span class="num">2</span>*, *det* is performed separately on the trailing two dimensions
<span class="kw">for</span> all inputs (batch mode).

.. note:: The operator supports float32 and float64 data types only.
.. note:: There is no gradient backwarded when A is non-invertible (which is
          equivalent to det(A) = <span class="num">0</span>) because zero is rarely hit upon in float
          point computation and the Jacobi's formula on determinant gradient
          is not computationally efficient when A is non-invertible.

Examples::

   Single matrix determinant
   A = `[ [<span class="num">1.</span>, <span class="num">4.</span>], [<span class="num">2.</span>, <span class="num">3.</span>] ]
   det(A) = [-<span class="num">5.</span>]

   Batch matrix determinant
   A = `[ `[ [<span class="num">1.</span>, <span class="num">4.</span>], [<span class="num">2.</span>, <span class="num">3.</span>] ],
        `[ [<span class="num">2.</span>, <span class="num">3.</span>], [<span class="num">1.</span>, <span class="num">4.</span>] ] ]
   det(A) = [-<span class="num">5.</span>, <span class="num">5.</span>]


Defined in src/operator/tensor/la_op.cc:L975</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#linalg_extractdiag" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_extractdiag(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="linalg_extractdiag(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">linalg_extractdiag</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@linalg_extractdiag(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Extracts the diagonal entries of a square matrix.
Input is a tensor *A* of dimension *n &gt;= <span class="num">2</span>*.

If *n=<span class="num">2</span>*, then *A* represents a single square matrix which diagonal elements get extracted as a <span class="num">1</span>-dimensional tensor.

If *n&gt;<span class="num">2</span>*, then *A* represents a batch of square matrices on the trailing two dimensions. The extracted diagonals are returned as an *n-<span class="num">1</span>*-dimensional tensor.

.. note:: The operator supports float32 and float64 data types only.

Examples::

    Single matrix diagonal extraction
    A = `[ [<span class="num">1.0</span>, <span class="num">2.0</span>],
         [<span class="num">3.0</span>, <span class="num">4.0</span>] ]

    extractdiag(A) = [<span class="num">1.0</span>, <span class="num">4.0</span>]

    extractdiag(A, <span class="num">1</span>) = [<span class="num">2.0</span>]

    Batch matrix diagonal extraction
    A = `[ `[ [<span class="num">1.0</span>, <span class="num">2.0</span>],
          [<span class="num">3.0</span>, <span class="num">4.0</span>] ],
         `[ [<span class="num">5.0</span>, <span class="num">6.0</span>],
          [<span class="num">7.0</span>, <span class="num">8.0</span>] ] ]

    extractdiag(A) = `[ [<span class="num">1.0</span>, <span class="num">4.0</span>],
                      [<span class="num">5.0</span>, <span class="num">8.0</span>] ]


Defined in src/operator/tensor/la_op.cc:L495</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#linalg_extracttrian" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_extracttrian(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="linalg_extracttrian(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">linalg_extracttrian</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@linalg_extracttrian(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Extracts a triangular sub-matrix from a square matrix.
Input is a tensor *A* of dimension *n &gt;= <span class="num">2</span>*.

If *n=<span class="num">2</span>*, then *A* represents a single square matrix from which a triangular sub-matrix is extracted as a <span class="num">1</span>-dimensional tensor.

If *n&gt;<span class="num">2</span>*, then *A* represents a batch of square matrices on the trailing two dimensions. The extracted triangular sub-matrices are returned as an *n-<span class="num">1</span>*-dimensional tensor.

The *offset* and *lower* parameters determine the triangle to be extracted:

- When *offset = <span class="num">0</span>* either the lower or upper triangle <span class="kw">with</span> respect to the main diagonal is extracted depending on the value of parameter *lower*.
- When *offset = k &gt; <span class="num">0</span>* the upper triangle <span class="kw">with</span> respect to the k-th diagonal above the main diagonal is extracted.
- When *offset = k &lt; <span class="num">0</span>* the lower triangle <span class="kw">with</span> respect to the k-th diagonal below the main diagonal is extracted.

.. note:: The operator supports float32 and float64 data types only.

Examples::

    Single triagonal extraction
    A = `[ [<span class="num">1.0</span>, <span class="num">2.0</span>],
         [<span class="num">3.0</span>, <span class="num">4.0</span>] ]

    extracttrian(A) = [<span class="num">1.0</span>, <span class="num">3.0</span>, <span class="num">4.0</span>]
    extracttrian(A, lower=False) = [<span class="num">1.0</span>, <span class="num">2.0</span>, <span class="num">4.0</span>]
    extracttrian(A, <span class="num">1</span>) = [<span class="num">2.0</span>]
    extracttrian(A, -<span class="num">1</span>) = [<span class="num">3.0</span>]

    Batch triagonal extraction
    A = `[ `[ [<span class="num">1.0</span>, <span class="num">2.0</span>],
          [<span class="num">3.0</span>, <span class="num">4.0</span>] ],
         `[ [<span class="num">5.0</span>, <span class="num">6.0</span>],
          [<span class="num">7.0</span>, <span class="num">8.0</span>] ] ]

    extracttrian(A) = `[ [<span class="num">1.0</span>, <span class="num">3.0</span>, <span class="num">4.0</span>],
                       [<span class="num">5.0</span>, <span class="num">7.0</span>, <span class="num">8.0</span>] ]


Defined in src/operator/tensor/la_op.cc:L605</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#linalg_gelqf" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_gelqf(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="linalg_gelqf(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">linalg_gelqf</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@linalg_gelqf(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>LQ factorization <span class="kw">for</span> general matrix.
Input is a tensor *A* of dimension *n &gt;= <span class="num">2</span>*.

If *n=<span class="num">2</span>*, we compute the LQ factorization (LAPACK *gelqf*, followed by *orglq*). *A*
must have shape *(x, y)* <span class="kw">with</span> *x &lt;= y*, and must have full rank *=x*. The LQ
factorization consists of *L* <span class="kw">with</span> shape *(x, x)* and *Q* <span class="kw">with</span> shape *(x, y)*, so
that:

   *A* = *L* \* *Q*

Here, *L* is lower triangular (upper triangle equal to zero) <span class="kw">with</span> nonzero diagonal,
and *Q* is row-orthonormal, meaning that

   *Q* \* *Q*\ :sup:`T`

is equal to the identity matrix of shape *(x, x)*.

If *n&gt;<span class="num">2</span>*, *gelqf* is performed separately on the trailing two dimensions <span class="kw">for</span> all
inputs (batch mode).

.. note:: The operator supports float32 and float64 data types only.

Examples::

   Single LQ factorization
   A = `[ [<span class="num">1.</span>, <span class="num">2.</span>, <span class="num">3.</span>], [<span class="num">4.</span>, <span class="num">5.</span>, <span class="num">6.</span>] ]
   Q, L = gelqf(A)
   Q = `[ [-<span class="num">0.26726124</span>, -<span class="num">0.53452248</span>, -<span class="num">0.80178373</span>],
        [<span class="num">0.87287156</span>, <span class="num">0.21821789</span>, -<span class="num">0.43643578</span>] ]
   L = `[ [-<span class="num">3.74165739</span>, <span class="num">0.</span>],
        [-<span class="num">8.55235974</span>, <span class="num">1.96396101</span>] ]

   Batch LQ factorization
   A = `[ `[ [<span class="num">1.</span>, <span class="num">2.</span>, <span class="num">3.</span>], [<span class="num">4.</span>, <span class="num">5.</span>, <span class="num">6.</span>] ],
        `[ [<span class="num">7.</span>, <span class="num">8.</span>, <span class="num">9.</span>], [<span class="num">10.</span>, <span class="num">11.</span>, <span class="num">12.</span>] ] ]
   Q, L = gelqf(A)
   Q = `[ `[ [-<span class="num">0.26726124</span>, -<span class="num">0.53452248</span>, -<span class="num">0.80178373</span>],
         [<span class="num">0.87287156</span>, <span class="num">0.21821789</span>, -<span class="num">0.43643578</span>] ],
        `[ [-<span class="num">0.50257071</span>, -<span class="num">0.57436653</span>, -<span class="num">0.64616234</span>],
         [<span class="num">0.7620735</span>, <span class="num">0.05862104</span>, -<span class="num">0.64483142</span>] ] ]
   L = `[ `[ [-<span class="num">3.74165739</span>, <span class="num">0.</span>],
         [-<span class="num">8.55235974</span>, <span class="num">1.96396101</span>] ],
        `[ [-<span class="num">13.92838828</span>, <span class="num">0.</span>],
         [-<span class="num">19.09768702</span>, <span class="num">0.52758934</span>] ] ]


Defined in src/operator/tensor/la_op.cc:L798</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#linalg_gemm" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_gemm(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="linalg_gemm(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">linalg_gemm</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@linalg_gemm(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Performs general matrix multiplication and accumulation.
Input are tensors *A*, *B*, *C*, each of dimension *n &gt;= <span class="num">2</span>* and having the same shape
on the leading *n-<span class="num">2</span>* dimensions.

If *n=<span class="num">2</span>*, the BLAS3 function *gemm* is performed:

   *out* = *alpha* \* *op*\ (*A*) \* *op*\ (*B*) + *beta* \* *C*

Here, *alpha* and *beta* are scalar parameters, and *op()* is either the identity or
matrix transposition (depending on *transpose_a*, *transpose_b*).

If *n&gt;<span class="num">2</span>*, *gemm* is performed separately <span class="kw">for</span> a batch of matrices. The column indices of the matrices
are given by the last dimensions of the tensors, the row indices by the axis specified <span class="kw">with</span> the *axis*
parameter. By default, the trailing two dimensions will be used <span class="kw">for</span> matrix encoding.

For a non-default axis parameter, the operation performed is equivalent to a series of swapaxes/gemm/swapaxes
calls. For example let *A*, *B*, *C* be <span class="num">5</span> dimensional tensors. Then gemm(*A*, *B*, *C*, axis=<span class="num">1</span>) is equivalent
to the following without the overhead of the additional swapaxis operations::

    A1 = swapaxes(A, dim1=<span class="num">1</span>, dim2=<span class="num">3</span>)
    B1 = swapaxes(B, dim1=<span class="num">1</span>, dim2=<span class="num">3</span>)
    C = swapaxes(C, dim1=<span class="num">1</span>, dim2=<span class="num">3</span>)
    C = gemm(A1, B1, C)
    C = swapaxis(C, dim1=<span class="num">1</span>, dim2=<span class="num">3</span>)

When the input data is of <span class="kw">type</span> float32 and the environment variables MXNET_CUDA_ALLOW_TENSOR_CORE
and MXNET_CUDA_TENSOR_OP_MATH_ALLOW_CONVERSION are set to <span class="num">1</span>, <span class="kw">this</span> operator will <span class="kw">try</span> to use
pseudo-float16 precision (float32 math <span class="kw">with</span> float16 I/O) precision in order to use
Tensor Cores on suitable NVIDIA GPUs. This can sometimes give significant speedups.

.. note:: The operator supports float32 and float64 data types only.

Examples::

   Single matrix multiply-add
   A = `[ [<span class="num">1.0</span>, <span class="num">1.0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>] ]
   B = `[ [<span class="num">1.0</span>, <span class="num">1.0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>] ]
   C = `[ [<span class="num">1.0</span>, <span class="num">1.0</span>, <span class="num">1.0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>, <span class="num">1.0</span>] ]
   gemm(A, B, C, transpose_b=True, alpha=<span class="num">2.0</span>, beta=<span class="num">10.0</span>)
           = `[ [<span class="num">14.0</span>, <span class="num">14.0</span>, <span class="num">14.0</span>], [<span class="num">14.0</span>, <span class="num">14.0</span>, <span class="num">14.0</span>] ]

   Batch matrix multiply-add
   A = `[ `[ [<span class="num">1.0</span>, <span class="num">1.0</span>] ], `[ [<span class="num">0.1</span>, <span class="num">0.1</span>] ] ]
   B = `[ `[ [<span class="num">1.0</span>, <span class="num">1.0</span>] ], `[ [<span class="num">0.1</span>, <span class="num">0.1</span>] ] ]
   C = `[ `[ [<span class="num">10.0</span>] ], `[ [<span class="num">0.01</span>] ] ]
   gemm(A, B, C, transpose_b=True, alpha=<span class="num">2.0</span> , beta=<span class="num">10.0</span>)
           = `[ `[ [<span class="num">104.0</span>] ], `[ [<span class="num">0.14</span>] ] ]


Defined in src/operator/tensor/la_op.cc:L89</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#linalg_gemm2" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_gemm2(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="linalg_gemm2(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">linalg_gemm2</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@linalg_gemm2(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Performs general matrix multiplication.
Input are tensors *A*, *B*, each of dimension *n &gt;= <span class="num">2</span>* and having the same shape
on the leading *n-<span class="num">2</span>* dimensions.

If *n=<span class="num">2</span>*, the BLAS3 function *gemm* is performed:

   *out* = *alpha* \* *op*\ (*A*) \* *op*\ (*B*)

Here *alpha* is a scalar parameter and *op()* is either the identity or the matrix
transposition (depending on *transpose_a*, *transpose_b*).

If *n&gt;<span class="num">2</span>*, *gemm* is performed separately <span class="kw">for</span> a batch of matrices. The column indices of the matrices
are given by the last dimensions of the tensors, the row indices by the axis specified <span class="kw">with</span> the *axis*
parameter. By default, the trailing two dimensions will be used <span class="kw">for</span> matrix encoding.

For a non-default axis parameter, the operation performed is equivalent to a series of swapaxes/gemm/swapaxes
calls. For example let *A*, *B* be <span class="num">5</span> dimensional tensors. Then gemm(*A*, *B*, axis=<span class="num">1</span>) is equivalent to
the following without the overhead of the additional swapaxis operations::

    A1 = swapaxes(A, dim1=<span class="num">1</span>, dim2=<span class="num">3</span>)
    B1 = swapaxes(B, dim1=<span class="num">1</span>, dim2=<span class="num">3</span>)
    C = gemm2(A1, B1)
    C = swapaxis(C, dim1=<span class="num">1</span>, dim2=<span class="num">3</span>)

When the input data is of <span class="kw">type</span> float32 and the environment variables MXNET_CUDA_ALLOW_TENSOR_CORE
and MXNET_CUDA_TENSOR_OP_MATH_ALLOW_CONVERSION are set to <span class="num">1</span>, <span class="kw">this</span> operator will <span class="kw">try</span> to use
pseudo-float16 precision (float32 math <span class="kw">with</span> float16 I/O) precision in order to use
Tensor Cores on suitable NVIDIA GPUs. This can sometimes give significant speedups.

.. note:: The operator supports float32 and float64 data types only.

Examples::

   Single matrix multiply
   A = `[ [<span class="num">1.0</span>, <span class="num">1.0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>] ]
   B = `[ [<span class="num">1.0</span>, <span class="num">1.0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>] ]
   gemm2(A, B, transpose_b=True, alpha=<span class="num">2.0</span>)
            = `[ [<span class="num">4.0</span>, <span class="num">4.0</span>, <span class="num">4.0</span>], [<span class="num">4.0</span>, <span class="num">4.0</span>, <span class="num">4.0</span>] ]

   Batch matrix multiply
   A = `[ `[ [<span class="num">1.0</span>, <span class="num">1.0</span>] ], `[ [<span class="num">0.1</span>, <span class="num">0.1</span>] ] ]
   B = `[ `[ [<span class="num">1.0</span>, <span class="num">1.0</span>] ], `[ [<span class="num">0.1</span>, <span class="num">0.1</span>] ] ]
   gemm2(A, B, transpose_b=True, alpha=<span class="num">2.0</span>)
           = `[ `[ [<span class="num">4.0</span>] ], `[ [<span class="num">0.04</span> ] ] ]


Defined in src/operator/tensor/la_op.cc:L163</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#linalg_inverse" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_inverse(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="linalg_inverse(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">linalg_inverse</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@linalg_inverse(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Compute the inverse of a matrix.
Input is a tensor *A* of dimension *n &gt;= <span class="num">2</span>*.

If *n=<span class="num">2</span>*, *A* is a square matrix. We compute:

  *out* = *A*\ :sup:`-<span class="num">1</span>`

If *n&gt;<span class="num">2</span>*, *inverse* is performed separately on the trailing two dimensions
<span class="kw">for</span> all inputs (batch mode).

.. note:: The operator supports float32 and float64 data types only.

Examples::

   Single matrix inverse
   A = `[ [<span class="num">1.</span>, <span class="num">4.</span>], [<span class="num">2.</span>, <span class="num">3.</span>] ]
   inverse(A) = `[ [-<span class="num">0.6</span>, <span class="num">0.8</span>], [<span class="num">0.4</span>, -<span class="num">0.2</span>] ]

   Batch matrix inverse
   A = `[ `[ [<span class="num">1.</span>, <span class="num">4.</span>], [<span class="num">2.</span>, <span class="num">3.</span>] ],
        `[ [<span class="num">1.</span>, <span class="num">3.</span>], [<span class="num">2.</span>, <span class="num">4.</span>] ] ]
   inverse(A) = `[ `[ [-<span class="num">0.6</span>, <span class="num">0.8</span>], [<span class="num">0.4</span>, -<span class="num">0.2</span>] ],
                 `[ [-<span class="num">2.</span>, <span class="num">1.5</span>], [<span class="num">1.</span>, -<span class="num">0.5</span>] ] ]


Defined in src/operator/tensor/la_op.cc:L920</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#linalg_makediag" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_makediag(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="linalg_makediag(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">linalg_makediag</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@linalg_makediag(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Constructs a square matrix <span class="kw">with</span> the input as diagonal.
Input is a tensor *A* of dimension *n &gt;= <span class="num">1</span>*.

If *n=<span class="num">1</span>*, then *A* represents the diagonal entries of a single square matrix. This matrix will be returned as a <span class="num">2</span>-dimensional tensor.
If *n&gt;<span class="num">1</span>*, then *A* represents a batch of diagonals of square matrices. The batch of diagonal matrices will be returned as an *n+<span class="num">1</span>*-dimensional tensor.

.. note:: The operator supports float32 and float64 data types only.

Examples::

    Single diagonal matrix construction
    A = [<span class="num">1.0</span>, <span class="num">2.0</span>]

    makediag(A)    = `[ [<span class="num">1.0</span>, <span class="num">0.0</span>],
                      [<span class="num">0.0</span>, <span class="num">2.0</span>] ]

    makediag(A, <span class="num">1</span>) = `[ [<span class="num">0.0</span>, <span class="num">1.0</span>, <span class="num">0.0</span>],
                      [<span class="num">0.0</span>, <span class="num">0.0</span>, <span class="num">2.0</span>],
                      [<span class="num">0.0</span>, <span class="num">0.0</span>, <span class="num">0.0</span>] ]

    Batch diagonal matrix construction
    A = `[ [<span class="num">1.0</span>, <span class="num">2.0</span>],
         [<span class="num">3.0</span>, <span class="num">4.0</span>] ]

    makediag(A) = `[ `[ [<span class="num">1.0</span>, <span class="num">0.0</span>],
                    [<span class="num">0.0</span>, <span class="num">2.0</span>] ],
                   `[ [<span class="num">3.0</span>, <span class="num">0.0</span>],
                    [<span class="num">0.0</span>, <span class="num">4.0</span>] ] ]


Defined in src/operator/tensor/la_op.cc:L547</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#linalg_maketrian" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_maketrian(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="linalg_maketrian(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">linalg_maketrian</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@linalg_maketrian(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Constructs a square matrix <span class="kw">with</span> the input representing a specific triangular sub-matrix.
This is basically the inverse of *linalg.extracttrian*. Input is a tensor *A* of dimension *n &gt;= <span class="num">1</span>*.

If *n=<span class="num">1</span>*, then *A* represents the entries of a triangular matrix which is lower triangular <span class="kw">if</span> *offset&lt;<span class="num">0</span>* or *offset=<span class="num">0</span>*, *lower=<span class="kw">true</span>*. The resulting matrix is derived by first constructing the square
matrix <span class="kw">with</span> the entries outside the triangle set to zero and then adding *offset*-times an additional
diagonal <span class="kw">with</span> zero entries to the square matrix.

If *n&gt;<span class="num">1</span>*, then *A* represents a batch of triangular sub-matrices. The batch of corresponding square matrices is returned as an *n+<span class="num">1</span>*-dimensional tensor.

.. note:: The operator supports float32 and float64 data types only.

Examples::

    Single  matrix construction
    A = [<span class="num">1.0</span>, <span class="num">2.0</span>, <span class="num">3.0</span>]

    maketrian(A)              = `[ [<span class="num">1.0</span>, <span class="num">0.0</span>],
                                 [<span class="num">2.0</span>, <span class="num">3.0</span>] ]

    maketrian(A, lower=<span class="kw">false</span>) = `[ [<span class="num">1.0</span>, <span class="num">2.0</span>],
                                 [<span class="num">0.0</span>, <span class="num">3.0</span>] ]

    maketrian(A, offset=<span class="num">1</span>)    = `[ [<span class="num">0.0</span>, <span class="num">1.0</span>, <span class="num">2.0</span>],
                                 [<span class="num">0.0</span>, <span class="num">0.0</span>, <span class="num">3.0</span>],
                                 [<span class="num">0.0</span>, <span class="num">0.0</span>, <span class="num">0.0</span>] ]
    maketrian(A, offset=-<span class="num">1</span>)   = `[ [<span class="num">0.0</span>, <span class="num">0.0</span>, <span class="num">0.0</span>],
                                 [<span class="num">1.0</span>, <span class="num">0.0</span>, <span class="num">0.0</span>],
                                 [<span class="num">2.0</span>, <span class="num">3.0</span>, <span class="num">0.0</span>] ]

    Batch matrix construction
    A = `[ [<span class="num">1.0</span>, <span class="num">2.0</span>, <span class="num">3.0</span>],
         [<span class="num">4.0</span>, <span class="num">5.0</span>, <span class="num">6.0</span>] ]

    maketrian(A)           = `[ `[ [<span class="num">1.0</span>, <span class="num">0.0</span>],
                               [<span class="num">2.0</span>, <span class="num">3.0</span>] ],
                              `[ [<span class="num">4.0</span>, <span class="num">0.0</span>],
                               [<span class="num">5.0</span>, <span class="num">6.0</span>] ] ]

    maketrian(A, offset=<span class="num">1</span>) = `[ `[ [<span class="num">0.0</span>, <span class="num">1.0</span>, <span class="num">2.0</span>],
                               [<span class="num">0.0</span>, <span class="num">0.0</span>, <span class="num">3.0</span>],
                               [<span class="num">0.0</span>, <span class="num">0.0</span>, <span class="num">0.0</span>] ],
                              `[ [<span class="num">0.0</span>, <span class="num">4.0</span>, <span class="num">5.0</span>],
                               [<span class="num">0.0</span>, <span class="num">0.0</span>, <span class="num">6.0</span>],
                               [<span class="num">0.0</span>, <span class="num">0.0</span>, <span class="num">0.0</span>] ] ]


Defined in src/operator/tensor/la_op.cc:L673</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#linalg_potrf" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_potrf(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="linalg_potrf(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">linalg_potrf</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@linalg_potrf(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Performs Cholesky factorization of a symmetric positive-definite matrix.
Input is a tensor *A* of dimension *n &gt;= <span class="num">2</span>*.

If *n=<span class="num">2</span>*, the Cholesky factor *B* of the symmetric, positive definite matrix *A* is
computed. *B* is triangular (entries of upper or lower triangle are all zero), has
positive diagonal entries, and:

  *A* = *B* \* *B*\ :sup:`T`  <span class="kw">if</span> *lower* = *<span class="kw">true</span>*
  *A* = *B*\ :sup:`T` \* *B*  <span class="kw">if</span> *lower* = *<span class="kw">false</span>*

If *n&gt;<span class="num">2</span>*, *potrf* is performed separately on the trailing two dimensions <span class="kw">for</span> all inputs
(batch mode).

.. note:: The operator supports float32 and float64 data types only.

Examples::

   Single matrix factorization
   A = `[ [<span class="num">4.0</span>, <span class="num">1.0</span>], [<span class="num">1.0</span>, <span class="num">4.25</span>] ]
   potrf(A) = `[ [<span class="num">2.0</span>, <span class="num">0</span>], [<span class="num">0.5</span>, <span class="num">2.0</span>] ]

   Batch matrix factorization
   A = `[ `[ [<span class="num">4.0</span>, <span class="num">1.0</span>], [<span class="num">1.0</span>, <span class="num">4.25</span>] ], `[ [<span class="num">16.0</span>, <span class="num">4.0</span>], [<span class="num">4.0</span>, <span class="num">17.0</span>] ] ]
   potrf(A) = `[ `[ [<span class="num">2.0</span>, <span class="num">0</span>], [<span class="num">0.5</span>, <span class="num">2.0</span>] ], `[ [<span class="num">4.0</span>, <span class="num">0</span>], [<span class="num">1.0</span>, <span class="num">4.0</span>] ] ]


Defined in src/operator/tensor/la_op.cc:L214</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#linalg_potri" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_potri(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="linalg_potri(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">linalg_potri</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@linalg_potri(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Performs matrix inversion from a Cholesky factorization.
Input is a tensor *A* of dimension *n &gt;= <span class="num">2</span>*.

If *n=<span class="num">2</span>*, *A* is a triangular matrix (entries of upper or lower triangle are all zero)
<span class="kw">with</span> positive diagonal. We compute:

  *out* = *A*\ :sup:`-T` \* *A*\ :sup:`-<span class="num">1</span>` <span class="kw">if</span> *lower* = *<span class="kw">true</span>*
  *out* = *A*\ :sup:`-<span class="num">1</span>` \* *A*\ :sup:`-T` <span class="kw">if</span> *lower* = *<span class="kw">false</span>*

In other words, <span class="kw">if</span> *A* is the Cholesky factor of a symmetric positive definite matrix
*B* (obtained by *potrf*), then

  *out* = *B*\ :sup:`-<span class="num">1</span>`

If *n&gt;<span class="num">2</span>*, *potri* is performed separately on the trailing two dimensions <span class="kw">for</span> all inputs
(batch mode).

.. note:: The operator supports float32 and float64 data types only.

.. note:: Use <span class="kw">this</span> operator only <span class="kw">if</span> you are certain you need the inverse of *B*, and
          cannot use the Cholesky factor *A* (*potrf*), together <span class="kw">with</span> backsubstitution
          (*trsm*). The latter is numerically much safer, and also cheaper.

Examples::

   Single matrix inverse
   A = `[ [<span class="num">2.0</span>, <span class="num">0</span>], [<span class="num">0.5</span>, <span class="num">2.0</span>] ]
   potri(A) = `[ [<span class="num">0.26563</span>, -<span class="num">0.0625</span>], [-<span class="num">0.0625</span>, <span class="num">0.25</span>] ]

   Batch matrix inverse
   A = `[ `[ [<span class="num">2.0</span>, <span class="num">0</span>], [<span class="num">0.5</span>, <span class="num">2.0</span>] ], `[ [<span class="num">4.0</span>, <span class="num">0</span>], [<span class="num">1.0</span>, <span class="num">4.0</span>] ] ]
   potri(A) = `[ `[ [<span class="num">0.26563</span>, -<span class="num">0.0625</span>], [-<span class="num">0.0625</span>, <span class="num">0.25</span>] ],
               `[ [<span class="num">0.06641</span>, -<span class="num">0.01562</span>], [-<span class="num">0.01562</span>, <span class="num">0</span>,<span class="num">0625</span>] ] ]


Defined in src/operator/tensor/la_op.cc:L275</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#linalg_slogdet" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_slogdet(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="linalg_slogdet(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">linalg_slogdet</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@linalg_slogdet(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Compute the sign and log of the determinant of a matrix.
Input is a tensor *A* of dimension *n &gt;= <span class="num">2</span>*.

If *n=<span class="num">2</span>*, *A* is a square matrix. We compute:

  *sign* = *sign(det(A))*
  *logabsdet* = *log(abs(det(A)))*

If *n&gt;<span class="num">2</span>*, *slogdet* is performed separately on the trailing two dimensions
<span class="kw">for</span> all inputs (batch mode).

.. note:: The operator supports float32 and float64 data types only.
.. note:: The gradient is not properly defined on sign, so the gradient of
          it is not backwarded.
.. note:: No gradient is backwarded when A is non-invertible. Please see
          the docs of operator det <span class="kw">for</span> detail.

Examples::

   Single matrix signed log determinant
   A = `[ [<span class="num">2.</span>, <span class="num">3.</span>], [<span class="num">1.</span>, <span class="num">4.</span>] ]
   sign, logabsdet = slogdet(A)
   sign = [<span class="num">1.</span>]
   logabsdet = [<span class="num">1.609438</span>]

   Batch matrix signed log determinant
   A = `[ `[ [<span class="num">2.</span>, <span class="num">3.</span>], [<span class="num">1.</span>, <span class="num">4.</span>] ],
        `[ [<span class="num">1.</span>, <span class="num">2.</span>], [<span class="num">2.</span>, <span class="num">4.</span>] ],
        `[ [<span class="num">1.</span>, <span class="num">2.</span>], [<span class="num">4.</span>, <span class="num">3.</span>] ] ]
   sign, logabsdet = slogdet(A)
   sign = [<span class="num">1.</span>, <span class="num">0.</span>, -<span class="num">1.</span>]
   logabsdet = [<span class="num">1.609438</span>, -inf, <span class="num">1.609438</span>]


Defined in src/operator/tensor/la_op.cc:L1034</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#linalg_sumlogdiag" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_sumlogdiag(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="linalg_sumlogdiag(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">linalg_sumlogdiag</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@linalg_sumlogdiag(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the sum of the logarithms of the diagonal elements of a square matrix.
Input is a tensor *A* of dimension *n &gt;= <span class="num">2</span>*.

If *n=<span class="num">2</span>*, *A* must be square <span class="kw">with</span> positive diagonal entries. We sum the natural
logarithms of the diagonal elements, the result has shape (<span class="num">1</span>,).

If *n&gt;<span class="num">2</span>*, *sumlogdiag* is performed separately on the trailing two dimensions <span class="kw">for</span> all
inputs (batch mode).

.. note:: The operator supports float32 and float64 data types only.

Examples::

   Single matrix reduction
   A = `[ [<span class="num">1.0</span>, <span class="num">1.0</span>], [<span class="num">1.0</span>, <span class="num">7.0</span>] ]
   sumlogdiag(A) = [<span class="num">1.9459</span>]

   Batch matrix reduction
   A = `[ `[ [<span class="num">1.0</span>, <span class="num">1.0</span>], [<span class="num">1.0</span>, <span class="num">7.0</span>] ], `[ [<span class="num">3.0</span>, <span class="num">0</span>], [<span class="num">0</span>, <span class="num">17.0</span>] ] ]
   sumlogdiag(A) = [<span class="num">1.9459</span>, <span class="num">3.9318</span>]


Defined in src/operator/tensor/la_op.cc:L445</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#linalg_syrk" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_syrk(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="linalg_syrk(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">linalg_syrk</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@linalg_syrk(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Multiplication of matrix <span class="kw">with</span> its transpose.
Input is a tensor *A* of dimension *n &gt;= <span class="num">2</span>*.

If *n=<span class="num">2</span>*, the operator performs the BLAS3 function *syrk*:

  *out* = *alpha* \* *A* \* *A*\ :sup:`T`

<span class="kw">if</span> *transpose=False*, or

  *out* = *alpha* \* *A*\ :sup:`T` \ \* *A*

<span class="kw">if</span> *transpose=True*.

If *n&gt;<span class="num">2</span>*, *syrk* is performed separately on the trailing two dimensions <span class="kw">for</span> all
inputs (batch mode).

.. note:: The operator supports float32 and float64 data types only.

Examples::

   Single matrix multiply
   A = `[ [<span class="num">1.</span>, <span class="num">2.</span>, <span class="num">3.</span>], [<span class="num">4.</span>, <span class="num">5.</span>, <span class="num">6.</span>] ]
   syrk(A, alpha=<span class="num">1.</span>, transpose=False)
            = `[ [<span class="num">14.</span>, <span class="num">32.</span>],
               [<span class="num">32.</span>, <span class="num">77.</span>] ]
   syrk(A, alpha=<span class="num">1.</span>, transpose=True)
            = `[ [<span class="num">17.</span>, <span class="num">22.</span>, <span class="num">27.</span>],
               [<span class="num">22.</span>, <span class="num">29.</span>, <span class="num">36.</span>],
               [<span class="num">27.</span>, <span class="num">36.</span>, <span class="num">45.</span>] ]

   Batch matrix multiply
   A = `[ `[ [<span class="num">1.</span>, <span class="num">1.</span>] ], `[ [<span class="num">0.1</span>, <span class="num">0.1</span>] ] ]
   syrk(A, alpha=<span class="num">2.</span>, transpose=False) = `[ `[ [<span class="num">4.</span>] ], `[ [<span class="num">0.04</span>] ] ]


Defined in src/operator/tensor/la_op.cc:L730</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#linalg_trmm" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_trmm(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="linalg_trmm(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">linalg_trmm</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@linalg_trmm(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Performs multiplication <span class="kw">with</span> a lower triangular matrix.
Input are tensors *A*, *B*, each of dimension *n &gt;= <span class="num">2</span>* and having the same shape
on the leading *n-<span class="num">2</span>* dimensions.

If *n=<span class="num">2</span>*, *A* must be triangular. The operator performs the BLAS3 function
*trmm*:

   *out* = *alpha* \* *op*\ (*A*) \* *B*

<span class="kw">if</span> *rightside=False*, or

   *out* = *alpha* \* *B* \* *op*\ (*A*)

<span class="kw">if</span> *rightside=True*. Here, *alpha* is a scalar parameter, and *op()* is either the
identity or the matrix transposition (depending on *transpose*).

If *n&gt;<span class="num">2</span>*, *trmm* is performed separately on the trailing two dimensions <span class="kw">for</span> all inputs
(batch mode).

.. note:: The operator supports float32 and float64 data types only.

Examples::

   Single triangular matrix multiply
   A = `[ [<span class="num">1.0</span>, <span class="num">0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>] ]
   B = `[ [<span class="num">1.0</span>, <span class="num">1.0</span>, <span class="num">1.0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>, <span class="num">1.0</span>] ]
   trmm(A, B, alpha=<span class="num">2.0</span>) = `[ [<span class="num">2.0</span>, <span class="num">2.0</span>, <span class="num">2.0</span>], [<span class="num">4.0</span>, <span class="num">4.0</span>, <span class="num">4.0</span>] ]

   Batch triangular matrix multiply
   A = `[ `[ [<span class="num">1.0</span>, <span class="num">0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>] ], `[ [<span class="num">1.0</span>, <span class="num">0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>] ] ]
   B = `[ `[ [<span class="num">1.0</span>, <span class="num">1.0</span>, <span class="num">1.0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>, <span class="num">1.0</span>] ], `[ [<span class="num">0.5</span>, <span class="num">0.5</span>, <span class="num">0.5</span>], [<span class="num">0.5</span>, <span class="num">0.5</span>, <span class="num">0.5</span>] ] ]
   trmm(A, B, alpha=<span class="num">2.0</span>) = `[ `[ [<span class="num">2.0</span>, <span class="num">2.0</span>, <span class="num">2.0</span>], [<span class="num">4.0</span>, <span class="num">4.0</span>, <span class="num">4.0</span>] ],
                            `[ [<span class="num">1.0</span>, <span class="num">1.0</span>, <span class="num">1.0</span>], [<span class="num">2.0</span>, <span class="num">2.0</span>, <span class="num">2.0</span>] ] ]


Defined in src/operator/tensor/la_op.cc:L333</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#linalg_trsm" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_trsm(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="linalg_trsm(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">linalg_trsm</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@linalg_trsm(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Solves matrix equation involving a lower triangular matrix.
Input are tensors *A*, *B*, each of dimension *n &gt;= <span class="num">2</span>* and having the same shape
on the leading *n-<span class="num">2</span>* dimensions.

If *n=<span class="num">2</span>*, *A* must be triangular. The operator performs the BLAS3 function
*trsm*, solving <span class="kw">for</span> *out* in:

   *op*\ (*A*) \* *out* = *alpha* \* *B*

<span class="kw">if</span> *rightside=False*, or

   *out* \* *op*\ (*A*) = *alpha* \* *B*

<span class="kw">if</span> *rightside=True*. Here, *alpha* is a scalar parameter, and *op()* is either the
identity or the matrix transposition (depending on *transpose*).

If *n&gt;<span class="num">2</span>*, *trsm* is performed separately on the trailing two dimensions <span class="kw">for</span> all inputs
(batch mode).

.. note:: The operator supports float32 and float64 data types only.

Examples::

   Single matrix solve
   A = `[ [<span class="num">1.0</span>, <span class="num">0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>] ]
   B = `[ [<span class="num">2.0</span>, <span class="num">2.0</span>, <span class="num">2.0</span>], [<span class="num">4.0</span>, <span class="num">4.0</span>, <span class="num">4.0</span>] ]
   trsm(A, B, alpha=<span class="num">0.5</span>) = `[ [<span class="num">1.0</span>, <span class="num">1.0</span>, <span class="num">1.0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>, <span class="num">1.0</span>] ]

   Batch matrix solve
   A = `[ `[ [<span class="num">1.0</span>, <span class="num">0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>] ], `[ [<span class="num">1.0</span>, <span class="num">0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>] ] ]
   B = `[ `[ [<span class="num">2.0</span>, <span class="num">2.0</span>, <span class="num">2.0</span>], [<span class="num">4.0</span>, <span class="num">4.0</span>, <span class="num">4.0</span>] ],
        `[ [<span class="num">4.0</span>, <span class="num">4.0</span>, <span class="num">4.0</span>], [<span class="num">8.0</span>, <span class="num">8.0</span>, <span class="num">8.0</span>] ] ]
   trsm(A, B, alpha=<span class="num">0.5</span>) = `[ `[ [<span class="num">1.0</span>, <span class="num">1.0</span>, <span class="num">1.0</span>], [<span class="num">1.0</span>, <span class="num">1.0</span>, <span class="num">1.0</span>] ],
                            `[ [<span class="num">2.0</span>, <span class="num">2.0</span>, <span class="num">2.0</span>], [<span class="num">2.0</span>, <span class="num">2.0</span>, <span class="num">2.0</span>] ] ]


Defined in src/operator/tensor/la_op.cc:L396</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#log" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="log(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="log(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">log</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@log(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise Natural logarithmic value of the input.

The natural logarithm is logarithm in base *e*, so that ``log(exp(x)) = x``

The storage <span class="kw">type</span> of ``log`` output is always dense



Defined in src/operator/tensor/elemwise_unary_op_logexp.cc:L77</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#log10" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="log10(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="log10(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">log10</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@log10(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise Base-<span class="num">10</span> logarithmic value of the input.

``<span class="num">10</span>**log10(x) = x``

The storage <span class="kw">type</span> of ``log10`` output is always dense



Defined in src/operator/tensor/elemwise_unary_op_logexp.cc:L94</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#log1p" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="log1p(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="log1p(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">log1p</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@log1p(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise ``log(<span class="num">1</span> + x)`` value of the input.

This function is more accurate than ``log(<span class="num">1</span> + x)``  <span class="kw">for</span> small ``x`` so that
:math:`<span class="num">1</span>+x\approx <span class="num">1</span>`

The storage <span class="kw">type</span> of ``log1p`` output depends upon the input storage <span class="kw">type</span>:

   - log1p(default) = default
   - log1p(row_sparse) = row_sparse
   - log1p(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_logexp.cc:L199</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#log2" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="log2(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="log2(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">log2</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@log2(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise Base-<span class="num">2</span> logarithmic value of the input.

``<span class="num">2</span>**log2(x) = x``

The storage <span class="kw">type</span> of ``log2`` output is always dense



Defined in src/operator/tensor/elemwise_unary_op_logexp.cc:L106</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#log_softmax" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="log_softmax(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="log_softmax(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">log_softmax</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@log_softmax(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the log softmax of the input.
This is equivalent to computing softmax followed by log.

Examples::

  &gt;&gt;&gt; x = mx.nd.array([<span class="num">1</span>, <span class="num">2</span>, <span class="num">.1</span>])
  &gt;&gt;&gt; mx.nd.log_softmax(x).asnumpy()
  array([-<span class="num">1.41702998</span>, -<span class="num">0.41702995</span>, -<span class="num">2.31702995</span>], dtype=float32)

  &gt;&gt;&gt; x = mx.nd.array( `[ [<span class="num">1</span>, <span class="num">2</span>, <span class="num">.1</span>],[<span class="num">.1</span>, <span class="num">2</span>, <span class="num">1</span>] ] )
  &gt;&gt;&gt; mx.nd.log_softmax(x, axis=<span class="num">0</span>).asnumpy()
  array(`[ [-<span class="num">0.34115392</span>, -<span class="num">0.69314718</span>, -<span class="num">1.24115396</span>],
         [-<span class="num">1.24115396</span>, -<span class="num">0.69314718</span>, -<span class="num">0.34115392</span>] ], dtype=float32)</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#logical_not" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="logical_not(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="logical_not(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">logical_not</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@logical_not(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the result of logical NOT (!) function

Example:
  logical_not([-<span class="num">2.</span>, <span class="num">0.</span>, <span class="num">1.</span>]) = [<span class="num">0.</span>, <span class="num">1.</span>, <span class="num">0.</span>]</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#make_loss" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="make_loss(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="make_loss(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">make_loss</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@make_loss(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Make your own loss function in network construction.

This operator accepts a customized loss function symbol as a terminal loss and
the symbol should be an operator <span class="kw">with</span> no backward dependency.
The output of <span class="kw">this</span> function is the gradient of loss <span class="kw">with</span> respect to the input data.

For example, <span class="kw">if</span> you are a making a cross entropy loss function. Assume ``out`` is the
predicted output and ``label`` is the <span class="kw">true</span> label, then the cross entropy can be defined as::

  cross_entropy = label * log(out) + (<span class="num">1</span> - label) * log(<span class="num">1</span> - out)
  loss = make_loss(cross_entropy)

We will need to use ``make_loss`` when we are creating our own loss function or we want to
combine multiple loss functions. Also we may want to stop some variables' gradients
from backpropagation. See more detail in ``BlockGrad`` or ``stop_gradient``.

The storage <span class="kw">type</span> of ``make_loss`` output depends upon the input storage <span class="kw">type</span>:

   - make_loss(default) = default
   - make_loss(row_sparse) = row_sparse



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L358</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#max" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="max(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="max(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">max</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@max(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the max of array elements over given axes.

Defined in src/operator/tensor/./broadcast_reduce_op.h:L32</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#max_axis" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="max_axis(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="max_axis(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">max_axis</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@max_axis(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the max of array elements over given axes.

Defined in src/operator/tensor/./broadcast_reduce_op.h:L32</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#mean" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="mean(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="mean(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">mean</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@mean(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the mean of array elements over given axes.

Defined in src/operator/tensor/./broadcast_reduce_op.h:L84</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#min" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="min(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="min(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">min</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@min(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the min of array elements over given axes.

Defined in src/operator/tensor/./broadcast_reduce_op.h:L47</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#min_axis" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="min_axis(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="min_axis(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">min_axis</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@min_axis(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the min of array elements over given axes.

Defined in src/operator/tensor/./broadcast_reduce_op.h:L47</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#moments" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="moments(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="moments(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">moments</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@moments(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Calculate the mean and variance of `data`.

The mean and variance are calculated by aggregating the contents of data across axes.
If x is <span class="num">1</span>-D and axes = [<span class="num">0</span>] <span class="kw">this</span> is just the mean and variance of a vector.

Example:

     x = `[ [<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>], [<span class="num">4</span>, <span class="num">5</span>, <span class="num">6</span>] ]
     mean, <span class="kw">var</span> = moments(data=x, axes=[<span class="num">0</span>])
     mean = [<span class="num">2.5</span>, <span class="num">3.5</span>, <span class="num">4.5</span>]
     <span class="kw">var</span> = [<span class="num">2.25</span>, <span class="num">2.25</span>, <span class="num">2.25</span>]
     mean, <span class="kw">var</span> = moments(data=x, axes=[<span class="num">1</span>])
     mean = [<span class="num">2.0</span>, <span class="num">5.0</span>]
     <span class="kw">var</span> = [<span class="num">0.66666667</span>, <span class="num">0.66666667</span>]
     mean, <span class="kw">var</span> = moments(data=x, axis=[<span class="num">0</span>, <span class="num">1</span>])
     mean = [<span class="num">3.5</span>]
     <span class="kw">var</span> = [<span class="num">2.9166667</span>]



Defined in src/operator/nn/moments.cc:L54</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#mp_lamb_update_phase1" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="mp_lamb_update_phase1(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="mp_lamb_update_phase1(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">mp_lamb_update_phase1</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@mp_lamb_update_phase1(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Mixed Precision version of Phase I of lamb update
it performs the following operations and returns g:.

          Link to paper: https:<span class="cmt">//arxiv.org/pdf/1904.00962.pdf</span>

          .. math::
              \begin{gather*}
              grad32 = grad(float16) * rescale_grad
              <span class="kw">if</span> (grad &lt; -clip_gradient)
              then
                   grad = -clip_gradient
              <span class="kw">if</span> (grad &gt; clip_gradient)
              then
                   grad = clip_gradient

              mean = beta1 * mean + (<span class="num">1</span> - beta1) * grad;
              variance = beta2 * variance + (<span class="num">1.</span> - beta2) * grad ^ <span class="num">2</span>;

              <span class="kw">if</span> (bias_correction)
              then
                   mean_hat = mean / (<span class="num">1.</span> - beta1^t);
                   var_hat = <span class="kw">var</span> / (<span class="num">1</span> - beta2^t);
                   g = mean_hat / (var_hat^(<span class="num">1</span>/<span class="num">2</span>) + epsilon) + wd * weight32;
              <span class="kw">else</span>
                   g = mean / (var_data^(<span class="num">1</span>/<span class="num">2</span>) + epsilon) + wd * weight32;
              \end{gather*}



Defined in src/operator/optimizer_op.cc:L1033</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#mp_lamb_update_phase2" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="mp_lamb_update_phase2(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="mp_lamb_update_phase2(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">mp_lamb_update_phase2</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@mp_lamb_update_phase2(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Mixed Precision version Phase II of lamb update
it performs the following operations and updates grad.

          Link to paper: https:<span class="cmt">//arxiv.org/pdf/1904.00962.pdf</span>

          .. math::
              \begin{gather*}
              <span class="kw">if</span> (lower_bound &gt;= <span class="num">0</span>)
              then
                   r1 = max(r1, lower_bound)
              <span class="kw">if</span> (upper_bound &gt;= <span class="num">0</span>)
              then
                   r1 = max(r1, upper_bound)

              <span class="kw">if</span> (r1 == <span class="num">0</span> or r2 == <span class="num">0</span>)
              then
                   lr = lr
              <span class="kw">else</span>
                   lr = lr * (r1/r2)
              weight32 = weight32 - lr * g
              weight(float16) = weight32
              \end{gather*}



Defined in src/operator/optimizer_op.cc:L1075</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#mp_nag_mom_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="mp_nag_mom_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="mp_nag_mom_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">mp_nag_mom_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@mp_nag_mom_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Update function <span class="kw">for</span> multi-precision Nesterov Accelerated Gradient( NAG) optimizer.


Defined in src/operator/optimizer_op.cc:L745</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#mp_sgd_mom_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="mp_sgd_mom_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="mp_sgd_mom_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">mp_sgd_mom_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@mp_sgd_mom_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Updater function <span class="kw">for</span> multi-precision sgd optimizer</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#mp_sgd_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="mp_sgd_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="mp_sgd_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">mp_sgd_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@mp_sgd_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Updater function <span class="kw">for</span> multi-precision sgd optimizer</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#multi_all_finite" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="multi_all_finite(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="multi_all_finite(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">multi_all_finite</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@multi_all_finite(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Check <span class="kw">if</span> all the float numbers in all the arrays are finite (used <span class="kw">for</span> AMP)


Defined in src/operator/contrib/all_finite.cc:L133</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#multi_lars" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="multi_lars(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="multi_lars(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">multi_lars</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@multi_lars(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Compute the LARS coefficients of multiple weights and grads from their sums of square<span class="lit">"


Defined in src/operator/contrib/multi_lars.cc:L37</span></pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#multi_mp_sgd_mom_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="multi_mp_sgd_mom_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="multi_mp_sgd_mom_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">multi_mp_sgd_mom_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@multi_mp_sgd_mom_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Momentum update function <span class="kw">for</span> multi-precision Stochastic Gradient Descent (SGD) optimizer.

Momentum update has better convergence rates on neural networks. Mathematically it looks
like below:

.. math::

  v_1 = \alpha * \nabla J(W_0)\\
  v_t = \gamma v_{t-<span class="num">1</span>} - \alpha * \nabla J(W_{t-<span class="num">1</span>})\\
  W_t = W_{t-<span class="num">1</span>} + v_t

It updates the weights using::

  v = momentum * v - learning_rate * gradient
  weight += v

Where the parameter ``momentum`` is the decay rate of momentum estimates at each epoch.



Defined in src/operator/optimizer_op.cc:L472</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#multi_mp_sgd_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="multi_mp_sgd_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="multi_mp_sgd_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">multi_mp_sgd_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@multi_mp_sgd_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Update function <span class="kw">for</span> multi-precision Stochastic Gradient Descent (SDG) optimizer.

It updates the weights using::

 weight = weight - learning_rate * (gradient + wd * weight)



Defined in src/operator/optimizer_op.cc:L417</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#multi_sgd_mom_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="multi_sgd_mom_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="multi_sgd_mom_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">multi_sgd_mom_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@multi_sgd_mom_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Momentum update function <span class="kw">for</span> Stochastic Gradient Descent (SGD) optimizer.

Momentum update has better convergence rates on neural networks. Mathematically it looks
like below:

.. math::

  v_1 = \alpha * \nabla J(W_0)\\
  v_t = \gamma v_{t-<span class="num">1</span>} - \alpha * \nabla J(W_{t-<span class="num">1</span>})\\
  W_t = W_{t-<span class="num">1</span>} + v_t

It updates the weights using::

  v = momentum * v - learning_rate * gradient
  weight += v

Where the parameter ``momentum`` is the decay rate of momentum estimates at each epoch.



Defined in src/operator/optimizer_op.cc:L374</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#multi_sgd_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="multi_sgd_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="multi_sgd_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">multi_sgd_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@multi_sgd_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Update function <span class="kw">for</span> Stochastic Gradient Descent (SDG) optimizer.

It updates the weights using::

 weight = weight - learning_rate * (gradient + wd * weight)



Defined in src/operator/optimizer_op.cc:L329</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#multi_sum_sq" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="multi_sum_sq(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="multi_sum_sq(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">multi_sum_sq</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@multi_sum_sq(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Compute the sums of squares of multiple arrays


Defined in src/operator/contrib/multi_sum_sq.cc:L36</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#nag_mom_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="nag_mom_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="nag_mom_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">nag_mom_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@nag_mom_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Update function <span class="kw">for</span> Nesterov Accelerated Gradient( NAG) optimizer.
It updates the weights using the following formula,

.. math::
  v_t = \gamma v_{t-<span class="num">1</span>} + \eta * \nabla J(W_{t-<span class="num">1</span>} - \gamma v_{t-<span class="num">1</span>})\\
  W_t = W_{t-<span class="num">1</span>} - v_t

Where
:math:`\eta` is the learning rate of the optimizer
:math:`\gamma` is the decay rate of the momentum estimate
:math:`\v_t` is the update vector at time step `t`
:math:`\W_t` is the weight vector at time step `t`



Defined in src/operator/optimizer_op.cc:L726</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#nanprod" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="nanprod(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="nanprod(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">nanprod</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@nanprod(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the product of array elements over given axes treating Not a Numbers (``NaN``) as one.



Defined in src/operator/tensor/broadcast_reduce_prod_value.cc:L47</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#nansum" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="nansum(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="nansum(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">nansum</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@nansum(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the sum of array elements over given axes treating Not a Numbers (``NaN``) as zero.



Defined in src/operator/tensor/broadcast_reduce_sum_value.cc:L102</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#negative" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="negative(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="negative(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">negative</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@negative(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Numerical negative of the argument, element-wise.

The storage <span class="kw">type</span> of ``negative`` output depends upon the input storage <span class="kw">type</span>:

   - negative(default) = default
   - negative(row_sparse) = row_sparse
   - negative(csr) = csr</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#norm" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="norm(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="norm(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">norm</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@norm(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the norm on an NDArray.

This operator computes the norm on an NDArray <span class="kw">with</span> the specified axis, depending
on the value of the ord parameter. By default, it computes the L2 norm on the entire
array. Currently only ord=<span class="num">2</span> supports sparse ndarrays.

Examples::

  x = `[ `[ [<span class="num">1</span>, <span class="num">2</span>],
        [<span class="num">3</span>, <span class="num">4</span>] ],
       `[ [<span class="num">2</span>, <span class="num">2</span>],
        [<span class="num">5</span>, <span class="num">6</span>] ] ]

  norm(x, ord=<span class="num">2</span>, axis=<span class="num">1</span>) = `[ [<span class="num">3.1622777</span> <span class="num">4.472136</span> ]
                            [<span class="num">5.3851647</span> <span class="num">6.3245554</span>] ]

  norm(x, ord=<span class="num">1</span>, axis=<span class="num">1</span>) = `[ [<span class="num">4.</span>, <span class="num">6.</span>],
                            [<span class="num">7.</span>, <span class="num">8.</span>] ]

  rsp = x.cast_storage('row_sparse')

  norm(rsp) = [<span class="num">5.47722578</span>]

  csr = x.cast_storage(<span class="lit">'csr'</span>)

  norm(csr) = [<span class="num">5.47722578</span>]



Defined in src/operator/tensor/broadcast_reduce_norm_value.cc:L89</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#normal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="normal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="normal(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">normal</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@normal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Draw random samples from a normal (Gaussian) distribution.

.. note:: The existing alias ``normal`` is deprecated.

Samples are distributed according to a normal distribution parametrized by *loc* (mean) and *scale*
(standard deviation).

Example::

   normal(loc=<span class="num">0</span>, scale=<span class="num">1</span>, shape=(<span class="num">2</span>,<span class="num">2</span>)) = `[ [ <span class="num">1.89171135</span>, -<span class="num">1.16881478</span>],
                                          [-<span class="num">1.23474145</span>,  <span class="num">1.55807114</span>] ]


Defined in src/operator/random/sample_op.cc:L113</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#one_hot" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="one_hot(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="one_hot(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">one_hot</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@one_hot(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns a one-hot array.

The locations represented by `indices` take value `on_value`, <span class="kw">while</span> all
other locations take value `off_value`.

`one_hot` operation <span class="kw">with</span> `indices` of shape ``(i0, i1)`` and `depth`  of ``d`` would result
in an output array of shape ``(i0, i1, d)`` <span class="kw">with</span>::

  output[i,j,:] = off_value
  output[i,j,indices[i,j] ] = on_value

Examples::

  one_hot([<span class="num">1</span>,<span class="num">0</span>,<span class="num">2</span>,<span class="num">0</span>], <span class="num">3</span>) = `[ [ <span class="num">0.</span>  <span class="num">1.</span>  <span class="num">0.</span>]
                           [ <span class="num">1.</span>  <span class="num">0.</span>  <span class="num">0.</span>]
                           [ <span class="num">0.</span>  <span class="num">0.</span>  <span class="num">1.</span>]
                           [ <span class="num">1.</span>  <span class="num">0.</span>  <span class="num">0.</span>] ]

  one_hot([<span class="num">1</span>,<span class="num">0</span>,<span class="num">2</span>,<span class="num">0</span>], <span class="num">3</span>, on_value=<span class="num">8</span>, off_value=<span class="num">1</span>,
          dtype=<span class="lit">'int32'</span>) = `[ [<span class="num">1</span> <span class="num">8</span> <span class="num">1</span>]
                            [<span class="num">8</span> <span class="num">1</span> <span class="num">1</span>]
                            [<span class="num">1</span> <span class="num">1</span> <span class="num">8</span>]
                            [<span class="num">8</span> <span class="num">1</span> <span class="num">1</span>] ]

  one_hot(`[ [<span class="num">1</span>,<span class="num">0</span>],[<span class="num">1</span>,<span class="num">0</span>],[<span class="num">2</span>,<span class="num">0</span>] ], <span class="num">3</span>) = `[ `[ [ <span class="num">0.</span>  <span class="num">1.</span>  <span class="num">0.</span>]
                                      [ <span class="num">1.</span>  <span class="num">0.</span>  <span class="num">0.</span>] ]

                                     `[ [ <span class="num">0.</span>  <span class="num">1.</span>  <span class="num">0.</span>]
                                      [ <span class="num">1.</span>  <span class="num">0.</span>  <span class="num">0.</span>] ]

                                     `[ [ <span class="num">0.</span>  <span class="num">0.</span>  <span class="num">1.</span>]
                                      [ <span class="num">1.</span>  <span class="num">0.</span>  <span class="num">0.</span>] ] ]


Defined in src/operator/tensor/indexing_op.cc:L883</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#ones_like" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="ones_like(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="ones_like(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">ones_like</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@ones_like(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Return an array of ones <span class="kw">with</span> the same shape and <span class="kw">type</span>
as the input array.

Examples::

  x = `[ [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>],
       [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>] ]

  ones_like(x) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
                  [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#pad" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="pad(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="pad(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">pad</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@pad(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Pads an input array <span class="kw">with</span> a constant or edge values of the array.

.. note:: `Pad` is deprecated. Use `pad` instead.

.. note:: Current implementation only supports <span class="num">4</span>D and <span class="num">5</span>D input arrays <span class="kw">with</span> padding applied
   only on axes <span class="num">1</span>, <span class="num">2</span> and <span class="num">3.</span> Expects axes <span class="num">4</span> and <span class="num">5</span> in `pad_width` to be zero.

This operation pads an input array <span class="kw">with</span> either a `constant_value` or edge values
along each axis of the input array. The amount of padding is specified by `pad_width`.

`pad_width` is a tuple of integer padding widths <span class="kw">for</span> each axis of the format
``(before_1, after_1, ... , before_N, after_N)``. The `pad_width` should be of length ``<span class="num">2</span>*N``
where ``N`` is the number of dimensions of the array.

For dimension ``N`` of the input array, ``before_N`` and ``after_N`` indicates how many values
to add before and after the elements of the array along dimension ``N``.
The widths of the higher two dimensions ``before_1``, ``after_1``, ``before_2``,
``after_2`` must be <span class="num">0.</span>

Example::

   x = `[ [`[ [  <span class="num">1.</span>   <span class="num">2.</span>   <span class="num">3.</span>]
          [  <span class="num">4.</span>   <span class="num">5.</span>   <span class="num">6.</span>] ]

         `[ [  <span class="num">7.</span>   <span class="num">8.</span>   <span class="num">9.</span>]
          [ <span class="num">10.</span>  <span class="num">11.</span>  <span class="num">12.</span>] ] ]


        `[ `[ [ <span class="num">11.</span>  <span class="num">12.</span>  <span class="num">13.</span>]
          [ <span class="num">14.</span>  <span class="num">15.</span>  <span class="num">16.</span>] ]

         `[ [ <span class="num">17.</span>  <span class="num">18.</span>  <span class="num">19.</span>]
          [ <span class="num">20.</span>  <span class="num">21.</span>  <span class="num">22.</span>] ] ] ]

   pad(x,mode=<span class="lit">"edge"</span>, pad_width=(<span class="num">0</span>,<span class="num">0</span>,<span class="num">0</span>,<span class="num">0</span>,<span class="num">1</span>,<span class="num">1</span>,<span class="num">1</span>,<span class="num">1</span>)) =

         `[ [`[ [  <span class="num">1.</span>   <span class="num">1.</span>   <span class="num">2.</span>   <span class="num">3.</span>   <span class="num">3.</span>]
            [  <span class="num">1.</span>   <span class="num">1.</span>   <span class="num">2.</span>   <span class="num">3.</span>   <span class="num">3.</span>]
            [  <span class="num">4.</span>   <span class="num">4.</span>   <span class="num">5.</span>   <span class="num">6.</span>   <span class="num">6.</span>]
            [  <span class="num">4.</span>   <span class="num">4.</span>   <span class="num">5.</span>   <span class="num">6.</span>   <span class="num">6.</span>] ]

           `[ [  <span class="num">7.</span>   <span class="num">7.</span>   <span class="num">8.</span>   <span class="num">9.</span>   <span class="num">9.</span>]
            [  <span class="num">7.</span>   <span class="num">7.</span>   <span class="num">8.</span>   <span class="num">9.</span>   <span class="num">9.</span>]
            [ <span class="num">10.</span>  <span class="num">10.</span>  <span class="num">11.</span>  <span class="num">12.</span>  <span class="num">12.</span>]
            [ <span class="num">10.</span>  <span class="num">10.</span>  <span class="num">11.</span>  <span class="num">12.</span>  <span class="num">12.</span>] ] ]


          `[ `[ [ <span class="num">11.</span>  <span class="num">11.</span>  <span class="num">12.</span>  <span class="num">13.</span>  <span class="num">13.</span>]
            [ <span class="num">11.</span>  <span class="num">11.</span>  <span class="num">12.</span>  <span class="num">13.</span>  <span class="num">13.</span>]
            [ <span class="num">14.</span>  <span class="num">14.</span>  <span class="num">15.</span>  <span class="num">16.</span>  <span class="num">16.</span>]
            [ <span class="num">14.</span>  <span class="num">14.</span>  <span class="num">15.</span>  <span class="num">16.</span>  <span class="num">16.</span>] ]

           `[ [ <span class="num">17.</span>  <span class="num">17.</span>  <span class="num">18.</span>  <span class="num">19.</span>  <span class="num">19.</span>]
            [ <span class="num">17.</span>  <span class="num">17.</span>  <span class="num">18.</span>  <span class="num">19.</span>  <span class="num">19.</span>]
            [ <span class="num">20.</span>  <span class="num">20.</span>  <span class="num">21.</span>  <span class="num">22.</span>  <span class="num">22.</span>]
            [ <span class="num">20.</span>  <span class="num">20.</span>  <span class="num">21.</span>  <span class="num">22.</span>  <span class="num">22.</span>] ] ] ]

   pad(x, mode=<span class="lit">"constant"</span>, constant_value=<span class="num">0</span>, pad_width=(<span class="num">0</span>,<span class="num">0</span>,<span class="num">0</span>,<span class="num">0</span>,<span class="num">1</span>,<span class="num">1</span>,<span class="num">1</span>,<span class="num">1</span>)) =

         `[ [`[ [  <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>   <span class="num">1.</span>   <span class="num">2.</span>   <span class="num">3.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>   <span class="num">4.</span>   <span class="num">5.</span>   <span class="num">6.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>] ]

           `[ [  <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>   <span class="num">7.</span>   <span class="num">8.</span>   <span class="num">9.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>  <span class="num">10.</span>  <span class="num">11.</span>  <span class="num">12.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>] ] ]


          `[ `[ [  <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>  <span class="num">11.</span>  <span class="num">12.</span>  <span class="num">13.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>  <span class="num">14.</span>  <span class="num">15.</span>  <span class="num">16.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>] ]

           `[ [  <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>  <span class="num">17.</span>  <span class="num">18.</span>  <span class="num">19.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>  <span class="num">20.</span>  <span class="num">21.</span>  <span class="num">22.</span>   <span class="num">0.</span>]
            [  <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>   <span class="num">0.</span>] ] ] ]




Defined in src/operator/pad.cc:L766</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#pick" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="pick(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="pick(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">pick</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@pick(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Picks elements from an input array according to the input indices along the given axis.

Given an input array of shape ``(d0, d1)`` and indices of shape ``(i0,)``, the result will be
an output array of shape ``(i0,)`` <span class="kw">with</span>::

  output[i] = input[i, indices[i] ]

By default, <span class="kw">if</span> any index mentioned is too large, it is replaced by the index that addresses
the last element along an axis (the `clip` mode).

This function supports n-dimensional input and (n-<span class="num">1</span>)-dimensional indices arrays.

Examples::

  x = `[ [ <span class="num">1.</span>,  <span class="num">2.</span>],
       [ <span class="num">3.</span>,  <span class="num">4.</span>],
       [ <span class="num">5.</span>,  <span class="num">6.</span>] ]

  <span class="cmt">// picks elements with specified indices along axis 0</span>
  pick(x, y=[<span class="num">0</span>,<span class="num">1</span>], <span class="num">0</span>) = [ <span class="num">1.</span>,  <span class="num">4.</span>]

  <span class="cmt">// picks elements with specified indices along axis 1</span>
  pick(x, y=[<span class="num">0</span>,<span class="num">1</span>,<span class="num">0</span>], <span class="num">1</span>) = [ <span class="num">1.</span>,  <span class="num">4.</span>,  <span class="num">5.</span>]

  <span class="cmt">// picks elements with specified indices along axis 1 using 'wrap' mode</span>
  <span class="cmt">// to place indicies that would normally be out of bounds</span>
  pick(x, y=[<span class="num">2</span>,-<span class="num">1</span>,-<span class="num">2</span>], <span class="num">1</span>, mode=<span class="lit">'wrap'</span>) = [ <span class="num">1.</span>,  <span class="num">4.</span>,  <span class="num">5.</span>]

  y = `[ [ <span class="num">1.</span>],
       [ <span class="num">0.</span>],
       [ <span class="num">2.</span>] ]

  <span class="cmt">// picks elements with specified indices along axis 1 and dims are maintained</span>
  pick(x, y, <span class="num">1</span>, keepdims=True) = `[ [ <span class="num">2.</span>],
                                 [ <span class="num">3.</span>],
                                 [ <span class="num">6.</span>] ]



Defined in src/operator/tensor/broadcast_reduce_op_index.cc:L151</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#preloaded_multi_mp_sgd_mom_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="preloaded_multi_mp_sgd_mom_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="preloaded_multi_mp_sgd_mom_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">preloaded_multi_mp_sgd_mom_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@preloaded_multi_mp_sgd_mom_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Momentum update function <span class="kw">for</span> multi-precision Stochastic Gradient Descent (SGD) optimizer.

Momentum update has better convergence rates on neural networks. Mathematically it looks
like below:

.. math::

  v_1 = \alpha * \nabla J(W_0)\\
  v_t = \gamma v_{t-<span class="num">1</span>} - \alpha * \nabla J(W_{t-<span class="num">1</span>})\\
  W_t = W_{t-<span class="num">1</span>} + v_t

It updates the weights using::

  v = momentum * v - learning_rate * gradient
  weight += v

Where the parameter ``momentum`` is the decay rate of momentum estimates at each epoch.



Defined in src/operator/contrib/preloaded_multi_sgd.cc:L200</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#preloaded_multi_mp_sgd_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="preloaded_multi_mp_sgd_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="preloaded_multi_mp_sgd_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">preloaded_multi_mp_sgd_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@preloaded_multi_mp_sgd_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Update function <span class="kw">for</span> multi-precision Stochastic Gradient Descent (SDG) optimizer.

It updates the weights using::

 weight = weight - learning_rate * (gradient + wd * weight)



Defined in src/operator/contrib/preloaded_multi_sgd.cc:L140</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#preloaded_multi_sgd_mom_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="preloaded_multi_sgd_mom_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="preloaded_multi_sgd_mom_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">preloaded_multi_sgd_mom_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@preloaded_multi_sgd_mom_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Momentum update function <span class="kw">for</span> Stochastic Gradient Descent (SGD) optimizer.

Momentum update has better convergence rates on neural networks. Mathematically it looks
like below:

.. math::

  v_1 = \alpha * \nabla J(W_0)\\
  v_t = \gamma v_{t-<span class="num">1</span>} - \alpha * \nabla J(W_{t-<span class="num">1</span>})\\
  W_t = W_{t-<span class="num">1</span>} + v_t

It updates the weights using::

  v = momentum * v - learning_rate * gradient
  weight += v

Where the parameter ``momentum`` is the decay rate of momentum estimates at each epoch.



Defined in src/operator/contrib/preloaded_multi_sgd.cc:L91</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#preloaded_multi_sgd_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="preloaded_multi_sgd_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="preloaded_multi_sgd_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">preloaded_multi_sgd_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@preloaded_multi_sgd_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Update function <span class="kw">for</span> Stochastic Gradient Descent (SDG) optimizer.

It updates the weights using::

 weight = weight - learning_rate * (gradient + wd * weight)



Defined in src/operator/contrib/preloaded_multi_sgd.cc:L42</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#prod" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="prod(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="prod(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">prod</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@prod(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the product of array elements over given axes.

Defined in src/operator/tensor/./broadcast_reduce_op.h:L31</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#radians" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="radians(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="radians(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">radians</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@radians(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Converts each element of the input array from degrees to radians.

.. math::
   radians([<span class="num">0</span>, <span class="num">90</span>, <span class="num">180</span>, <span class="num">270</span>, <span class="num">360</span>]) = [<span class="num">0</span>, \pi/<span class="num">2</span>, \pi, <span class="num">3</span>\pi/<span class="num">2</span>, <span class="num">2</span>\pi]

The storage <span class="kw">type</span> of ``radians`` output depends upon the input storage <span class="kw">type</span>:

   - radians(default) = default
   - radians(row_sparse) = row_sparse
   - radians(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_trig.cc:L351</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#random_exponential" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_exponential(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="random_exponential(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">random_exponential</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random_exponential(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Draw random samples from an exponential distribution.

Samples are distributed according to an exponential distribution parametrized by *lambda* (rate).

Example::

   exponential(lam=<span class="num">4</span>, shape=(<span class="num">2</span>,<span class="num">2</span>)) = `[ [ <span class="num">0.0097189</span> ,  <span class="num">0.08999364</span>],
                                      [ <span class="num">0.04146638</span>,  <span class="num">0.31715935</span>] ]


Defined in src/operator/random/sample_op.cc:L137</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#random_gamma" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_gamma(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="random_gamma(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">random_gamma</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random_gamma(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Draw random samples from a gamma distribution.

Samples are distributed according to a gamma distribution parametrized by *alpha* (shape) and *beta* (scale).

Example::

   gamma(alpha=<span class="num">9</span>, beta=<span class="num">0.5</span>, shape=(<span class="num">2</span>,<span class="num">2</span>)) = `[ [ <span class="num">7.10486984</span>,  <span class="num">3.37695289</span>],
                                            [ <span class="num">3.91697288</span>,  <span class="num">3.65933681</span>] ]


Defined in src/operator/random/sample_op.cc:L125</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#random_generalized_negative_binomial" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_generalized_negative_binomial(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="random_generalized_negative_binomial(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">random_generalized_negative_binomial</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random_generalized_negative_binomial(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Draw random samples from a generalized negative binomial distribution.

Samples are distributed according to a generalized negative binomial distribution parametrized by
*mu* (mean) and *alpha* (dispersion). *alpha* is defined as *<span class="num">1</span>/k* where *k* is the failure limit of the
number of unsuccessful experiments (generalized to real numbers).
Samples will always be returned as a floating point data <span class="kw">type</span>.

Example::

   generalized_negative_binomial(mu=<span class="num">2.0</span>, alpha=<span class="num">0.3</span>, shape=(<span class="num">2</span>,<span class="num">2</span>)) = `[ [ <span class="num">2.</span>,  <span class="num">1.</span>],
                                                                    [ <span class="num">6.</span>,  <span class="num">4.</span>] ]


Defined in src/operator/random/sample_op.cc:L179</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#random_negative_binomial" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_negative_binomial(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="random_negative_binomial(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">random_negative_binomial</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random_negative_binomial(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Draw random samples from a negative binomial distribution.

Samples are distributed according to a negative binomial distribution parametrized by
*k* (limit of unsuccessful experiments) and *p* (failure probability in each experiment).
Samples will always be returned as a floating point data <span class="kw">type</span>.

Example::

   negative_binomial(k=<span class="num">3</span>, p=<span class="num">0.4</span>, shape=(<span class="num">2</span>,<span class="num">2</span>)) = `[ [ <span class="num">4.</span>,  <span class="num">7.</span>],
                                                 [ <span class="num">2.</span>,  <span class="num">5.</span>] ]


Defined in src/operator/random/sample_op.cc:L164</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#random_normal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_normal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="random_normal(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">random_normal</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random_normal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Draw random samples from a normal (Gaussian) distribution.

.. note:: The existing alias ``normal`` is deprecated.

Samples are distributed according to a normal distribution parametrized by *loc* (mean) and *scale*
(standard deviation).

Example::

   normal(loc=<span class="num">0</span>, scale=<span class="num">1</span>, shape=(<span class="num">2</span>,<span class="num">2</span>)) = `[ [ <span class="num">1.89171135</span>, -<span class="num">1.16881478</span>],
                                          [-<span class="num">1.23474145</span>,  <span class="num">1.55807114</span>] ]


Defined in src/operator/random/sample_op.cc:L113</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#random_pdf_dirichlet" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_pdf_dirichlet(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="random_pdf_dirichlet(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">random_pdf_dirichlet</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random_pdf_dirichlet(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the value of the PDF of *sample* of
Dirichlet distributions <span class="kw">with</span> parameter *alpha*.

The shape of *alpha* must <span class="kw">match</span> the leftmost subshape of *sample*.  That is, *sample*
can have the same shape as *alpha*, in which <span class="kw">case</span> the output contains one density per
distribution, or *sample* can be a tensor of tensors <span class="kw">with</span> that shape, in which <span class="kw">case</span>
the output is a tensor of densities such that the densities at index *i* in the output
are given by the samples at index *i* in *sample* parameterized by the value of *alpha*
at index *i*.

Examples::

    random_pdf_dirichlet(sample=`[ [<span class="num">1</span>,<span class="num">2</span>],[<span class="num">2</span>,<span class="num">3</span>],[<span class="num">3</span>,<span class="num">4</span>] ], alpha=[<span class="num">2.5</span>, <span class="num">2.5</span>]) =
        [<span class="num">38.413498</span>, <span class="num">199.60245</span>, <span class="num">564.56085</span>]

    sample = `[ `[ [<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>], [<span class="num">10</span>, <span class="num">20</span>, <span class="num">30</span>], [<span class="num">100</span>, <span class="num">200</span>, <span class="num">300</span>] ],
              `[ [<span class="num">0.1</span>, <span class="num">0.2</span>, <span class="num">0.3</span>], [<span class="num">0.01</span>, <span class="num">0.02</span>, <span class="num">0.03</span>], [<span class="num">0.001</span>, <span class="num">0.002</span>, <span class="num">0.003</span>] ] ]

    random_pdf_dirichlet(sample=sample, alpha=[<span class="num">0.1</span>, <span class="num">0.4</span>, <span class="num">0.9</span>]) =
        `[ [<span class="num">2.3257459e-02</span>, <span class="num">5.8420084e-04</span>, <span class="num">1.4674458e-05</span>],
         [<span class="num">9.2589635e-01</span>, <span class="num">3.6860607e+01</span>, <span class="num">1.4674468e+03</span>] ]


Defined in src/operator/random/pdf_op.cc:L316</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#random_pdf_exponential" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_pdf_exponential(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="random_pdf_exponential(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">random_pdf_exponential</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random_pdf_exponential(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the value of the PDF of *sample* of
exponential distributions <span class="kw">with</span> parameters *lam* (rate).

The shape of *lam* must <span class="kw">match</span> the leftmost subshape of *sample*.  That is, *sample*
can have the same shape as *lam*, in which <span class="kw">case</span> the output contains one density per
distribution, or *sample* can be a tensor of tensors <span class="kw">with</span> that shape, in which <span class="kw">case</span>
the output is a tensor of densities such that the densities at index *i* in the output
are given by the samples at index *i* in *sample* parameterized by the value of *lam*
at index *i*.

Examples::

  random_pdf_exponential(sample=`[ [<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>] ], lam=[<span class="num">1</span>]) =
      `[ [<span class="num">0.36787945</span>, <span class="num">0.13533528</span>, <span class="num">0.04978707</span>] ]

  sample = `[ [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>],
            [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>],
            [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>] ]

  random_pdf_exponential(sample=sample, lam=[<span class="num">1</span>,<span class="num">0.5</span>,<span class="num">0.25</span>]) =
      `[ [<span class="num">0.36787945</span>, <span class="num">0.13533528</span>, <span class="num">0.04978707</span>],
       [<span class="num">0.30326533</span>, <span class="num">0.18393973</span>, <span class="num">0.11156508</span>],
       [<span class="num">0.1947002</span>,  <span class="num">0.15163267</span>, <span class="num">0.11809164</span>] ]


Defined in src/operator/random/pdf_op.cc:L305</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#random_pdf_gamma" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_pdf_gamma(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="random_pdf_gamma(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">random_pdf_gamma</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random_pdf_gamma(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the value of the PDF of *sample* of
gamma distributions <span class="kw">with</span> parameters *alpha* (shape) and *beta* (rate).

*alpha* and *beta* must have the same shape, which must <span class="kw">match</span> the leftmost subshape
of *sample*.  That is, *sample* can have the same shape as *alpha* and *beta*, in which
<span class="kw">case</span> the output contains one density per distribution, or *sample* can be a tensor
of tensors <span class="kw">with</span> that shape, in which <span class="kw">case</span> the output is a tensor of densities such that
the densities at index *i* in the output are given by the samples at index *i* in *sample*
parameterized by the values of *alpha* and *beta* at index *i*.

Examples::

  random_pdf_gamma(sample=`[ [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>,<span class="num">5</span>] ], alpha=[<span class="num">5</span>], beta=[<span class="num">1</span>]) =
      `[ [<span class="num">0.01532831</span>, <span class="num">0.09022352</span>, <span class="num">0.16803136</span>, <span class="num">0.19536681</span>, <span class="num">0.17546739</span>] ]

  sample = `[ [<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>, <span class="num">4</span>, <span class="num">5</span>],
            [<span class="num">2</span>, <span class="num">3</span>, <span class="num">4</span>, <span class="num">5</span>, <span class="num">6</span>],
            [<span class="num">3</span>, <span class="num">4</span>, <span class="num">5</span>, <span class="num">6</span>, <span class="num">7</span>] ]

  random_pdf_gamma(sample=sample, alpha=[<span class="num">5</span>,<span class="num">6</span>,<span class="num">7</span>], beta=[<span class="num">1</span>,<span class="num">1</span>,<span class="num">1</span>]) =
      `[ [<span class="num">0.01532831</span>, <span class="num">0.09022352</span>, <span class="num">0.16803136</span>, <span class="num">0.19536681</span>, <span class="num">0.17546739</span>],
       [<span class="num">0.03608941</span>, <span class="num">0.10081882</span>, <span class="num">0.15629345</span>, <span class="num">0.17546739</span>, <span class="num">0.16062315</span>],
       [<span class="num">0.05040941</span>, <span class="num">0.10419563</span>, <span class="num">0.14622283</span>, <span class="num">0.16062315</span>, <span class="num">0.14900276</span>] ]


Defined in src/operator/random/pdf_op.cc:L303</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#random_pdf_generalized_negative_binomial" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_pdf_generalized_negative_binomial(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="random_pdf_generalized_negative_binomial(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">random_pdf_generalized_negative_binomial</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random_pdf_generalized_negative_binomial(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the value of the PDF of *sample* of
generalized negative binomial distributions <span class="kw">with</span> parameters *mu* (mean)
and *alpha* (dispersion).  This can be understood as a reparameterization of
the negative binomial, where *k* = *<span class="num">1</span> / alpha* and *p* = *<span class="num">1</span> / (mu \* alpha + <span class="num">1</span>)*.

*mu* and *alpha* must have the same shape, which must <span class="kw">match</span> the leftmost subshape
of *sample*.  That is, *sample* can have the same shape as *mu* and *alpha*, in which
<span class="kw">case</span> the output contains one density per distribution, or *sample* can be a tensor
of tensors <span class="kw">with</span> that shape, in which <span class="kw">case</span> the output is a tensor of densities such that
the densities at index *i* in the output are given by the samples at index *i* in *sample*
parameterized by the values of *mu* and *alpha* at index *i*.

Examples::

    random_pdf_generalized_negative_binomial(sample=`[ [<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>, <span class="num">4</span>] ], alpha=[<span class="num">1</span>], mu=[<span class="num">1</span>]) =
        `[ [<span class="num">0.25</span>, <span class="num">0.125</span>, <span class="num">0.0625</span>, <span class="num">0.03125</span>] ]

    sample = `[ [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>],
              [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>] ]
    random_pdf_generalized_negative_binomial(sample=sample, alpha=[<span class="num">1</span>, <span class="num">0.6666</span>], mu=[<span class="num">1</span>, <span class="num">1.5</span>]) =
        `[ [<span class="num">0.25</span>,       <span class="num">0.125</span>,      <span class="num">0.0625</span>,     <span class="num">0.03125</span>   ],
         [<span class="num">0.26517063</span>, <span class="num">0.16573331</span>, <span class="num">0.09667706</span>, <span class="num">0.05437994</span>] ]


Defined in src/operator/random/pdf_op.cc:L314</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#random_pdf_negative_binomial" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_pdf_negative_binomial(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="random_pdf_negative_binomial(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">random_pdf_negative_binomial</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random_pdf_negative_binomial(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the value of the PDF of samples of
negative binomial distributions <span class="kw">with</span> parameters *k* (failure limit) and *p* (failure probability).

*k* and *p* must have the same shape, which must <span class="kw">match</span> the leftmost subshape
of *sample*.  That is, *sample* can have the same shape as *k* and *p*, in which
<span class="kw">case</span> the output contains one density per distribution, or *sample* can be a tensor
of tensors <span class="kw">with</span> that shape, in which <span class="kw">case</span> the output is a tensor of densities such that
the densities at index *i* in the output are given by the samples at index *i* in *sample*
parameterized by the values of *k* and *p* at index *i*.

Examples::

    random_pdf_negative_binomial(sample=`[ [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>] ], k=[<span class="num">1</span>], p=a[<span class="num">0.5</span>]) =
        `[ [<span class="num">0.25</span>, <span class="num">0.125</span>, <span class="num">0.0625</span>, <span class="num">0.03125</span>] ]

    # Note that k may be real-valued
    sample = `[ [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>],
              [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>] ]
    random_pdf_negative_binomial(sample=sample, k=[<span class="num">1</span>, <span class="num">1.5</span>], p=[<span class="num">0.5</span>, <span class="num">0.5</span>]) =
        `[ [<span class="num">0.25</span>,       <span class="num">0.125</span>,      <span class="num">0.0625</span>,     <span class="num">0.03125</span>   ],
         [<span class="num">0.26516506</span>, <span class="num">0.16572815</span>, <span class="num">0.09667476</span>, <span class="num">0.05437956</span>] ]


Defined in src/operator/random/pdf_op.cc:L310</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#random_pdf_normal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_pdf_normal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="random_pdf_normal(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">random_pdf_normal</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random_pdf_normal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the value of the PDF of *sample* of
normal distributions <span class="kw">with</span> parameters *mu* (mean) and *sigma* (standard deviation).

*mu* and *sigma* must have the same shape, which must <span class="kw">match</span> the leftmost subshape
of *sample*.  That is, *sample* can have the same shape as *mu* and *sigma*, in which
<span class="kw">case</span> the output contains one density per distribution, or *sample* can be a tensor
of tensors <span class="kw">with</span> that shape, in which <span class="kw">case</span> the output is a tensor of densities such that
the densities at index *i* in the output are given by the samples at index *i* in *sample*
parameterized by the values of *mu* and *sigma* at index *i*.

Examples::

    sample = `[ [-<span class="num">2</span>, -<span class="num">1</span>, <span class="num">0</span>, <span class="num">1</span>, <span class="num">2</span>] ]
    random_pdf_normal(sample=sample, mu=[<span class="num">0</span>], sigma=[<span class="num">1</span>]) =
        `[ [<span class="num">0.05399097</span>, <span class="num">0.24197073</span>, <span class="num">0.3989423</span>, <span class="num">0.24197073</span>, <span class="num">0.05399097</span>] ]

    random_pdf_normal(sample=sample*<span class="num">2</span>, mu=[<span class="num">0</span>,<span class="num">0</span>], sigma=[<span class="num">1</span>,<span class="num">2</span>]) =
        `[ [<span class="num">0.05399097</span>, <span class="num">0.24197073</span>, <span class="num">0.3989423</span>,  <span class="num">0.24197073</span>, <span class="num">0.05399097</span>],
         [<span class="num">0.12098537</span>, <span class="num">0.17603266</span>, <span class="num">0.19947115</span>, <span class="num">0.17603266</span>, <span class="num">0.12098537</span>] ]


Defined in src/operator/random/pdf_op.cc:L300</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#random_pdf_poisson" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_pdf_poisson(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="random_pdf_poisson(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">random_pdf_poisson</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random_pdf_poisson(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the value of the PDF of *sample* of
Poisson distributions <span class="kw">with</span> parameters *lam* (rate).

The shape of *lam* must <span class="kw">match</span> the leftmost subshape of *sample*.  That is, *sample*
can have the same shape as *lam*, in which <span class="kw">case</span> the output contains one density per
distribution, or *sample* can be a tensor of tensors <span class="kw">with</span> that shape, in which <span class="kw">case</span>
the output is a tensor of densities such that the densities at index *i* in the output
are given by the samples at index *i* in *sample* parameterized by the value of *lam*
at index *i*.

Examples::

    random_pdf_poisson(sample=`[ [<span class="num">0</span>,<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>] ], lam=[<span class="num">1</span>]) =
        `[ [<span class="num">0.36787945</span>, <span class="num">0.36787945</span>, <span class="num">0.18393973</span>, <span class="num">0.06131324</span>] ]

    sample = `[ [<span class="num">0</span>,<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>],
              [<span class="num">0</span>,<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>],
              [<span class="num">0</span>,<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>] ]

    random_pdf_poisson(sample=sample, lam=[<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>]) =
        `[ [<span class="num">0.36787945</span>, <span class="num">0.36787945</span>, <span class="num">0.18393973</span>, <span class="num">0.06131324</span>],
         [<span class="num">0.13533528</span>, <span class="num">0.27067056</span>, <span class="num">0.27067056</span>, <span class="num">0.18044704</span>],
         [<span class="num">0.04978707</span>, <span class="num">0.14936121</span>, <span class="num">0.22404182</span>, <span class="num">0.22404182</span>] ]


Defined in src/operator/random/pdf_op.cc:L307</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#random_pdf_uniform" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_pdf_uniform(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="random_pdf_uniform(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">random_pdf_uniform</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random_pdf_uniform(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the value of the PDF of *sample* of
uniform distributions on the intervals given by *[low,high)*.

*low* and *high* must have the same shape, which must <span class="kw">match</span> the leftmost subshape
of *sample*.  That is, *sample* can have the same shape as *low* and *high*, in which
<span class="kw">case</span> the output contains one density per distribution, or *sample* can be a tensor
of tensors <span class="kw">with</span> that shape, in which <span class="kw">case</span> the output is a tensor of densities such that
the densities at index *i* in the output are given by the samples at index *i* in *sample*
parameterized by the values of *low* and *high* at index *i*.

Examples::

    random_pdf_uniform(sample=`[ [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>] ], low=[<span class="num">0</span>], high=[<span class="num">10</span>]) = [<span class="num">0.1</span>, <span class="num">0.1</span>, <span class="num">0.1</span>, <span class="num">0.1</span>]

    sample = `[ `[ [<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>],
               [<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>] ],
              `[ [<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>],
               [<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>] ] ]
    low  = `[ [<span class="num">0</span>, <span class="num">0</span>],
            [<span class="num">0</span>, <span class="num">0</span>] ]
    high = `[ [ <span class="num">5</span>, <span class="num">10</span>],
            [<span class="num">15</span>, <span class="num">20</span>] ]
    random_pdf_uniform(sample=sample, low=low, high=high) =
        `[ `[ [<span class="num">0.2</span>,        <span class="num">0.2</span>,        <span class="num">0.2</span>    ],
          [<span class="num">0.1</span>,        <span class="num">0.1</span>,        <span class="num">0.1</span>    ] ],
         `[ [<span class="num">0.06667</span>,    <span class="num">0.06667</span>,    <span class="num">0.06667</span>],
          [<span class="num">0.05</span>,       <span class="num">0.05</span>,       <span class="num">0.05</span>   ] ] ]



Defined in src/operator/random/pdf_op.cc:L298</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#random_poisson" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_poisson(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="random_poisson(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">random_poisson</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random_poisson(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Draw random samples from a Poisson distribution.

Samples are distributed according to a Poisson distribution parametrized by *lambda* (rate).
Samples will always be returned as a floating point data <span class="kw">type</span>.

Example::

   poisson(lam=<span class="num">4</span>, shape=(<span class="num">2</span>,<span class="num">2</span>)) = `[ [ <span class="num">5.</span>,  <span class="num">2.</span>],
                                  [ <span class="num">4.</span>,  <span class="num">6.</span>] ]


Defined in src/operator/random/sample_op.cc:L150</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#random_randint" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_randint(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="random_randint(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">random_randint</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random_randint(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Draw random samples from a discrete uniform distribution.

Samples are uniformly distributed over the half-open interval *[low, high)*
(includes *low*, but excludes *high*).

Example::

   randint(low=<span class="num">0</span>, high=<span class="num">5</span>, shape=(<span class="num">2</span>,<span class="num">2</span>)) = `[ [ <span class="num">0</span>,  <span class="num">2</span>],
                                          [ <span class="num">3</span>,  <span class="num">1</span>] ]



Defined in src/operator/random/sample_op.cc:L194</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#random_uniform" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_uniform(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="random_uniform(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">random_uniform</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random_uniform(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Draw random samples from a uniform distribution.

.. note:: The existing alias ``uniform`` is deprecated.

Samples are uniformly distributed over the half-open interval *[low, high)*
(includes *low*, but excludes *high*).

Example::

   uniform(low=<span class="num">0</span>, high=<span class="num">1</span>, shape=(<span class="num">2</span>,<span class="num">2</span>)) = `[ [ <span class="num">0.60276335</span>,  <span class="num">0.85794562</span>],
                                          [ <span class="num">0.54488319</span>,  <span class="num">0.84725171</span>] ]



Defined in src/operator/random/sample_op.cc:L96</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#ravel_multi_index" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="ravel_multi_index(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="ravel_multi_index(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">ravel_multi_index</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@ravel_multi_index(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Converts a batch of index arrays into an array of flat indices. The operator follows numpy conventions so a single multi index is given by a column of the input matrix. The leading dimension may be left unspecified by using -<span class="num">1</span> as placeholder.

Examples::

   A = `[ [<span class="num">3</span>,<span class="num">6</span>,<span class="num">6</span>],[<span class="num">4</span>,<span class="num">5</span>,<span class="num">1</span>] ]
   ravel(A, shape=(<span class="num">7</span>,<span class="num">6</span>)) = [<span class="num">22</span>,<span class="num">41</span>,<span class="num">37</span>]
   ravel(A, shape=(-<span class="num">1</span>,<span class="num">6</span>)) = [<span class="num">22</span>,<span class="num">41</span>,<span class="num">37</span>]



Defined in src/operator/tensor/ravel.cc:L42</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#rcbrt" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="rcbrt(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="rcbrt(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">rcbrt</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@rcbrt(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise inverse cube-root value of the input.

.. math::
   rcbrt(x) = <span class="num">1</span>/\sqrt[<span class="num">3</span>]{x}

Example::

   rcbrt([<span class="num">1</span>,<span class="num">8</span>,-<span class="num">125</span>]) = [<span class="num">1.0</span>, <span class="num">0.5</span>, -<span class="num">0.2</span>]



Defined in src/operator/tensor/elemwise_unary_op_pow.cc:L323</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#reciprocal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="reciprocal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="reciprocal(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">reciprocal</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@reciprocal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the reciprocal of the argument, element-wise.

Calculates <span class="num">1</span>/x.

Example::

    reciprocal([-<span class="num">2</span>, <span class="num">1</span>, <span class="num">3</span>, <span class="num">1.6</span>, <span class="num">0.2</span>]) = [-<span class="num">0.5</span>, <span class="num">1.0</span>, <span class="num">0.33333334</span>, <span class="num">0.625</span>, <span class="num">5.0</span>]



Defined in src/operator/tensor/elemwise_unary_op_pow.cc:L43</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#relu" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="relu(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="relu(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">relu</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@relu(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes rectified linear activation.

.. math::
   max(features, <span class="num">0</span>)

The storage <span class="kw">type</span> of ``relu`` output depends upon the input storage <span class="kw">type</span>:

   - relu(default) = default
   - relu(row_sparse) = row_sparse
   - relu(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L85</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#repeat" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="repeat(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="repeat(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">repeat</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@repeat(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Repeats elements of an array.
By default, ``repeat`` flattens the input array into <span class="num">1</span>-D and then repeats the
elements::
  x = `[ [ <span class="num">1</span>, <span class="num">2</span>],
       [ <span class="num">3</span>, <span class="num">4</span>] ]
  repeat(x, repeats=<span class="num">2</span>) = [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">4.</span>]
The parameter ``axis`` specifies the axis along which to perform repeat::
  repeat(x, repeats=<span class="num">2</span>, axis=<span class="num">1</span>) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>],
                                  [ <span class="num">3.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">4.</span>] ]
  repeat(x, repeats=<span class="num">2</span>, axis=<span class="num">0</span>) = `[ [ <span class="num">1.</span>,  <span class="num">2.</span>],
                                  [ <span class="num">1.</span>,  <span class="num">2.</span>],
                                  [ <span class="num">3.</span>,  <span class="num">4.</span>],
                                  [ <span class="num">3.</span>,  <span class="num">4.</span>] ]
  repeat(x, repeats=<span class="num">2</span>, axis=-<span class="num">1</span>) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>],
                                   [ <span class="num">3.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">4.</span>] ]


Defined in src/operator/tensor/matrix_op.cc:L744</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#reset_arrays" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="reset_arrays(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="reset_arrays(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">reset_arrays</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@reset_arrays(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre><span class="std">Set</span> to zero multiple arrays


Defined in src/operator/contrib/reset_arrays.cc:L36</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#reshape" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="reshape(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="reshape(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">reshape</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@reshape(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Reshapes the input array.
.. note:: ``Reshape`` is deprecated, use ``reshape``
Given an array and a shape, <span class="kw">this</span> function returns a copy of the array in the <span class="kw">new</span> shape.
The shape is a tuple of integers such as (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>). The size of the <span class="kw">new</span> shape should be same as the size of the input array.
Example::
  reshape([<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>], shape=(<span class="num">2</span>,<span class="num">2</span>)) = `[ [<span class="num">1</span>,<span class="num">2</span>], [<span class="num">3</span>,<span class="num">4</span>] ]
<span class="std">Some</span> dimensions of the shape can take special values from the set {<span class="num">0</span>, -<span class="num">1</span>, -<span class="num">2</span>, -<span class="num">3</span>, -<span class="num">4</span>}. The significance of each is explained below:
- ``<span class="num">0</span>``  copy <span class="kw">this</span> dimension from the input to the output shape.
  Example::
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (<span class="num">4</span>,<span class="num">0</span>,<span class="num">2</span>), output shape = (<span class="num">4</span>,<span class="num">3</span>,<span class="num">2</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (<span class="num">2</span>,<span class="num">0</span>,<span class="num">0</span>), output shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>)
- ``-<span class="num">1</span>`` infers the dimension of the output shape by using the remainder of the input dimensions
  keeping the size of the <span class="kw">new</span> array same as that of the input array.
  At most one dimension of shape can be -<span class="num">1.</span>
  Example::
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (<span class="num">6</span>,<span class="num">1</span>,-<span class="num">1</span>), output shape = (<span class="num">6</span>,<span class="num">1</span>,<span class="num">4</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (<span class="num">3</span>,-<span class="num">1</span>,<span class="num">8</span>), output shape = (<span class="num">3</span>,<span class="num">1</span>,<span class="num">8</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape=(-<span class="num">1</span>,), output shape = (<span class="num">24</span>,)
- ``-<span class="num">2</span>`` copy all/remainder of the input dimensions to the output shape.
  Example::
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (-<span class="num">2</span>,), output shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (<span class="num">2</span>,-<span class="num">2</span>), output shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (-<span class="num">2</span>,<span class="num">1</span>,<span class="num">1</span>), output shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>,<span class="num">1</span>,<span class="num">1</span>)
- ``-<span class="num">3</span>`` use the product of two consecutive dimensions of the input shape as the output dimension.
  Example::
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (-<span class="num">3</span>,<span class="num">4</span>), output shape = (<span class="num">6</span>,<span class="num">4</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>,<span class="num">5</span>), shape = (-<span class="num">3</span>,-<span class="num">3</span>), output shape = (<span class="num">6</span>,<span class="num">20</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (<span class="num">0</span>,-<span class="num">3</span>), output shape = (<span class="num">2</span>,<span class="num">12</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (-<span class="num">3</span>,-<span class="num">2</span>), output shape = (<span class="num">6</span>,<span class="num">4</span>)
- ``-<span class="num">4</span>`` split one dimension of the input into two dimensions passed subsequent to -<span class="num">4</span> in shape (can contain -<span class="num">1</span>).
  Example::
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (-<span class="num">4</span>,<span class="num">1</span>,<span class="num">2</span>,-<span class="num">2</span>), output shape =(<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>)
  - input shape = (<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>), shape = (<span class="num">2</span>,-<span class="num">4</span>,-<span class="num">1</span>,<span class="num">3</span>,-<span class="num">2</span>), output shape = (<span class="num">2</span>,<span class="num">1</span>,<span class="num">3</span>,<span class="num">4</span>)
If the argument `reverse` is set to <span class="num">1</span>, then the special values are inferred from right to left.
  Example::
  - without reverse=<span class="num">1</span>, <span class="kw">for</span> input shape = (<span class="num">10</span>,<span class="num">5</span>,<span class="num">4</span>), shape = (-<span class="num">1</span>,<span class="num">0</span>), output shape would be (<span class="num">40</span>,<span class="num">5</span>)
  - <span class="kw">with</span> reverse=<span class="num">1</span>, output shape will be (<span class="num">50</span>,<span class="num">4</span>).


Defined in src/operator/tensor/matrix_op.cc:L175</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#reshape_like" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="reshape_like(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="reshape_like(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">reshape_like</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@reshape_like(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Reshape some or all dimensions of `lhs` to have the same shape as some or all dimensions of `rhs`.

Returns a **view** of the `lhs` array <span class="kw">with</span> a <span class="kw">new</span> shape without altering any data.

Example::

  x = [<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>, <span class="num">4</span>, <span class="num">5</span>, <span class="num">6</span>]
  y = `[ [<span class="num">0</span>, -<span class="num">4</span>], [<span class="num">3</span>, <span class="num">2</span>], [<span class="num">2</span>, <span class="num">2</span>] ]
  reshape_like(x, y) = `[ [<span class="num">1</span>, <span class="num">2</span>], [<span class="num">3</span>, <span class="num">4</span>], [<span class="num">5</span>, <span class="num">6</span>] ]

More precise control over how dimensions are inherited is achieved by specifying \
slices over the `lhs` and `rhs` array dimensions. Only the sliced `lhs` dimensions \
are reshaped to the `rhs` sliced dimensions, <span class="kw">with</span> the non-sliced `lhs` dimensions staying the same.

  Examples::

  - lhs shape = (<span class="num">30</span>,<span class="num">7</span>), rhs shape = (<span class="num">15</span>,<span class="num">2</span>,<span class="num">4</span>), lhs_begin=<span class="num">0</span>, lhs_end=<span class="num">1</span>, rhs_begin=<span class="num">0</span>, rhs_end=<span class="num">2</span>, output shape = (<span class="num">15</span>,<span class="num">2</span>,<span class="num">7</span>)
  - lhs shape = (<span class="num">3</span>, <span class="num">5</span>), rhs shape = (<span class="num">1</span>,<span class="num">15</span>,<span class="num">4</span>), lhs_begin=<span class="num">0</span>, lhs_end=<span class="num">2</span>, rhs_begin=<span class="num">1</span>, rhs_end=<span class="num">2</span>, output shape = (<span class="num">15</span>)

Negative indices are supported, and `<span class="std">None</span>` can be used <span class="kw">for</span> either `lhs_end` or `rhs_end` to indicate the end of the range.

  Example::

  - lhs shape = (<span class="num">30</span>, <span class="num">12</span>), rhs shape = (<span class="num">4</span>, <span class="num">2</span>, <span class="num">2</span>, <span class="num">3</span>), lhs_begin=-<span class="num">1</span>, lhs_end=<span class="std">None</span>, rhs_begin=<span class="num">1</span>, rhs_end=<span class="std">None</span>, output shape = (<span class="num">30</span>, <span class="num">2</span>, <span class="num">2</span>, <span class="num">3</span>)



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L511</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#reverse" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="reverse(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="reverse(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">reverse</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@reverse(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Reverses the order of elements along given axis <span class="kw">while</span> preserving array shape.
Note: reverse and flip are equivalent. We use reverse in the following examples.
Examples::
  x = `[ [ <span class="num">0.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>],
       [ <span class="num">5.</span>,  <span class="num">6.</span>,  <span class="num">7.</span>,  <span class="num">8.</span>,  <span class="num">9.</span>] ]
  reverse(x, axis=<span class="num">0</span>) = `[ [ <span class="num">5.</span>,  <span class="num">6.</span>,  <span class="num">7.</span>,  <span class="num">8.</span>,  <span class="num">9.</span>],
                        [ <span class="num">0.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>] ]
  reverse(x, axis=<span class="num">1</span>) = `[ [ <span class="num">4.</span>,  <span class="num">3.</span>,  <span class="num">2.</span>,  <span class="num">1.</span>,  <span class="num">0.</span>],
                        [ <span class="num">9.</span>,  <span class="num">8.</span>,  <span class="num">7.</span>,  <span class="num">6.</span>,  <span class="num">5.</span>] ]


Defined in src/operator/tensor/matrix_op.cc:L832</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#rint" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="rint(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="rint(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">rint</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@rint(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise rounded value to the nearest integer of the input.

.. note::
   - For input ``n.<span class="num">5</span>`` ``rint`` returns ``n`` <span class="kw">while</span> ``round`` returns ``n+<span class="num">1</span>``.
   - For input ``-n.<span class="num">5</span>`` both ``rint`` and ``round`` returns ``-n-<span class="num">1</span>``.

Example::

   rint([-<span class="num">1.5</span>, <span class="num">1.5</span>, -<span class="num">1.9</span>, <span class="num">1.9</span>, <span class="num">2.1</span>]) = [-<span class="num">2.</span>,  <span class="num">1.</span>, -<span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>]

The storage <span class="kw">type</span> of ``rint`` output depends upon the input storage <span class="kw">type</span>:

   - rint(default) = default
   - rint(row_sparse) = row_sparse
   - rint(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L798</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#rmsprop_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="rmsprop_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="rmsprop_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">rmsprop_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@rmsprop_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Update function <span class="kw">for</span> `RMSProp` optimizer.

`RMSprop` is a variant of stochastic gradient descent where the gradients are
divided by a cache which grows <span class="kw">with</span> the sum of squares of recent gradients?

`RMSProp` is similar to `AdaGrad`, a popular variant of `SGD` which adaptively
tunes the learning rate of each parameter. `AdaGrad` lowers the learning rate <span class="kw">for</span>
each parameter monotonically over the course of training.
While <span class="kw">this</span> is analytically motivated <span class="kw">for</span> convex optimizations, it may not be ideal
<span class="kw">for</span> non-convex problems. `RMSProp` deals <span class="kw">with</span> <span class="kw">this</span> heuristically by allowing the
learning rates to rebound as the denominator decays over time.

Define the Root Mean Square (RMS) error criterion of the gradient as
:math:`RMS[g]_t = \sqrt{E[g^<span class="num">2</span>]_t + \epsilon}`, where :math:`g` represents
gradient and :math:`E[g^<span class="num">2</span>]_t` is the decaying average over past squared gradient.

The :math:`E[g^<span class="num">2</span>]_t` is given by:

.. math::
  E[g^<span class="num">2</span>]_t = \gamma * E[g^<span class="num">2</span>]_{t-<span class="num">1</span>} + (<span class="num">1</span>-\gamma) * g_t^<span class="num">2</span>

The update step is

.. math::
  \theta_{t+<span class="num">1</span>} = \theta_t - \frac{\eta}{RMS[g]_t} g_t

The RMSProp code follows the version in
http:<span class="cmt">//www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf</span>
Tieleman &amp; Hinton, <span class="num">2012.</span>

Hinton suggests the momentum term :math:`\gamma` to be <span class="num">0.9</span> and the learning rate
:math:`\eta` to be <span class="num">0.001</span>.



Defined in src/operator/optimizer_op.cc:L797</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#rmspropalex_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="rmspropalex_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="rmspropalex_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">rmspropalex_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@rmspropalex_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Update function <span class="kw">for</span> RMSPropAlex optimizer.

`RMSPropAlex` is non-centered version of `RMSProp`.

Define :math:`E[g^<span class="num">2</span>]_t` is the decaying average over past squared gradient and
:math:`E[g]_t` is the decaying average over past gradient.

.. math::
  E[g^<span class="num">2</span>]_t = \gamma_1 * E[g^<span class="num">2</span>]_{t-<span class="num">1</span>} + (<span class="num">1</span> - \gamma_1) * g_t^<span class="num">2</span>\\
  E[g]_t = \gamma_1 * E[g]_{t-<span class="num">1</span>} + (<span class="num">1</span> - \gamma_1) * g_t\\
  \Delta_t = \gamma_2 * \Delta_{t-<span class="num">1</span>} - \frac{\eta}{\sqrt{E[g^<span class="num">2</span>]_t - E[g]_t^<span class="num">2</span> + \epsilon}} g_t\\

The update step is

.. math::
  \theta_{t+<span class="num">1</span>} = \theta_t + \Delta_t

The RMSPropAlex code follows the version in
http:<span class="cmt">//arxiv.org/pdf/1308.0850v5.pdf Eq(38) - Eq(45) by Alex Graves, 2013.</span>

Graves suggests the momentum term :math:`\gamma_1` to be <span class="num">0.95</span>, :math:`\gamma_2`
to be <span class="num">0.9</span> and the learning rate :math:`\eta` to be <span class="num">0.0001</span>.


Defined in src/operator/optimizer_op.cc:L836</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#round" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="round(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="round(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">round</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@round(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise rounded value to the nearest integer of the input.

Example::

   round([-<span class="num">1.5</span>, <span class="num">1.5</span>, -<span class="num">1.9</span>, <span class="num">1.9</span>, <span class="num">2.1</span>]) = [-<span class="num">2.</span>,  <span class="num">2.</span>, -<span class="num">2.</span>,  <span class="num">2.</span>,  <span class="num">2.</span>]

The storage <span class="kw">type</span> of ``round`` output depends upon the input storage <span class="kw">type</span>:

  - round(default) = default
  - round(row_sparse) = row_sparse
  - round(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L777</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#rsqrt" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="rsqrt(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="rsqrt(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">rsqrt</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@rsqrt(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise inverse square-root value of the input.

.. math::
   rsqrt(x) = <span class="num">1</span>/\sqrt{x}

Example::

   rsqrt([<span class="num">4</span>,<span class="num">9</span>,<span class="num">16</span>]) = [<span class="num">0.5</span>, <span class="num">0.33333334</span>, <span class="num">0.25</span>]

The storage <span class="kw">type</span> of ``rsqrt`` output is always dense



Defined in src/operator/tensor/elemwise_unary_op_pow.cc:L221</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sample_exponential" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sample_exponential(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sample_exponential(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sample_exponential</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sample_exponential(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Concurrent sampling from multiple
exponential distributions <span class="kw">with</span> parameters lambda (rate).

The parameters of the distributions are provided as an input array.
Let *[s]* be the shape of the input array, *n* be the dimension of *[s]*, *[t]*
be the shape specified as the parameter of the operator, and *m* be the dimension
of *[t]*. Then the output will be a *(n+m)*-dimensional array <span class="kw">with</span> shape *[s]x[t]*.

For any valid *n*-dimensional index *i* <span class="kw">with</span> respect to the input array, *output[i]*
will be an *m*-dimensional array that holds randomly drawn samples from the distribution
which is parameterized by the input value at index *i*. If the shape parameter of the
operator is not set, then one sample will be drawn per distribution and the output array
has the same shape as the input array.

Examples::

   lam = [ <span class="num">1.0</span>, <span class="num">8.5</span> ]

   <span class="cmt">// Draw a single sample for each distribution</span>
   sample_exponential(lam) = [ <span class="num">0.51837951</span>,  <span class="num">0.09994757</span>]

   <span class="cmt">// Draw a vector containing two samples for each distribution</span>
   sample_exponential(lam, shape=(<span class="num">2</span>)) = `[ [ <span class="num">0.51837951</span>,  <span class="num">0.19866663</span>],
                                         [ <span class="num">0.09994757</span>,  <span class="num">0.50447971</span>] ]


Defined in src/operator/random/multisample_op.cc:L284</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sample_gamma" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sample_gamma(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sample_gamma(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sample_gamma</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sample_gamma(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Concurrent sampling from multiple
gamma distributions <span class="kw">with</span> parameters *alpha* (shape) and *beta* (scale).

The parameters of the distributions are provided as input arrays.
Let *[s]* be the shape of the input arrays, *n* be the dimension of *[s]*, *[t]*
be the shape specified as the parameter of the operator, and *m* be the dimension
of *[t]*. Then the output will be a *(n+m)*-dimensional array <span class="kw">with</span> shape *[s]x[t]*.

For any valid *n*-dimensional index *i* <span class="kw">with</span> respect to the input arrays, *output[i]*
will be an *m*-dimensional array that holds randomly drawn samples from the distribution
which is parameterized by the input values at index *i*. If the shape parameter of the
operator is not set, then one sample will be drawn per distribution and the output array
has the same shape as the input arrays.

Examples::

   alpha = [ <span class="num">0.0</span>, <span class="num">2.5</span> ]
   beta = [ <span class="num">1.0</span>, <span class="num">0.7</span> ]

   <span class="cmt">// Draw a single sample for each distribution</span>
   sample_gamma(alpha, beta) = [ <span class="num">0.</span>        ,  <span class="num">2.25797319</span>]

   <span class="cmt">// Draw a vector containing two samples for each distribution</span>
   sample_gamma(alpha, beta, shape=(<span class="num">2</span>)) = `[ [ <span class="num">0.</span>        ,  <span class="num">0.</span>        ],
                                           [ <span class="num">2.25797319</span>,  <span class="num">1.70734084</span>] ]


Defined in src/operator/random/multisample_op.cc:L282</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sample_generalized_negative_binomial" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sample_generalized_negative_binomial(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sample_generalized_negative_binomial(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sample_generalized_negative_binomial</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sample_generalized_negative_binomial(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Concurrent sampling from multiple
generalized negative binomial distributions <span class="kw">with</span> parameters *mu* (mean) and *alpha* (dispersion).

The parameters of the distributions are provided as input arrays.
Let *[s]* be the shape of the input arrays, *n* be the dimension of *[s]*, *[t]*
be the shape specified as the parameter of the operator, and *m* be the dimension
of *[t]*. Then the output will be a *(n+m)*-dimensional array <span class="kw">with</span> shape *[s]x[t]*.

For any valid *n*-dimensional index *i* <span class="kw">with</span> respect to the input arrays, *output[i]*
will be an *m*-dimensional array that holds randomly drawn samples from the distribution
which is parameterized by the input values at index *i*. If the shape parameter of the
operator is not set, then one sample will be drawn per distribution and the output array
has the same shape as the input arrays.

Samples will always be returned as a floating point data <span class="kw">type</span>.

Examples::

   mu = [ <span class="num">2.0</span>, <span class="num">2.5</span> ]
   alpha = [ <span class="num">1.0</span>, <span class="num">0.1</span> ]

   <span class="cmt">// Draw a single sample for each distribution</span>
   sample_generalized_negative_binomial(mu, alpha) = [ <span class="num">0.</span>,  <span class="num">3.</span>]

   <span class="cmt">// Draw a vector containing two samples for each distribution</span>
   sample_generalized_negative_binomial(mu, alpha, shape=(<span class="num">2</span>)) = `[ [ <span class="num">0.</span>,  <span class="num">3.</span>],
                                                                 [ <span class="num">3.</span>,  <span class="num">1.</span>] ]


Defined in src/operator/random/multisample_op.cc:L293</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sample_multinomial" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sample_multinomial(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sample_multinomial(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sample_multinomial</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sample_multinomial(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Concurrent sampling from multiple multinomial distributions.

*data* is an *n* dimensional array whose last dimension has length *k*, where
*k* is the number of possible outcomes of each multinomial distribution. This
operator will draw *shape* samples from each distribution. If shape is empty
one sample will be drawn from each distribution.

If *get_prob* is <span class="kw">true</span>, a second array containing log likelihood of the drawn
samples will also be returned. This is usually used <span class="kw">for</span> reinforcement learning
where you can provide reward as head gradient <span class="kw">for</span> <span class="kw">this</span> array to estimate
gradient.

Note that the input distribution must be normalized, i.e. *data* must sum to
<span class="num">1</span> along its last axis.

Examples::

   probs = `[ [<span class="num">0</span>, <span class="num">0.1</span>, <span class="num">0.2</span>, <span class="num">0.3</span>, <span class="num">0.4</span>], [<span class="num">0.4</span>, <span class="num">0.3</span>, <span class="num">0.2</span>, <span class="num">0.1</span>, <span class="num">0</span>] ]

   <span class="cmt">// Draw a single sample for each distribution</span>
   sample_multinomial(probs) = [<span class="num">3</span>, <span class="num">0</span>]

   <span class="cmt">// Draw a vector containing two samples for each distribution</span>
   sample_multinomial(probs, shape=(<span class="num">2</span>)) = `[ [<span class="num">4</span>, <span class="num">2</span>],
                                           [<span class="num">0</span>, <span class="num">0</span>] ]

   <span class="cmt">// requests log likelihood</span>
   sample_multinomial(probs, get_prob=True) = [<span class="num">2</span>, <span class="num">1</span>], [<span class="num">0.2</span>, <span class="num">0.3</span>]</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sample_negative_binomial" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sample_negative_binomial(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sample_negative_binomial(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sample_negative_binomial</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sample_negative_binomial(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Concurrent sampling from multiple
negative binomial distributions <span class="kw">with</span> parameters *k* (failure limit) and *p* (failure probability).

The parameters of the distributions are provided as input arrays.
Let *[s]* be the shape of the input arrays, *n* be the dimension of *[s]*, *[t]*
be the shape specified as the parameter of the operator, and *m* be the dimension
of *[t]*. Then the output will be a *(n+m)*-dimensional array <span class="kw">with</span> shape *[s]x[t]*.

For any valid *n*-dimensional index *i* <span class="kw">with</span> respect to the input arrays, *output[i]*
will be an *m*-dimensional array that holds randomly drawn samples from the distribution
which is parameterized by the input values at index *i*. If the shape parameter of the
operator is not set, then one sample will be drawn per distribution and the output array
has the same shape as the input arrays.

Samples will always be returned as a floating point data <span class="kw">type</span>.

Examples::

   k = [ <span class="num">20</span>, <span class="num">49</span> ]
   p = [ <span class="num">0.4</span> , <span class="num">0.77</span> ]

   <span class="cmt">// Draw a single sample for each distribution</span>
   sample_negative_binomial(k, p) = [ <span class="num">15.</span>,  <span class="num">16.</span>]

   <span class="cmt">// Draw a vector containing two samples for each distribution</span>
   sample_negative_binomial(k, p, shape=(<span class="num">2</span>)) = `[ [ <span class="num">15.</span>,  <span class="num">50.</span>],
                                                [ <span class="num">16.</span>,  <span class="num">12.</span>] ]


Defined in src/operator/random/multisample_op.cc:L289</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sample_normal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sample_normal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sample_normal(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sample_normal</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sample_normal(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Concurrent sampling from multiple
normal distributions <span class="kw">with</span> parameters *mu* (mean) and *sigma* (standard deviation).

The parameters of the distributions are provided as input arrays.
Let *[s]* be the shape of the input arrays, *n* be the dimension of *[s]*, *[t]*
be the shape specified as the parameter of the operator, and *m* be the dimension
of *[t]*. Then the output will be a *(n+m)*-dimensional array <span class="kw">with</span> shape *[s]x[t]*.

For any valid *n*-dimensional index *i* <span class="kw">with</span> respect to the input arrays, *output[i]*
will be an *m*-dimensional array that holds randomly drawn samples from the distribution
which is parameterized by the input values at index *i*. If the shape parameter of the
operator is not set, then one sample will be drawn per distribution and the output array
has the same shape as the input arrays.

Examples::

   mu = [ <span class="num">0.0</span>, <span class="num">2.5</span> ]
   sigma = [ <span class="num">1.0</span>, <span class="num">3.7</span> ]

   <span class="cmt">// Draw a single sample for each distribution</span>
   sample_normal(mu, sigma) = [-<span class="num">0.56410581</span>,  <span class="num">0.95934606</span>]

   <span class="cmt">// Draw a vector containing two samples for each distribution</span>
   sample_normal(mu, sigma, shape=(<span class="num">2</span>)) = `[ [-<span class="num">0.56410581</span>,  <span class="num">0.2928229</span> ],
                                          [ <span class="num">0.95934606</span>,  <span class="num">4.48287058</span>] ]


Defined in src/operator/random/multisample_op.cc:L279</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sample_poisson" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sample_poisson(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sample_poisson(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sample_poisson</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sample_poisson(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Concurrent sampling from multiple
Poisson distributions <span class="kw">with</span> parameters lambda (rate).

The parameters of the distributions are provided as an input array.
Let *[s]* be the shape of the input array, *n* be the dimension of *[s]*, *[t]*
be the shape specified as the parameter of the operator, and *m* be the dimension
of *[t]*. Then the output will be a *(n+m)*-dimensional array <span class="kw">with</span> shape *[s]x[t]*.

For any valid *n*-dimensional index *i* <span class="kw">with</span> respect to the input array, *output[i]*
will be an *m*-dimensional array that holds randomly drawn samples from the distribution
which is parameterized by the input value at index *i*. If the shape parameter of the
operator is not set, then one sample will be drawn per distribution and the output array
has the same shape as the input array.

Samples will always be returned as a floating point data <span class="kw">type</span>.

Examples::

   lam = [ <span class="num">1.0</span>, <span class="num">8.5</span> ]

   <span class="cmt">// Draw a single sample for each distribution</span>
   sample_poisson(lam) = [  <span class="num">0.</span>,  <span class="num">13.</span>]

   <span class="cmt">// Draw a vector containing two samples for each distribution</span>
   sample_poisson(lam, shape=(<span class="num">2</span>)) = `[ [  <span class="num">0.</span>,   <span class="num">4.</span>],
                                     [ <span class="num">13.</span>,   <span class="num">8.</span>] ]


Defined in src/operator/random/multisample_op.cc:L286</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sample_uniform" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sample_uniform(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sample_uniform(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sample_uniform</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sample_uniform(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Concurrent sampling from multiple
uniform distributions on the intervals given by *[low,high)*.

The parameters of the distributions are provided as input arrays.
Let *[s]* be the shape of the input arrays, *n* be the dimension of *[s]*, *[t]*
be the shape specified as the parameter of the operator, and *m* be the dimension
of *[t]*. Then the output will be a *(n+m)*-dimensional array <span class="kw">with</span> shape *[s]x[t]*.

For any valid *n*-dimensional index *i* <span class="kw">with</span> respect to the input arrays, *output[i]*
will be an *m*-dimensional array that holds randomly drawn samples from the distribution
which is parameterized by the input values at index *i*. If the shape parameter of the
operator is not set, then one sample will be drawn per distribution and the output array
has the same shape as the input arrays.

Examples::

   low = [ <span class="num">0.0</span>, <span class="num">2.5</span> ]
   high = [ <span class="num">1.0</span>, <span class="num">3.7</span> ]

   <span class="cmt">// Draw a single sample for each distribution</span>
   sample_uniform(low, high) = [ <span class="num">0.40451524</span>,  <span class="num">3.18687344</span>]

   <span class="cmt">// Draw a vector containing two samples for each distribution</span>
   sample_uniform(low, high, shape=(<span class="num">2</span>)) = `[ [ <span class="num">0.40451524</span>,  <span class="num">0.18017688</span>],
                                           [ <span class="num">3.18687344</span>,  <span class="num">3.68352246</span>] ]


Defined in src/operator/random/multisample_op.cc:L277</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#scatter_nd" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="scatter_nd(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="scatter_nd(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">scatter_nd</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@scatter_nd(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Scatters data into a <span class="kw">new</span> tensor according to indices.

Given `data` <span class="kw">with</span> shape `(Y_0, ..., Y_{K-<span class="num">1</span>}, X_M, ..., X_{N-<span class="num">1</span>})` and indices <span class="kw">with</span> shape
`(M, Y_0, ..., Y_{K-<span class="num">1</span>})`, the output will have shape `(X_0, X_1, ..., X_{N-<span class="num">1</span>})`,
where `M &lt;= N`. If `M == N`, data shape should simply be `(Y_0, ..., Y_{K-<span class="num">1</span>})`.

The elements in output is defined as follows::

  output[indices[<span class="num">0</span>, y_0, ..., y_{K-<span class="num">1</span>}],
         ...,
         indices[M-<span class="num">1</span>, y_0, ..., y_{K-<span class="num">1</span>}],
         x_M, ..., x_{N-<span class="num">1</span>}] = data[y_0, ..., y_{K-<span class="num">1</span>}, x_M, ..., x_{N-<span class="num">1</span>}]

all other entries in output are <span class="num">0.</span>

.. warning::

    If the indices have duplicates, the result will be non-deterministic and
    the gradient of `scatter_nd` will not be correct!!


Examples::

  data = [<span class="num">2</span>, <span class="num">3</span>, <span class="num">0</span>]
  indices = `[ [<span class="num">1</span>, <span class="num">1</span>, <span class="num">0</span>], [<span class="num">0</span>, <span class="num">1</span>, <span class="num">0</span>] ]
  shape = (<span class="num">2</span>, <span class="num">2</span>)
  scatter_nd(data, indices, shape) = `[ [<span class="num">0</span>, <span class="num">0</span>], [<span class="num">2</span>, <span class="num">3</span>] ]

  data = `[ `[ [<span class="num">1</span>, <span class="num">2</span>], [<span class="num">3</span>, <span class="num">4</span>] ], `[ [<span class="num">5</span>, <span class="num">6</span>], [<span class="num">7</span>, <span class="num">8</span>] ] ]
  indices = `[ [<span class="num">0</span>, <span class="num">1</span>], [<span class="num">1</span>, <span class="num">1</span>] ]
  shape = (<span class="num">2</span>, <span class="num">2</span>, <span class="num">2</span>, <span class="num">2</span>)
  scatter_nd(data, indices, shape) = `[ [`[ [<span class="num">0</span>, <span class="num">0</span>],
                                        [<span class="num">0</span>, <span class="num">0</span>] ],

                                       `[ [<span class="num">1</span>, <span class="num">2</span>],
                                        [<span class="num">3</span>, <span class="num">4</span>] ] ],

                                      `[ `[ [<span class="num">0</span>, <span class="num">0</span>],
                                        [<span class="num">0</span>, <span class="num">0</span>] ],

                                       `[ [<span class="num">5</span>, <span class="num">6</span>],
                                        [<span class="num">7</span>, <span class="num">8</span>] ] ] ]</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sgd_mom_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sgd_mom_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sgd_mom_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sgd_mom_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sgd_mom_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Momentum update function <span class="kw">for</span> Stochastic Gradient Descent (SGD) optimizer.

Momentum update has better convergence rates on neural networks. Mathematically it looks
like below:

.. math::

  v_1 = \alpha * \nabla J(W_0)\\
  v_t = \gamma v_{t-<span class="num">1</span>} - \alpha * \nabla J(W_{t-<span class="num">1</span>})\\
  W_t = W_{t-<span class="num">1</span>} + v_t

It updates the weights using::

  v = momentum * v - learning_rate * gradient
  weight += v

Where the parameter ``momentum`` is the decay rate of momentum estimates at each epoch.

However, <span class="kw">if</span> grad's storage <span class="kw">type</span> is ``row_sparse``, ``lazy_update`` is True and weight's storage
<span class="kw">type</span> is the same as momentum's storage <span class="kw">type</span>,
only the row slices whose indices appear in grad.indices are updated (<span class="kw">for</span> both weight and momentum)::

  <span class="kw">for</span> row in gradient.indices:
      v[row] = momentum[row] * v[row] - learning_rate * gradient[row]
      weight[row] += v[row]



Defined in src/operator/optimizer_op.cc:L565</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sgd_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sgd_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sgd_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sgd_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sgd_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Update function <span class="kw">for</span> Stochastic Gradient Descent (SGD) optimizer.

It updates the weights using::

 weight = weight - learning_rate * (gradient + wd * weight)

However, <span class="kw">if</span> gradient is of ``row_sparse`` storage <span class="kw">type</span> and ``lazy_update`` is True,
only the row slices whose indices appear in grad.indices are updated::

 <span class="kw">for</span> row in gradient.indices:
     weight[row] = weight[row] - learning_rate * (gradient[row] + wd * weight[row])



Defined in src/operator/optimizer_op.cc:L524</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#shape_array" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="shape_array(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="shape_array(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">shape_array</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@shape_array(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns a <span class="num">1</span>D int64 array containing the shape of data.

Example::

  shape_array(`[ [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>], [<span class="num">5</span>,<span class="num">6</span>,<span class="num">7</span>,<span class="num">8</span>] ]) = [<span class="num">2</span>,<span class="num">4</span>]



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L573</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#shuffle" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="shuffle(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="shuffle(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">shuffle</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@shuffle(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Randomly shuffle the elements.

This shuffles the array along the first axis.
The order of the elements in each subarray does not change.
For example, <span class="kw">if</span> a <span class="num">2</span>D array is given, the order of the rows randomly changes,
but the order of the elements in each row does not change.</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sigmoid" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sigmoid(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sigmoid(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sigmoid</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sigmoid(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes sigmoid of x element-wise.

.. math::
   y = <span class="num">1</span> / (<span class="num">1</span> + exp(-x))

The storage <span class="kw">type</span> of ``sigmoid`` output is always dense



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L119</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sign" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sign(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sign(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sign</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sign(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise sign of the input.

Example::

   sign([-<span class="num">2</span>, <span class="num">0</span>, <span class="num">3</span>]) = [-<span class="num">1</span>, <span class="num">0</span>, <span class="num">1</span>]

The storage <span class="kw">type</span> of ``sign`` output depends upon the input storage <span class="kw">type</span>:

   - sign(default) = default
   - sign(row_sparse) = row_sparse
   - sign(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L758</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#signsgd_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="signsgd_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="signsgd_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">signsgd_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@signsgd_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Update function <span class="kw">for</span> SignSGD optimizer.

.. math::

 g_t = \nabla J(W_{t-<span class="num">1</span>})\\
 W_t = W_{t-<span class="num">1</span>} - \eta_t \text{sign}(g_t)

It updates the weights using::

 weight = weight - learning_rate * sign(gradient)

.. note::
   - sparse ndarray not supported <span class="kw">for</span> <span class="kw">this</span> optimizer yet.


Defined in src/operator/optimizer_op.cc:L63</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#signum_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="signum_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="signum_update(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">signum_update</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@signum_update(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>SIGN momentUM (Signum) optimizer.

.. math::

 g_t = \nabla J(W_{t-<span class="num">1</span>})\\
 m_t = \beta m_{t-<span class="num">1</span>} + (<span class="num">1</span> - \beta) g_t\\
 W_t = W_{t-<span class="num">1</span>} - \eta_t \text{sign}(m_t)

It updates the weights using::
 state = momentum * state + (<span class="num">1</span>-momentum) * gradient
 weight = weight - learning_rate * sign(state)

Where the parameter ``momentum`` is the decay rate of momentum estimates at each epoch.

.. note::
   - sparse ndarray not supported <span class="kw">for</span> <span class="kw">this</span> optimizer yet.


Defined in src/operator/optimizer_op.cc:L92</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sin" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sin(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sin(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sin</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sin(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the element-wise sine of the input array.

The input should be in radians (:math:`<span class="num">2</span>\pi` rad equals <span class="num">360</span> degrees).

.. math::
   sin([<span class="num">0</span>, \pi/<span class="num">4</span>, \pi/<span class="num">2</span>]) = [<span class="num">0</span>, <span class="num">0.707</span>, <span class="num">1</span>]

The storage <span class="kw">type</span> of ``sin`` output depends upon the input storage <span class="kw">type</span>:

   - sin(default) = default
   - sin(row_sparse) = row_sparse
   - sin(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_trig.cc:L47</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sinh" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sinh(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sinh(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sinh</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sinh(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the hyperbolic sine of the input array, computed element-wise.

.. math::
   sinh(x) = <span class="num">0.5</span>\times(exp(x) - exp(-x))

The storage <span class="kw">type</span> of ``sinh`` output depends upon the input storage <span class="kw">type</span>:

   - sinh(default) = default
   - sinh(row_sparse) = row_sparse
   - sinh(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_trig.cc:L371</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#size_array" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="size_array(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="size_array(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">size_array</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@size_array(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns a <span class="num">1</span>D int64 array containing the size of data.

Example::

  size_array(`[ [<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>], [<span class="num">5</span>,<span class="num">6</span>,<span class="num">7</span>,<span class="num">8</span>] ]) = [<span class="num">8</span>]



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L624</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#slice" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="slice(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="slice(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">slice</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@slice(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Slices a region of the array.
.. note:: ``crop`` is deprecated. Use ``slice`` instead.
This function returns a sliced array between the indices given
by `begin` and `end` <span class="kw">with</span> the corresponding `step`.
For an input array of ``shape=(d_0, d_1, ..., d_n-<span class="num">1</span>)``,
slice operation <span class="kw">with</span> ``begin=(b_0, b_1...b_m-<span class="num">1</span>)``,
``end=(e_0, e_1, ..., e_m-<span class="num">1</span>)``, and ``step=(s_0, s_1, ..., s_m-<span class="num">1</span>)``,
where m &lt;= n, results in an array <span class="kw">with</span> the shape
``(|e_0-b_0|/|s_0|, ..., |e_m-<span class="num">1</span>-b_m-<span class="num">1</span>|/|s_m-<span class="num">1</span>|, d_m, ..., d_n-<span class="num">1</span>)``.
The resulting array's *k*-th dimension contains elements
from the *k*-th dimension of the input array starting
from index ``b_k`` (inclusive) <span class="kw">with</span> step ``s_k``
until reaching ``e_k`` (exclusive).
If the *k*-th elements are `<span class="std">None</span>` in the sequence of `begin`, `end`,
and `step`, the following rule will be used to set default values.
If `s_k` is `<span class="std">None</span>`, set `s_k=<span class="num">1</span>`. If `s_k &gt; <span class="num">0</span>`, set `b_k=<span class="num">0</span>`, `e_k=d_k`;
<span class="kw">else</span>, set `b_k=d_k-<span class="num">1</span>`, `e_k=-<span class="num">1</span>`.
The storage <span class="kw">type</span> of ``slice`` output depends on storage types of inputs
- slice(csr) = csr
- otherwise, ``slice`` generates output <span class="kw">with</span> default storage
.. note:: When input data storage <span class="kw">type</span> is csr, it only supports
   step=(), or step=(<span class="std">None</span>,), or step=(<span class="num">1</span>,) to generate a csr output.
   For other step parameter values, it falls back to slicing
   a dense tensor.
Example::
  x = `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>,   <span class="num">4.</span>],
       [  <span class="num">5.</span>,   <span class="num">6.</span>,   <span class="num">7.</span>,   <span class="num">8.</span>],
       [  <span class="num">9.</span>,  <span class="num">10.</span>,  <span class="num">11.</span>,  <span class="num">12.</span>] ]
  slice(x, begin=(<span class="num">0</span>,<span class="num">1</span>), end=(<span class="num">2</span>,<span class="num">4</span>)) = `[ [ <span class="num">2.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>],
                                     [ <span class="num">6.</span>,  <span class="num">7.</span>,  <span class="num">8.</span>] ]
  slice(x, begin=(<span class="std">None</span>, <span class="num">0</span>), end=(<span class="std">None</span>, <span class="num">3</span>), step=(-<span class="num">1</span>, <span class="num">2</span>)) = `[ [<span class="num">9.</span>, <span class="num">11.</span>],
                                                            [<span class="num">5.</span>,  <span class="num">7.</span>],
                                                            [<span class="num">1.</span>,  <span class="num">3.</span>] ]


Defined in src/operator/tensor/matrix_op.cc:L482</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#slice_axis" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="slice_axis(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="slice_axis(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">slice_axis</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@slice_axis(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Slices along a given axis.
Returns an array slice along a given `axis` starting from the `begin` index
to the `end` index.
Examples::
  x = `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>,   <span class="num">4.</span>],
       [  <span class="num">5.</span>,   <span class="num">6.</span>,   <span class="num">7.</span>,   <span class="num">8.</span>],
       [  <span class="num">9.</span>,  <span class="num">10.</span>,  <span class="num">11.</span>,  <span class="num">12.</span>] ]
  slice_axis(x, axis=<span class="num">0</span>, begin=<span class="num">1</span>, end=<span class="num">3</span>) = `[ [  <span class="num">5.</span>,   <span class="num">6.</span>,   <span class="num">7.</span>,   <span class="num">8.</span>],
                                           [  <span class="num">9.</span>,  <span class="num">10.</span>,  <span class="num">11.</span>,  <span class="num">12.</span>] ]
  slice_axis(x, axis=<span class="num">1</span>, begin=<span class="num">0</span>, end=<span class="num">2</span>) = `[ [  <span class="num">1.</span>,   <span class="num">2.</span>],
                                           [  <span class="num">5.</span>,   <span class="num">6.</span>],
                                           [  <span class="num">9.</span>,  <span class="num">10.</span>] ]
  slice_axis(x, axis=<span class="num">1</span>, begin=-<span class="num">3</span>, end=-<span class="num">1</span>) = `[ [  <span class="num">2.</span>,   <span class="num">3.</span>],
                                             [  <span class="num">6.</span>,   <span class="num">7.</span>],
                                             [ <span class="num">10.</span>,  <span class="num">11.</span>] ]


Defined in src/operator/tensor/matrix_op.cc:L571</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#slice_like" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="slice_like(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="slice_like(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">slice_like</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@slice_like(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Slices a region of the array like the shape of another array.
This function is similar to ``slice``, however, the `begin` are always `<span class="num">0</span>`s
and `end` of specific axes are inferred from the second input `shape_like`.
Given the second `shape_like` input of ``shape=(d_0, d_1, ..., d_n-<span class="num">1</span>)``,
a ``slice_like`` operator <span class="kw">with</span> default empty `axes`, it performs the
following operation:
`` out = slice(input, begin=(<span class="num">0</span>, <span class="num">0</span>, ..., <span class="num">0</span>), end=(d_0, d_1, ..., d_n-<span class="num">1</span>))``.
When `axes` is not empty, it is used to speficy which axes are being sliced.
Given a <span class="num">4</span>-d input data, ``slice_like`` operator <span class="kw">with</span> ``axes=(<span class="num">0</span>, <span class="num">2</span>, -<span class="num">1</span>)``
will perform the following operation:
`` out = slice(input, begin=(<span class="num">0</span>, <span class="num">0</span>, <span class="num">0</span>, <span class="num">0</span>), end=(d_0, <span class="std">None</span>, d_2, d_3))``.
Note that it is allowed to have first and second input <span class="kw">with</span> different dimensions,
however, you have to make sure the `axes` are specified and not exceeding the
dimension limits.
For example, given `input_1` <span class="kw">with</span> ``shape=(<span class="num">2</span>,<span class="num">3</span>,<span class="num">4</span>,<span class="num">5</span>)`` and `input_2` <span class="kw">with</span>
``shape=(<span class="num">1</span>,<span class="num">2</span>,<span class="num">3</span>)``, it is not allowed to use:
`` out = slice_like(a, b)`` because ndim of `input_1` is <span class="num">4</span>, and ndim of `input_2`
is <span class="num">3.</span>
The following is allowed in <span class="kw">this</span> situation:
`` out = slice_like(a, b, axes=(<span class="num">0</span>, <span class="num">2</span>))``
Example::
  x = `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>,   <span class="num">4.</span>],
       [  <span class="num">5.</span>,   <span class="num">6.</span>,   <span class="num">7.</span>,   <span class="num">8.</span>],
       [  <span class="num">9.</span>,  <span class="num">10.</span>,  <span class="num">11.</span>,  <span class="num">12.</span>] ]
  y = `[ [  <span class="num">0.</span>,   <span class="num">0.</span>,   <span class="num">0.</span>],
       [  <span class="num">0.</span>,   <span class="num">0.</span>,   <span class="num">0.</span>] ]
  slice_like(x, y) = `[ [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>]
                      [ <span class="num">5.</span>,  <span class="num">6.</span>,  <span class="num">7.</span>] ]
  slice_like(x, y, axes=(<span class="num">0</span>, <span class="num">1</span>)) = `[ [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>]
                                   [ <span class="num">5.</span>,  <span class="num">6.</span>,  <span class="num">7.</span>] ]
  slice_like(x, y, axes=(<span class="num">0</span>)) = `[ [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>]
                                [ <span class="num">5.</span>,  <span class="num">6.</span>,  <span class="num">7.</span>,  <span class="num">8.</span>] ]
  slice_like(x, y, axes=(-<span class="num">1</span>)) = `[ [  <span class="num">1.</span>,   <span class="num">2.</span>,   <span class="num">3.</span>]
                                 [  <span class="num">5.</span>,   <span class="num">6.</span>,   <span class="num">7.</span>]
                                 [  <span class="num">9.</span>,  <span class="num">10.</span>,  <span class="num">11.</span>] ]


Defined in src/operator/tensor/matrix_op.cc:L625</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#smooth_l1" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="smooth_l1(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="smooth_l1(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">smooth_l1</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@smooth_l1(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Calculate Smooth L1 Loss(lhs, scalar) by summing

.. math::

    f(x) =
    \begin{cases}
    (\sigma x)^<span class="num">2</span>/<span class="num">2</span>,&amp; \text{<span class="kw">if</span> }x &lt; <span class="num">1</span>/\sigma^<span class="num">2</span>\\
    |x|-<span class="num">0.5</span>/\sigma^<span class="num">2</span>,&amp; \text{otherwise}
    \end{cases}

where :math:`x` is an element of the tensor *lhs* and :math:`\sigma` is the scalar.

Example::

  smooth_l1([<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>, <span class="num">4</span>]) = [<span class="num">0.5</span>, <span class="num">1.5</span>, <span class="num">2.5</span>, <span class="num">3.5</span>]
  smooth_l1([<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>, <span class="num">4</span>], scalar=<span class="num">1</span>) = [<span class="num">0.5</span>, <span class="num">1.5</span>, <span class="num">2.5</span>, <span class="num">3.5</span>]



Defined in src/operator/tensor/elemwise_binary_scalar_op_extended.cc:L109</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#softmax" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="softmax(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="softmax(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">softmax</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@softmax(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Applies the softmax function.

The resulting array contains elements in the range (<span class="num">0</span>,<span class="num">1</span>) and the elements along the given axis sum up to <span class="num">1.</span>

.. math::
   softmax(\mathbf{z/t})_j = \frac{e^{z_j/t}}{\sum_{k=<span class="num">1</span>}^K e^{z_k/t}}

<span class="kw">for</span> :math:`j = <span class="num">1</span>, ..., K`

t is the temperature parameter in softmax function. By default, t equals <span class="num">1.0</span>

Example::

  x = `[ [ <span class="num">1.</span>  <span class="num">1.</span>  <span class="num">1.</span>]
       [ <span class="num">1.</span>  <span class="num">1.</span>  <span class="num">1.</span>] ]

  softmax(x,axis=<span class="num">0</span>) = `[ [ <span class="num">0.5</span>  <span class="num">0.5</span>  <span class="num">0.5</span>]
                       [ <span class="num">0.5</span>  <span class="num">0.5</span>  <span class="num">0.5</span>] ]

  softmax(x,axis=<span class="num">1</span>) = `[ [ <span class="num">0.33333334</span>,  <span class="num">0.33333334</span>,  <span class="num">0.33333334</span>],
                       [ <span class="num">0.33333334</span>,  <span class="num">0.33333334</span>,  <span class="num">0.33333334</span>] ]



Defined in src/operator/nn/softmax.cc:L134</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#softmax_cross_entropy" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="softmax_cross_entropy(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="softmax_cross_entropy(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">softmax_cross_entropy</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@softmax_cross_entropy(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Calculate cross entropy of softmax output and one-hot label.

- This operator computes the cross entropy in two steps:
  - Applies softmax function on the input array.
  - Computes and returns the cross entropy loss between the softmax output and the labels.

- The softmax function and cross entropy loss is given by:

  - Softmax <span class="std">Function</span>:

  .. math:: \text{softmax}(x)_i = \frac{exp(x_i)}{\sum_j exp(x_j)}

  - Cross Entropy <span class="std">Function</span>:

  .. math:: \text{CE(label, output)} = - \sum_i \text{label}_i \log(\text{output}_i)

Example::

  x = `[ [<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>],
       [<span class="num">11</span>, <span class="num">7</span>, <span class="num">5</span>] ]

  label = [<span class="num">2</span>, <span class="num">0</span>]

  softmax(x) = `[ [<span class="num">0.09003057</span>, <span class="num">0.24472848</span>, <span class="num">0.66524094</span>],
                [<span class="num">0.97962922</span>, <span class="num">0.01794253</span>, <span class="num">0.00242826</span>] ]

  softmax_cross_entropy(data, label) = - log(<span class="num">0.66524084</span>) - log(<span class="num">0.97962922</span>) = <span class="num">0.4281871</span>



Defined in src/operator/loss_binary_op.cc:L59</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#softmin" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="softmin(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="softmin(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">softmin</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@softmin(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Applies the softmin function.

The resulting array contains elements in the range (<span class="num">0</span>,<span class="num">1</span>) and the elements along the given axis sum
up to <span class="num">1.</span>

.. math::
   softmin(\mathbf{z/t})_j = \frac{e^{-z_j/t}}{\sum_{k=<span class="num">1</span>}^K e^{-z_k/t}}

<span class="kw">for</span> :math:`j = <span class="num">1</span>, ..., K`

t is the temperature parameter in softmax function. By default, t equals <span class="num">1.0</span>

Example::

  x = `[ [ <span class="num">1.</span>  <span class="num">2.</span>  <span class="num">3.</span>]
       [ <span class="num">3.</span>  <span class="num">2.</span>  <span class="num">1.</span>] ]

  softmin(x,axis=<span class="num">0</span>) = `[ [ <span class="num">0.88079703</span>,  <span class="num">0.5</span>,  <span class="num">0.11920292</span>],
                       [ <span class="num">0.11920292</span>,  <span class="num">0.5</span>,  <span class="num">0.88079703</span>] ]

  softmin(x,axis=<span class="num">1</span>) = `[ [ <span class="num">0.66524094</span>,  <span class="num">0.24472848</span>,  <span class="num">0.09003057</span>],
                       [ <span class="num">0.09003057</span>,  <span class="num">0.24472848</span>,  <span class="num">0.66524094</span>] ]



Defined in src/operator/nn/softmin.cc:L57</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#softsign" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="softsign(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="softsign(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">softsign</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@softsign(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes softsign of x element-wise.

.. math::
   y = x / (<span class="num">1</span> + abs(x))

The storage <span class="kw">type</span> of ``softsign`` output is always dense



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L191</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sort" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sort(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sort(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sort</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sort(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns a sorted copy of an input array along the given axis.

Examples::

  x = `[ [ <span class="num">1</span>, <span class="num">4</span>],
       [ <span class="num">3</span>, <span class="num">1</span>] ]

  <span class="cmt">// sorts along the last axis</span>
  sort(x) = `[ [ <span class="num">1.</span>,  <span class="num">4.</span>],
             [ <span class="num">1.</span>,  <span class="num">3.</span>] ]

  <span class="cmt">// flattens and then sorts</span>
  sort(x, axis=<span class="std">None</span>) = [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>]

  <span class="cmt">// sorts along the first axis</span>
  sort(x, axis=<span class="num">0</span>) = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>],
                     [ <span class="num">3.</span>,  <span class="num">4.</span>] ]

  <span class="cmt">// in a descend order</span>
  sort(x, is_ascend=<span class="num">0</span>) = `[ [ <span class="num">4.</span>,  <span class="num">1.</span>],
                          [ <span class="num">3.</span>,  <span class="num">1.</span>] ]



Defined in src/operator/tensor/ordering_op.cc:L133</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#space_to_depth" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="space_to_depth(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="space_to_depth(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">space_to_depth</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@space_to_depth(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Rearranges(permutes) blocks of spatial data into depth.
Similar to ONNX SpaceToDepth operator:
https:<span class="cmt">//github.com/onnx/onnx/blob/master/docs/Operators.md#SpaceToDepth</span>
The output is a <span class="kw">new</span> tensor where the values from height and width dimension are
moved to the depth dimension. The reverse of <span class="kw">this</span> operation is ``depth_to_space``.
.. math::
    \begin{gather*}
    x \prime = reshape(x, [N, C, H / block\_size, block\_size, W / block\_size, block\_size]) \\
    x \prime \prime = transpose(x \prime, [<span class="num">0</span>, <span class="num">3</span>, <span class="num">5</span>, <span class="num">1</span>, <span class="num">2</span>, <span class="num">4</span>]) \\
    y = reshape(x \prime \prime, [N, C * (block\_size ^ <span class="num">2</span>), H / block\_size, W / block\_size])
    \end{gather*}
where :math:`x` is an input tensor <span class="kw">with</span> default layout as :math:`[N, C, H, W]`: [batch, channels, height, width]
and :math:`y` is the output tensor of layout :math:`[N, C * (block\_size ^ <span class="num">2</span>), H / block\_size, W / block\_size]`
Example::
  x = `[ [`[ [<span class="num">0</span>, <span class="num">6</span>, <span class="num">1</span>, <span class="num">7</span>, <span class="num">2</span>, <span class="num">8</span>],
         [<span class="num">12</span>, <span class="num">18</span>, <span class="num">13</span>, <span class="num">19</span>, <span class="num">14</span>, <span class="num">20</span>],
         [<span class="num">3</span>, <span class="num">9</span>, <span class="num">4</span>, <span class="num">10</span>, <span class="num">5</span>, <span class="num">11</span>],
         [<span class="num">15</span>, <span class="num">21</span>, <span class="num">16</span>, <span class="num">22</span>, <span class="num">17</span>, <span class="num">23</span>] ] ] ]
  space_to_depth(x, <span class="num">2</span>) = `[ [`[ [<span class="num">0</span>, <span class="num">1</span>, <span class="num">2</span>],
                            [<span class="num">3</span>, <span class="num">4</span>, <span class="num">5</span>] ],
                           `[ [<span class="num">6</span>, <span class="num">7</span>, <span class="num">8</span>],
                            [<span class="num">9</span>, <span class="num">10</span>, <span class="num">11</span>] ],
                           `[ [<span class="num">12</span>, <span class="num">13</span>, <span class="num">14</span>],
                            [<span class="num">15</span>, <span class="num">16</span>, <span class="num">17</span>] ],
                           `[ [<span class="num">18</span>, <span class="num">19</span>, <span class="num">20</span>],
                            [<span class="num">21</span>, <span class="num">22</span>, <span class="num">23</span>] ] ] ]


Defined in src/operator/tensor/matrix_op.cc:L1019</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#split" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="split(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="split(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">split</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@split(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Splits an array along a particular axis into multiple sub-arrays.

.. note:: ``SliceChannel`` is deprecated. Use ``split`` instead.

**Note** that `num_outputs` should evenly divide the length of the axis
along which to split the array.

Example::

   x  = `[ `[ [ <span class="num">1.</span>]
          [ <span class="num">2.</span>] ]
         `[ [ <span class="num">3.</span>]
          [ <span class="num">4.</span>] ]
         `[ [ <span class="num">5.</span>]
          [ <span class="num">6.</span>] ] ]
   x.shape = (<span class="num">3</span>, <span class="num">2</span>, <span class="num">1</span>)

   y = split(x, axis=<span class="num">1</span>, num_outputs=<span class="num">2</span>) <span class="cmt">// a list of 2 arrays with shape (3, 1, 1)</span>
   y = `[ `[ [ <span class="num">1.</span>] ]
        `[ [ <span class="num">3.</span>] ]
        `[ [ <span class="num">5.</span>] ] ]

       `[ `[ [ <span class="num">2.</span>] ]
        `[ [ <span class="num">4.</span>] ]
        `[ [ <span class="num">6.</span>] ] ]

   y[<span class="num">0</span>].shape = (<span class="num">3</span>, <span class="num">1</span>, <span class="num">1</span>)

   z = split(x, axis=<span class="num">0</span>, num_outputs=<span class="num">3</span>) <span class="cmt">// a list of 3 arrays with shape (1, 2, 1)</span>
   z = `[ `[ [ <span class="num">1.</span>]
         [ <span class="num">2.</span>] ] ]

       `[ `[ [ <span class="num">3.</span>]
         [ <span class="num">4.</span>] ] ]

       `[ `[ [ <span class="num">5.</span>]
         [ <span class="num">6.</span>] ] ]

   z[<span class="num">0</span>].shape = (<span class="num">1</span>, <span class="num">2</span>, <span class="num">1</span>)

`squeeze_axis=<span class="num">1</span>` removes the axis <span class="kw">with</span> length <span class="num">1</span> from the shapes of the output arrays.
**Note** that setting `squeeze_axis` to ``<span class="num">1</span>`` removes axis <span class="kw">with</span> length <span class="num">1</span> only
along the `axis` which it is split.
Also `squeeze_axis` can be set to <span class="kw">true</span> only <span class="kw">if</span> ``input.shape[axis] == num_outputs``.

Example::

   z = split(x, axis=<span class="num">0</span>, num_outputs=<span class="num">3</span>, squeeze_axis=<span class="num">1</span>) <span class="cmt">// a list of 3 arrays with shape (2, 1)</span>
   z = `[ [ <span class="num">1.</span>]
        [ <span class="num">2.</span>] ]

       `[ [ <span class="num">3.</span>]
        [ <span class="num">4.</span>] ]

       `[ [ <span class="num">5.</span>]
        [ <span class="num">6.</span>] ]
   z[<span class="num">0</span>].shape = (<span class="num">2</span> ,<span class="num">1</span> )



Defined in src/operator/slice_channel.cc:L107</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sqrt" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sqrt(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sqrt(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sqrt</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sqrt(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise square-root value of the input.

.. math::
   \textrm{sqrt}(x) = \sqrt{x}

Example::

   sqrt([<span class="num">4</span>, <span class="num">9</span>, <span class="num">16</span>]) = [<span class="num">2</span>, <span class="num">3</span>, <span class="num">4</span>]

The storage <span class="kw">type</span> of ``sqrt`` output depends upon the input storage <span class="kw">type</span>:

   - sqrt(default) = default
   - sqrt(row_sparse) = row_sparse
   - sqrt(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_pow.cc:L170</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#square" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="square(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="square(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">square</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@square(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns element-wise squared value of the input.

.. math::
   square(x) = x^<span class="num">2</span>

Example::

   square([<span class="num">2</span>, <span class="num">3</span>, <span class="num">4</span>]) = [<span class="num">4</span>, <span class="num">9</span>, <span class="num">16</span>]

The storage <span class="kw">type</span> of ``square`` output depends upon the input storage <span class="kw">type</span>:

   - square(default) = default
   - square(row_sparse) = row_sparse
   - square(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_pow.cc:L119</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#squeeze" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="squeeze(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="squeeze(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">squeeze</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@squeeze(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Remove single-dimensional entries from the shape of an array.
Same behavior of defining the output tensor shape as numpy.squeeze <span class="kw">for</span> the most of cases.
See the following note <span class="kw">for</span> exception.
Examples::
  data = `[ `[ [<span class="num">0</span>], [<span class="num">1</span>], [<span class="num">2</span>] ] ]
  squeeze(data) = [<span class="num">0</span>, <span class="num">1</span>, <span class="num">2</span>]
  squeeze(data, axis=<span class="num">0</span>) = `[ [<span class="num">0</span>], [<span class="num">1</span>], [<span class="num">2</span>] ]
  squeeze(data, axis=<span class="num">2</span>) = `[ [<span class="num">0</span>, <span class="num">1</span>, <span class="num">2</span>] ]
  squeeze(data, axis=(<span class="num">0</span>, <span class="num">2</span>)) = [<span class="num">0</span>, <span class="num">1</span>, <span class="num">2</span>]
.. Note::
  The output of <span class="kw">this</span> operator will keep at least one dimension not removed. For example,
  squeeze(`[ `[ [<span class="num">4</span>] ] ]) = [<span class="num">4</span>], <span class="kw">while</span> in numpy.squeeze, the output will become a scalar.</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#stack" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="stack(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="stack(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">stack</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@stack(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Join a sequence of arrays along a <span class="kw">new</span> axis.
The axis parameter specifies the index of the <span class="kw">new</span> axis in the dimensions of the
result. For example, <span class="kw">if</span> axis=<span class="num">0</span> it will be the first dimension and <span class="kw">if</span> axis=-<span class="num">1</span> it
will be the last dimension.
Examples::
  x = [<span class="num">1</span>, <span class="num">2</span>]
  y = [<span class="num">3</span>, <span class="num">4</span>]
  stack(x, y) = `[ [<span class="num">1</span>, <span class="num">2</span>],
                 [<span class="num">3</span>, <span class="num">4</span>] ]
  stack(x, y, axis=<span class="num">1</span>) = `[ [<span class="num">1</span>, <span class="num">3</span>],
                         [<span class="num">2</span>, <span class="num">4</span>] ]</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#stop_gradient" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="stop_gradient(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="stop_gradient(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">stop_gradient</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@stop_gradient(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Stops gradient computation.

Stops the accumulated gradient of the inputs from flowing through <span class="kw">this</span> operator
in the backward direction. In other words, <span class="kw">this</span> operator prevents the contribution
of its inputs to be taken into account <span class="kw">for</span> computing gradients.

Example::

  v1 = [<span class="num">1</span>, <span class="num">2</span>]
  v2 = [<span class="num">0</span>, <span class="num">1</span>]
  a = Variable(<span class="lit">'a'</span>)
  b = Variable(<span class="lit">'b'</span>)
  b_stop_grad = stop_gradient(<span class="num">3</span> * b)
  loss = MakeLoss(b_stop_grad + a)

  executor = loss.simple_bind(ctx=cpu(), a=(<span class="num">1</span>,<span class="num">2</span>), b=(<span class="num">1</span>,<span class="num">2</span>))
  executor.forward(is_train=True, a=v1, b=v2)
  executor.outputs
  [ <span class="num">1.</span>  <span class="num">5.</span>]

  executor.backward()
  executor.grad_arrays
  [ <span class="num">0.</span>  <span class="num">0.</span>]
  [ <span class="num">1.</span>  <span class="num">1.</span>]



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L325</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sum" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sum(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sum(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sum</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sum(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the sum of array elements over given axes.

.. Note::

  `sum` and `sum_axis` are equivalent.
  For ndarray of csr storage <span class="kw">type</span> summation along axis <span class="num">0</span> and axis <span class="num">1</span> is supported.
  Setting keepdims or exclude to True will cause a fallback to dense operator.

Example::

  data = `[ `[ [<span class="num">1</span>, <span class="num">2</span>], [<span class="num">2</span>, <span class="num">3</span>], [<span class="num">1</span>, <span class="num">3</span>] ],
          `[ [<span class="num">1</span>, <span class="num">4</span>], [<span class="num">4</span>, <span class="num">3</span>], [<span class="num">5</span>, <span class="num">2</span>] ],
          `[ [<span class="num">7</span>, <span class="num">1</span>], [<span class="num">7</span>, <span class="num">2</span>], [<span class="num">7</span>, <span class="num">3</span>] ] ]

  sum(data, axis=<span class="num">1</span>)
  `[ [  <span class="num">4.</span>   <span class="num">8.</span>]
   [ <span class="num">10.</span>   <span class="num">9.</span>]
   [ <span class="num">21.</span>   <span class="num">6.</span>] ]

  sum(data, axis=[<span class="num">1</span>,<span class="num">2</span>])
  [ <span class="num">12.</span>  <span class="num">19.</span>  <span class="num">27.</span>]

  data = `[ [<span class="num">1</span>, <span class="num">2</span>, <span class="num">0</span>],
          [<span class="num">3</span>, <span class="num">0</span>, <span class="num">1</span>],
          [<span class="num">4</span>, <span class="num">1</span>, <span class="num">0</span>] ]

  csr = cast_storage(data, <span class="lit">'csr'</span>)

  sum(csr, axis=<span class="num">0</span>)
  [ <span class="num">8.</span>  <span class="num">3.</span>  <span class="num">1.</span>]

  sum(csr, axis=<span class="num">1</span>)
  [ <span class="num">3.</span>  <span class="num">4.</span>  <span class="num">5.</span>]



Defined in src/operator/tensor/broadcast_reduce_sum_value.cc:L67</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#sum_axis" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sum_axis(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="sum_axis(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">sum_axis</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@sum_axis(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the sum of array elements over given axes.

.. Note::

  `sum` and `sum_axis` are equivalent.
  For ndarray of csr storage <span class="kw">type</span> summation along axis <span class="num">0</span> and axis <span class="num">1</span> is supported.
  Setting keepdims or exclude to True will cause a fallback to dense operator.

Example::

  data = `[ `[ [<span class="num">1</span>, <span class="num">2</span>], [<span class="num">2</span>, <span class="num">3</span>], [<span class="num">1</span>, <span class="num">3</span>] ],
          `[ [<span class="num">1</span>, <span class="num">4</span>], [<span class="num">4</span>, <span class="num">3</span>], [<span class="num">5</span>, <span class="num">2</span>] ],
          `[ [<span class="num">7</span>, <span class="num">1</span>], [<span class="num">7</span>, <span class="num">2</span>], [<span class="num">7</span>, <span class="num">3</span>] ] ]

  sum(data, axis=<span class="num">1</span>)
  `[ [  <span class="num">4.</span>   <span class="num">8.</span>]
   [ <span class="num">10.</span>   <span class="num">9.</span>]
   [ <span class="num">21.</span>   <span class="num">6.</span>] ]

  sum(data, axis=[<span class="num">1</span>,<span class="num">2</span>])
  [ <span class="num">12.</span>  <span class="num">19.</span>  <span class="num">27.</span>]

  data = `[ [<span class="num">1</span>, <span class="num">2</span>, <span class="num">0</span>],
          [<span class="num">3</span>, <span class="num">0</span>, <span class="num">1</span>],
          [<span class="num">4</span>, <span class="num">1</span>, <span class="num">0</span>] ]

  csr = cast_storage(data, <span class="lit">'csr'</span>)

  sum(csr, axis=<span class="num">0</span>)
  [ <span class="num">8.</span>  <span class="num">3.</span>  <span class="num">1.</span>]

  sum(csr, axis=<span class="num">1</span>)
  [ <span class="num">3.</span>  <span class="num">4.</span>  <span class="num">5.</span>]



Defined in src/operator/tensor/broadcast_reduce_sum_value.cc:L67</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#swapaxes" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="swapaxes(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="swapaxes(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">swapaxes</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@swapaxes(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Interchanges two axes of an array.

Examples::

  x = `[ [<span class="num">1</span>, <span class="num">2</span>, <span class="num">3</span>] ])
  swapaxes(x, <span class="num">0</span>, <span class="num">1</span>) = `[ [ <span class="num">1</span>],
                       [ <span class="num">2</span>],
                       [ <span class="num">3</span>] ]

  x = `[ `[ [ <span class="num">0</span>, <span class="num">1</span>],
        [ <span class="num">2</span>, <span class="num">3</span>] ],
       `[ [ <span class="num">4</span>, <span class="num">5</span>],
        [ <span class="num">6</span>, <span class="num">7</span>] ] ]  <span class="cmt">// (2,2,2) array</span>

 swapaxes(x, <span class="num">0</span>, <span class="num">2</span>) = `[ `[ [ <span class="num">0</span>, <span class="num">4</span>],
                       [ <span class="num">2</span>, <span class="num">6</span>] ],
                      `[ [ <span class="num">1</span>, <span class="num">5</span>],
                       [ <span class="num">3</span>, <span class="num">7</span>] ] ]


Defined in src/operator/swapaxis.cc:L70</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#take" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="take(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="take(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">take</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@take(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Takes elements from an input array along the given axis.

This function slices the input array along a particular axis <span class="kw">with</span> the provided indices.

Given data tensor of rank r &gt;= <span class="num">1</span>, and indices tensor of rank q, gather entries of the axis
dimension of data (by default outer-most one as axis=<span class="num">0</span>) indexed by indices, and concatenates them
in an output tensor of rank q + (r - <span class="num">1</span>).

Examples::

  x = [<span class="num">4.</span>  <span class="num">5.</span>  <span class="num">6.</span>]

  <span class="cmt">// Trivial case, take the second element along the first axis.</span>

  take(x, [<span class="num">1</span>]) = [ <span class="num">5.</span> ]

  <span class="cmt">// The other trivial case, axis=-1, take the third element along the first axis</span>

  take(x, [<span class="num">3</span>], axis=-<span class="num">1</span>, mode=<span class="lit">'clip'</span>) = [ <span class="num">6.</span> ]

  x = `[ [ <span class="num">1.</span>,  <span class="num">2.</span>],
       [ <span class="num">3.</span>,  <span class="num">4.</span>],
       [ <span class="num">5.</span>,  <span class="num">6.</span>] ]

  <span class="cmt">// In this case we will get rows 0 and 1, then 1 and 2. Along axis 0</span>

  take(x, `[ [<span class="num">0</span>,<span class="num">1</span>],[<span class="num">1</span>,<span class="num">2</span>] ]) = `[ `[ [ <span class="num">1.</span>,  <span class="num">2.</span>],
                             [ <span class="num">3.</span>,  <span class="num">4.</span>] ],

                            `[ [ <span class="num">3.</span>,  <span class="num">4.</span>],
                             [ <span class="num">5.</span>,  <span class="num">6.</span>] ] ]

  <span class="cmt">// In this case we will get rows 0 and 1, then 1 and 2 (calculated by wrapping around).</span>
  <span class="cmt">// Along axis 1</span>

  take(x, `[ [<span class="num">0</span>, <span class="num">3</span>], [-<span class="num">1</span>, -<span class="num">2</span>] ], axis=<span class="num">1</span>, mode=<span class="lit">'wrap'</span>) = `[ `[ [ <span class="num">1.</span>  <span class="num">2.</span>]
                                                       [ <span class="num">2.</span>  <span class="num">1.</span>] ]

                                                      `[ [ <span class="num">3.</span>  <span class="num">4.</span>]
                                                       [ <span class="num">4.</span>  <span class="num">3.</span>] ]

                                                      `[ [ <span class="num">5.</span>  <span class="num">6.</span>]
                                                       [ <span class="num">6.</span>  <span class="num">5.</span>] ] ]

The storage <span class="kw">type</span> of ``take`` output depends upon the input storage <span class="kw">type</span>:

   - take(default, default) = default
   - take(csr, default, axis=<span class="num">0</span>) = csr



Defined in src/operator/tensor/indexing_op.cc:L777</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#tan" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="tan(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="tan(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">tan</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@tan(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Computes the element-wise tangent of the input array.

The input should be in radians (:math:`<span class="num">2</span>\pi` rad equals <span class="num">360</span> degrees).

.. math::
   tan([<span class="num">0</span>, \pi/<span class="num">4</span>, \pi/<span class="num">2</span>]) = [<span class="num">0</span>, <span class="num">1</span>, -inf]

The storage <span class="kw">type</span> of ``tan`` output depends upon the input storage <span class="kw">type</span>:

   - tan(default) = default
   - tan(row_sparse) = row_sparse
   - tan(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_trig.cc:L140</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#tanh" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="tanh(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="tanh(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">tanh</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@tanh(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the hyperbolic tangent of the input array, computed element-wise.

.. math::
   tanh(x) = sinh(x) / cosh(x)

The storage <span class="kw">type</span> of ``tanh`` output depends upon the input storage <span class="kw">type</span>:

   - tanh(default) = default
   - tanh(row_sparse) = row_sparse
   - tanh(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_trig.cc:L451</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#tile" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="tile(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="tile(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">tile</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@tile(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Repeats the whole array multiple times.
If ``reps`` has length *d*, and input array has dimension of *n*. There are
three cases:
- **n=d**. Repeat *i*-th dimension of the input by ``reps[i]`` times::
    x = `[ [<span class="num">1</span>, <span class="num">2</span>],
         [<span class="num">3</span>, <span class="num">4</span>] ]
    tile(x, reps=(<span class="num">2</span>,<span class="num">3</span>)) = `[ [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>],
                           [ <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>],
                           [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>],
                           [ <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>] ]
- **n&gt;d**. ``reps`` is promoted to length *n* by pre-pending <span class="num">1</span>'s to it. Thus <span class="kw">for</span>
  an input shape ``(<span class="num">2</span>,<span class="num">3</span>)``, ``repos=(<span class="num">2</span>,)`` is treated as ``(<span class="num">1</span>,<span class="num">2</span>)``::
    tile(x, reps=(<span class="num">2</span>,)) = `[ [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>],
                          [ <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>] ]
- **n&lt;d**. The input is promoted to be d-dimensional by prepending <span class="kw">new</span> axes. So a
  shape ``(<span class="num">2</span>,<span class="num">2</span>)`` array is promoted to ``(<span class="num">1</span>,<span class="num">2</span>,<span class="num">2</span>)`` <span class="kw">for</span> <span class="num">3</span>-D replication::
    tile(x, reps=(<span class="num">2</span>,<span class="num">2</span>,<span class="num">3</span>)) = `[ `[ [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>],
                              [ <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>],
                              [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>],
                              [ <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>] ],
                             `[ [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>],
                              [ <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>],
                              [ <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>],
                              [ <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>,  <span class="num">3.</span>,  <span class="num">4.</span>] ] ]


Defined in src/operator/tensor/matrix_op.cc:L796</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#topk" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="topk(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="topk(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">topk</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@topk(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Returns the indices of the top *k* elements in an input array along the given
 axis (by default).
 If ret_type is set to <span class="lit">'value'</span> returns the value of top *k* elements (instead of indices).
 In <span class="kw">case</span> of ret_type = <span class="lit">'both'</span>, both value and index would be returned.
 The returned elements will be sorted.

Examples::

  x = `[ [ <span class="num">0.3</span>,  <span class="num">0.2</span>,  <span class="num">0.4</span>],
       [ <span class="num">0.1</span>,  <span class="num">0.3</span>,  <span class="num">0.2</span>] ]

  <span class="cmt">// returns an index of the largest element on last axis</span>
  topk(x) = `[ [ <span class="num">2.</span>],
             [ <span class="num">1.</span>] ]

  <span class="cmt">// returns the value of top-2 largest elements on last axis</span>
  topk(x, ret_typ=<span class="lit">'value'</span>, k=<span class="num">2</span>) = `[ [ <span class="num">0.4</span>,  <span class="num">0.3</span>],
                                   [ <span class="num">0.3</span>,  <span class="num">0.2</span>] ]

  <span class="cmt">// returns the value of top-2 smallest elements on last axis</span>
  topk(x, ret_typ=<span class="lit">'value'</span>, k=<span class="num">2</span>, is_ascend=<span class="num">1</span>) = `[ [ <span class="num">0.2</span> ,  <span class="num">0.3</span>],
                                               [ <span class="num">0.1</span> ,  <span class="num">0.2</span>] ]

  <span class="cmt">// returns the value of top-2 largest elements on axis 0</span>
  topk(x, axis=<span class="num">0</span>, ret_typ=<span class="lit">'value'</span>, k=<span class="num">2</span>) = `[ [ <span class="num">0.3</span>,  <span class="num">0.3</span>,  <span class="num">0.4</span>],
                                           [ <span class="num">0.1</span>,  <span class="num">0.2</span>,  <span class="num">0.2</span>] ]

  <span class="cmt">// flattens and then returns list of both values and indices</span>
  topk(x, ret_typ=<span class="lit">'both'</span>, k=<span class="num">2</span>) = `[ `[ [ <span class="num">0.4</span>,  <span class="num">0.3</span>], [ <span class="num">0.3</span>,  <span class="num">0.2</span>] ] ,  `[ [ <span class="num">2.</span>,  <span class="num">0.</span>], [ <span class="num">1.</span>,  <span class="num">2.</span>] ] ]



Defined in src/operator/tensor/ordering_op.cc:L68</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#transpose" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="transpose(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="transpose(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">transpose</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@transpose(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Permutes the dimensions of an array.
Examples::
  x = `[ [ <span class="num">1</span>, <span class="num">2</span>],
       [ <span class="num">3</span>, <span class="num">4</span>] ]
  transpose(x) = `[ [ <span class="num">1.</span>,  <span class="num">3.</span>],
                  [ <span class="num">2.</span>,  <span class="num">4.</span>] ]
  x = `[ `[ [ <span class="num">1.</span>,  <span class="num">2.</span>],
        [ <span class="num">3.</span>,  <span class="num">4.</span>] ],
       `[ [ <span class="num">5.</span>,  <span class="num">6.</span>],
        [ <span class="num">7.</span>,  <span class="num">8.</span>] ] ]
  transpose(x) = `[ `[ [ <span class="num">1.</span>,  <span class="num">5.</span>],
                   [ <span class="num">3.</span>,  <span class="num">7.</span>] ],
                  `[ [ <span class="num">2.</span>,  <span class="num">6.</span>],
                   [ <span class="num">4.</span>,  <span class="num">8.</span>] ] ]
  transpose(x, axes=(<span class="num">1</span>,<span class="num">0</span>,<span class="num">2</span>)) = `[ `[ [ <span class="num">1.</span>,  <span class="num">2.</span>],
                                 [ <span class="num">5.</span>,  <span class="num">6.</span>] ],
                                `[ [ <span class="num">3.</span>,  <span class="num">4.</span>],
                                 [ <span class="num">7.</span>,  <span class="num">8.</span>] ] ]


Defined in src/operator/tensor/matrix_op.cc:L328</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#trunc" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="trunc(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="trunc(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">trunc</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@trunc(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Return the element-wise truncated value of the input.

The truncated value of the scalar x is the nearest integer i which is closer to
zero than x is. In short, the fractional part of the signed number x is discarded.

Example::

   trunc([-<span class="num">2.1</span>, -<span class="num">1.9</span>, <span class="num">1.5</span>, <span class="num">1.9</span>, <span class="num">2.1</span>]) = [-<span class="num">2.</span>, -<span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">2.</span>]

The storage <span class="kw">type</span> of ``trunc`` output depends upon the input storage <span class="kw">type</span>:

   - trunc(default) = default
   - trunc(row_sparse) = row_sparse
   - trunc(csr) = csr



Defined in src/operator/tensor/elemwise_unary_op_basic.cc:L856</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#uniform" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="uniform(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="uniform(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">uniform</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@uniform(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Draw random samples from a uniform distribution.

.. note:: The existing alias ``uniform`` is deprecated.

Samples are uniformly distributed over the half-open interval *[low, high)*
(includes *low*, but excludes *high*).

Example::

   uniform(low=<span class="num">0</span>, high=<span class="num">1</span>, shape=(<span class="num">2</span>,<span class="num">2</span>)) = `[ [ <span class="num">0.60276335</span>,  <span class="num">0.85794562</span>],
                                          [ <span class="num">0.54488319</span>,  <span class="num">0.84725171</span>] ]



Defined in src/operator/random/sample_op.cc:L96</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#unravel_index" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="unravel_index(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="unravel_index(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">unravel_index</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@unravel_index(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Converts an array of flat indices into a batch of index arrays. The operator follows numpy conventions so a single multi index is given by a column of the output matrix. The leading dimension may be left unspecified by using -<span class="num">1</span> as placeholder.

Examples::

   A = [<span class="num">22</span>,<span class="num">41</span>,<span class="num">37</span>]
   unravel(A, shape=(<span class="num">7</span>,<span class="num">6</span>)) = `[ [<span class="num">3</span>,<span class="num">6</span>,<span class="num">6</span>],[<span class="num">4</span>,<span class="num">5</span>,<span class="num">1</span>] ]
   unravel(A, shape=(-<span class="num">1</span>,<span class="num">6</span>)) = `[ [<span class="num">3</span>,<span class="num">6</span>,<span class="num">6</span>],[<span class="num">4</span>,<span class="num">5</span>,<span class="num">1</span>] ]



Defined in src/operator/tensor/ravel.cc:L68</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#where" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="where(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="where(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">where</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@where(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Return the elements, either from x or y, depending on the condition.

Given three ndarrays, condition, x, and y, <span class="kw">return</span> an ndarray <span class="kw">with</span> the elements from x or y,
depending on the elements from condition are <span class="kw">true</span> or <span class="kw">false</span>. x and y must have the same shape.
If condition has the same shape as x, each element in the output array is from x <span class="kw">if</span> the
corresponding element in the condition is <span class="kw">true</span>, and from y <span class="kw">if</span> <span class="kw">false</span>.

If condition does not have the same shape as x, it must be a <span class="num">1</span>D array whose size is
the same as x's first dimension size. Each row of the output array is from x's row
<span class="kw">if</span> the corresponding element from condition is <span class="kw">true</span>, and from y's row <span class="kw">if</span> <span class="kw">false</span>.

Note that all non-zero values are interpreted as ``True`` in condition.

Examples::

  x = `[ [<span class="num">1</span>, <span class="num">2</span>], [<span class="num">3</span>, <span class="num">4</span>] ]
  y = `[ [<span class="num">5</span>, <span class="num">6</span>], [<span class="num">7</span>, <span class="num">8</span>] ]
  cond = `[ [<span class="num">0</span>, <span class="num">1</span>], [-<span class="num">1</span>, <span class="num">0</span>] ]

  where(cond, x, y) = `[ [<span class="num">5</span>, <span class="num">2</span>], [<span class="num">3</span>, <span class="num">8</span>] ]

  csr_cond = cast_storage(cond, <span class="lit">'csr'</span>)

  where(csr_cond, x, y) = `[ [<span class="num">5</span>, <span class="num">2</span>], [<span class="num">3</span>, <span class="num">8</span>] ]



Defined in src/operator/tensor/control_flow_op.cc:L57</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li><li name="org.apache.mxnet.SymbolBase#zeros_like" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="zeros_like(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="zeros_like(String,Map[String,String])(Symbol*)(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">zeros_like</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="args">args: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@zeros_like(name:String,attr:Map[String,String])(args:org.apache.mxnet.Symbol*)(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt"></p><div class="fullcomment"><div class="comment cmt"><p></p><pre>Return an array of zeros <span class="kw">with</span> the same shape, <span class="kw">type</span> and storage <span class="kw">type</span>
as the input array.

The storage <span class="kw">type</span> of ``zeros_like`` output depends on the storage <span class="kw">type</span> of the input

- zeros_like(row_sparse) = row_sparse
- zeros_like(csr) = csr
- zeros_like(default) = default

Examples::

  x = `[ [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>],
       [ <span class="num">1.</span>,  <span class="num">1.</span>,  <span class="num">1.</span>] ]

  zeros_like(x) = `[ [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>],
                   [ <span class="num">0.</span>,  <span class="num">0.</span>,  <span class="num">0.</span>] ]</pre></div><dl class="paramcmts block"><dt>returns</dt><dd class="cmt"><p>org.apache.mxnet.Symbol
</p></dd></dl><dl class="attributes block"> <dt>Definition Classes</dt><dd><a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></dd></dl></div>
    </li></ol>
            </div>

        <div id="values" class="values members">
              <h3>Concrete Value Members</h3>
              <ol><li name="scala.AnyRef#!=" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="!=(x$1:Any):Boolean"></a>
      <a id="!=(Any):Boolean"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">final </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span title="gt4s: $bang$eq" class="name">!=</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.Any">Any</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@!=(x$1:Any):Boolean" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
    </li><li name="scala.AnyRef###" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="##():Int"></a>
      <a id="##():Int"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">final </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span title="gt4s: $hash$hash" class="name">##</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Int">Int</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@##():Int" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
    </li><li name="scala.AnyRef#==" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="==(x$1:Any):Boolean"></a>
      <a id="==(Any):Boolean"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">final </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span title="gt4s: $eq$eq" class="name">==</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.Any">Any</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@==(x$1:Any):Boolean" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
    </li><li name="org.apache.mxnet.Symbol#Group" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="Group(symbols:org.apache.mxnet.Symbol*):org.apache.mxnet.Symbol"></a>
      <a id="Group(Symbol*):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Group</span><span class="params">(<span name="symbols">symbols: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>*</span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Group(symbols:org.apache.mxnet.Symbol*):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt">Create a symbol that groups symbols together.</p><div class="fullcomment"><div class="comment cmt"><p>Create a symbol that groups symbols together.</p></div><dl class="paramcmts block"><dt class="param">symbols</dt><dd class="cmt"><p>List of symbols to be grouped.</p></dd><dt>returns</dt><dd class="cmt"><p>The created group symbol.
</p></dd></dl></div>
    </li><li name="org.apache.mxnet.Symbol#Variable" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="Variable(name:String,attr:Map[String,String],shape:org.apache.mxnet.Shape,lrMult:Option[Float],wdMult:Option[Float],dType:org.apache.mxnet.DType.DType,kwargs:Map[String,String]):org.apache.mxnet.Symbol"></a>
      <a id="Variable(String,Map[String,String],Shape,Option[Float],Option[Float],DType.DType,Map[String,String]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">Variable</span><span class="params">(<span name="name">name: <span class="extype" name="scala.Predef.String">String</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>, <span name="shape">shape: <a href="Shape.html" class="extype" name="org.apache.mxnet.Shape">Shape</a> = <span class="symbol">null</span></span>, <span name="lrMult">lrMult: <span class="extype" name="scala.Option">Option</span>[<span class="extype" name="scala.Float">Float</span>] = <span class="symbol">None</span></span>, <span name="wdMult">wdMult: <span class="extype" name="scala.Option">Option</span>[<span class="extype" name="scala.Float">Float</span>] = <span class="symbol">None</span></span>, <span name="dType">dType: <a href="DType$.html#DType=org.apache.mxnet.DType.Value" class="extmbr" name="org.apache.mxnet.DType.DType">DType.DType</a> = <span class="symbol">null</span></span>, <span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">Map.empty[String, String]</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@Variable(name:String,attr:Map[String,String],shape:org.apache.mxnet.Shape,lrMult:Option[Float],wdMult:Option[Float],dType:org.apache.mxnet.DType.DType,kwargs:Map[String,String]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt">Create a symbolic variable with specified name.</p><div class="fullcomment"><div class="comment cmt"><p>Create a symbolic variable with specified name.</p></div><dl class="paramcmts block"><dt class="param">name</dt><dd class="cmt"><p>Name of the variable.</p></dd><dt class="param">attr</dt><dd class="cmt"><p>Additional attributes to set on the variable.</p></dd><dt class="param">shape</dt><dd class="cmt"><p>
         The shape of a variable. If specified, this will be used during the shape inference.
         If one has specified a different shape for this variable using a keyword argument
         when calling shape inference, this shape information will be ignored.</p></dd><dt class="param">lrMult</dt><dd class="cmt"><p>The learning rate multiplier for input variable.</p></dd><dt class="param">wdMult</dt><dd class="cmt"><p>Weight decay multiplier for input variable.</p></dd><dt class="param">dType</dt><dd class="cmt"><p>The dtype for input variable. If not specified, this value will be inferred.</p></dd><dt class="param">kwargs</dt><dd class="cmt"><p>Additional attributes which must start and end with double underscores.</p></dd><dt>returns</dt><dd class="cmt"><p>A symbol corresponding to an input to the computation graph.
</p></dd></dl></div>
    </li><li name="org.apache.mxnet.Symbol#api" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="api:org.apache.mxnet.SymbolAPI.type"></a>
      <a id="api:SymbolAPI.type"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">val</span>
      </span>
      <span class="symbol">
        <span class="name">api</span><span class="result">: <a href="SymbolAPI$.html" class="extype" name="org.apache.mxnet.SymbolAPI">SymbolAPI</a>.type</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@api:org.apache.mxnet.SymbolAPI.type" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#arange" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="arange(start:Float,stop:Option[Float],step:Float,repeat:Int,infer_range:Boolean,name:String,dType:org.apache.mxnet.DType.DType):org.apache.mxnet.Symbol"></a>
      <a id="arange(Float,Option[Float],Float,Int,Boolean,String,DType.DType):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">arange</span><span class="params">(<span name="start">start: <span class="extype" name="scala.Float">Float</span></span>, <span name="stop">stop: <span class="extype" name="scala.Option">Option</span>[<span class="extype" name="scala.Float">Float</span>]</span>, <span name="step">step: <span class="extype" name="scala.Float">Float</span></span>, <span name="repeat">repeat: <span class="extype" name="scala.Int">Int</span></span>, <span name="infer_range">infer_range: <span class="extype" name="scala.Boolean">Boolean</span></span>, <span name="name">name: <span class="extype" name="scala.Predef.String">String</span></span>, <span name="dType">dType: <a href="DType$.html#DType=org.apache.mxnet.DType.Value" class="extmbr" name="org.apache.mxnet.DType.DType">DType.DType</a></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@arange(start:Float,stop:Option[Float],step:Float,repeat:Int,infer_range:Boolean,name:String,dType:org.apache.mxnet.DType.DType):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt">Returns evenly spaced values within a given interval.</p><div class="fullcomment"><div class="comment cmt"><p>Returns evenly spaced values within a given interval.
stop value can be infered from the output shape,
which must be known from the rest of the net.</p></div><dl class="paramcmts block"><dt class="param">start</dt><dd class="cmt"><p>Start of interval. The default start value is 0.</p></dd><dt class="param">stop</dt><dd class="cmt"><p>End of interval.</p></dd><dt class="param">step</dt><dd class="cmt"><p>Spacing between values. The default step size is 1.</p></dd><dt class="param">repeat</dt><dd class="cmt"><p>Number of times to repeat each element. The default repeat count is 1.</p></dd><dt class="param">infer_range</dt><dd class="cmt"><p>
         When set to True, infer the stop position from the start, step,
         repeat, and output tensor size.</p></dd><dt class="param">dType</dt><dd class="cmt"><p>The data type of the <code>NDArray</code>. The default datatype is <code>DType.Float32</code>.</p></dd><dt>returns</dt><dd class="cmt"><p>NDArray of evenly spaced values in the specified range.
</p></dd></dl></div>
    </li><li name="org.apache.mxnet.Symbol#arange" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="arange(start:Float,stop:Option[Float],step:Float,repeat:Int,name:String,dType:org.apache.mxnet.DType.DType):org.apache.mxnet.Symbol"></a>
      <a id="arange(Float,Option[Float],Float,Int,String,DType.DType):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">arange</span><span class="params">(<span name="start">start: <span class="extype" name="scala.Float">Float</span></span>, <span name="stop">stop: <span class="extype" name="scala.Option">Option</span>[<span class="extype" name="scala.Float">Float</span>] = <span class="symbol">None</span></span>, <span name="step">step: <span class="extype" name="scala.Float">Float</span> = <span class="symbol">1.0f</span></span>, <span name="repeat">repeat: <span class="extype" name="scala.Int">Int</span> = <span class="symbol">1</span></span>, <span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="dType">dType: <a href="DType$.html#DType=org.apache.mxnet.DType.Value" class="extmbr" name="org.apache.mxnet.DType.DType">DType.DType</a> = <span class="symbol">Base.MX_REAL_TYPE</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@arange(start:Float,stop:Option[Float],step:Float,repeat:Int,name:String,dType:org.apache.mxnet.DType.DType):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt">Returns evenly spaced values within a given interval.</p><div class="fullcomment"><div class="comment cmt"><p>Returns evenly spaced values within a given interval.</p></div><dl class="paramcmts block"><dt class="param">start</dt><dd class="cmt"><p>Start of interval. The default start value is 0.</p></dd><dt class="param">stop</dt><dd class="cmt"><p>End of interval.</p></dd><dt class="param">step</dt><dd class="cmt"><p>Spacing between values. The default step size is 1.</p></dd><dt class="param">repeat</dt><dd class="cmt"><p>Number of times to repeat each element. The default repeat count is 1.</p></dd><dt class="param">dType</dt><dd class="cmt"><p>The data type of the <code>NDArray</code>. The default datatype is <code>DType.Float32</code>.</p></dd><dt>returns</dt><dd class="cmt"><p>Symbol The created Symbol.
</p></dd></dl></div>
    </li><li name="scala.Any#asInstanceOf" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="asInstanceOf[T0]:T0"></a>
      <a id="asInstanceOf[T0]:T0"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">final </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">asInstanceOf</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="result">: <span class="extype" name="scala.Any.asInstanceOf.T0">T0</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@asInstanceOf[T0]:T0" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Any</dd></dl></div>
    </li><li name="scala.AnyRef#clone" visbl="prt" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="clone():Object"></a>
      <a id="clone():AnyRef"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">clone</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.AnyRef">AnyRef</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@clone():Object" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Attributes</dt><dd>protected[<a href="../../../java$lang.html" class="extype" name="java.lang">java.lang</a>] </dd><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
                <span class="name">@throws</span><span class="args">(<span>
      
      <span class="defval" name="classOf[java.lang.CloneNotSupportedException]">...</span>
    </span>)</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.Symbol#createFromListedSymbols" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="createFromListedSymbols(operator:String,name:String,attr:Map[String,String])(symbols:Array[org.apache.mxnet.Symbol],paramKwargs:Map[String,String]):org.apache.mxnet.Symbol"></a>
      <a id="createFromListedSymbols(String,String,Map[String,String])(Array[Symbol],Map[String,String]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">createFromListedSymbols</span><span class="params">(<span name="operator">operator: <span class="extype" name="scala.Predef.String">String</span></span>, <span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="symbols">symbols: <span class="extype" name="scala.Array">Array</span>[<a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>]</span>, <span name="paramKwargs">paramKwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@createFromListedSymbols(operator:String,name:String,attr:Map[String,String])(symbols:Array[org.apache.mxnet.Symbol],paramKwargs:Map[String,String]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt">Activation Operator of Neural Net.</p><div class="fullcomment"><div class="comment cmt"><p>Activation Operator of Neural Net.
The parameters listed below can be passed in as keyword arguments.</p></div><dl class="paramcmts block"><dt class="param">attr</dt><dd class="cmt"><p>Attributes set to the resulting symbol</p></dd><dt class="param">symbols</dt><dd class="cmt"><p>Symbol parameters passed to create the resulting symbol</p></dd><dt class="param">paramKwargs</dt><dd class="cmt"><p>Key-value parameters passed to create the resulting symbol</p></dd><dt>returns</dt><dd class="cmt"><p>the resulting symbol
</p></dd></dl></div>
    </li><li name="org.apache.mxnet.Symbol#createFromNamedSymbols" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="createFromNamedSymbols(operator:String,name:String,attr:Map[String,String])(symbols:Map[String,org.apache.mxnet.Symbol],paramKwargs:Map[String,String]):org.apache.mxnet.Symbol"></a>
      <a id="createFromNamedSymbols(String,String,Map[String,String])(Map[String,Symbol],Map[String,String]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">createFromNamedSymbols</span><span class="params">(<span name="operator">operator: <span class="extype" name="scala.Predef.String">String</span></span>, <span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="symbols">symbols: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>]</span>, <span name="paramKwargs">paramKwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@createFromNamedSymbols(operator:String,name:String,attr:Map[String,String])(symbols:Map[String,org.apache.mxnet.Symbol],paramKwargs:Map[String,String]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt">Activation Operator of Neural Net.</p><div class="fullcomment"><div class="comment cmt"><p>Activation Operator of Neural Net.
The parameters listed below can be passed in as keyword arguments.</p></div><dl class="paramcmts block"><dt class="param">attr</dt><dd class="cmt"><p>Attributes set to the resulting symbol</p></dd><dt class="param">symbols</dt><dd class="cmt"><p>Named symbol parameters passed to create the resulting symbol</p></dd><dt class="param">paramKwargs</dt><dd class="cmt"><p>Key-value parameters passed to create the resulting symbol</p></dd><dt>returns</dt><dd class="cmt"><p>the resulting symbol
</p></dd></dl></div>
    </li><li name="scala.AnyRef#eq" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="eq(x$1:AnyRef):Boolean"></a>
      <a id="eq(AnyRef):Boolean"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">final </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">eq</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.AnyRef">AnyRef</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@eq(x$1:AnyRef):Boolean" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
    </li><li name="org.apache.mxnet.Symbol#equal" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="equal[V](left:V,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol"></a>
      <a id="equal[V](V,Symbol):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">equal</span><span class="tparams">[<span name="V">V</span>]</span><span class="params">(<span name="left">left: <span class="extype" name="org.apache.mxnet.Symbol.equal.V">V</span></span>, <span name="right">right: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@equal[V](left:V,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#equal" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="equal[V](left:org.apache.mxnet.Symbol,right:V):org.apache.mxnet.Symbol"></a>
      <a id="equal[V](Symbol,V):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">equal</span><span class="tparams">[<span name="V">V</span>]</span><span class="params">(<span name="left">left: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="right">right: <span class="extype" name="org.apache.mxnet.Symbol.equal.V">V</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@equal[V](left:org.apache.mxnet.Symbol,right:V):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#equal" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="equal(left:org.apache.mxnet.Symbol,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol"></a>
      <a id="equal(Symbol,Symbol):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">equal</span><span class="params">(<span name="left">left: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="right">right: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@equal(left:org.apache.mxnet.Symbol,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="scala.AnyRef#equals" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="equals(x$1:Any):Boolean"></a>
      <a id="equals(Any):Boolean"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">equals</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.Any">Any</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@equals(x$1:Any):Boolean" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
    </li><li name="scala.AnyRef#finalize" visbl="prt" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="finalize():Unit"></a>
      <a id="finalize():Unit"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">finalize</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@finalize():Unit" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Attributes</dt><dd>protected[<a href="../../../java$lang.html" class="extype" name="java.lang">java.lang</a>] </dd><dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
                <span class="name">@throws</span><span class="args">(<span>
      
      <span class="symbol">classOf[java.lang.Throwable]</span>
    </span>)</span>
              
        </dd></dl></div>
    </li><li name="scala.AnyRef#getClass" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="getClass():Class[_]"></a>
      <a id="getClass():Class[_]"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">final </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">getClass</span><span class="params">()</span><span class="result">: <span class="extype" name="java.lang.Class">Class</span>[_]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@getClass():Class[_]" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
    </li><li name="org.apache.mxnet.Symbol#greater" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="greater[V](left:org.apache.mxnet.Symbol,right:V):org.apache.mxnet.Symbol"></a>
      <a id="greater[V](Symbol,V):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">greater</span><span class="tparams">[<span name="V">V</span>]</span><span class="params">(<span name="left">left: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="right">right: <span class="extype" name="org.apache.mxnet.Symbol.greater.V">V</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@greater[V](left:org.apache.mxnet.Symbol,right:V):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#greater" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="greater(left:org.apache.mxnet.Symbol,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol"></a>
      <a id="greater(Symbol,Symbol):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">greater</span><span class="params">(<span name="left">left: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="right">right: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@greater(left:org.apache.mxnet.Symbol,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#greaterEqual" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="greaterEqual[V](left:org.apache.mxnet.Symbol,right:V):org.apache.mxnet.Symbol"></a>
      <a id="greaterEqual[V](Symbol,V):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">greaterEqual</span><span class="tparams">[<span name="V">V</span>]</span><span class="params">(<span name="left">left: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="right">right: <span class="extype" name="org.apache.mxnet.Symbol.greaterEqual.V">V</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@greaterEqual[V](left:org.apache.mxnet.Symbol,right:V):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#greaterEqual" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="greaterEqual(left:org.apache.mxnet.Symbol,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol"></a>
      <a id="greaterEqual(Symbol,Symbol):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">greaterEqual</span><span class="params">(<span name="left">left: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="right">right: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@greaterEqual(left:org.apache.mxnet.Symbol,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="scala.AnyRef#hashCode" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="hashCode():Int"></a>
      <a id="hashCode():Int"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">hashCode</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Int">Int</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@hashCode():Int" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
    </li><li name="scala.Any#isInstanceOf" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="isInstanceOf[T0]:Boolean"></a>
      <a id="isInstanceOf[T0]:Boolean"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">final </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">isInstanceOf</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@isInstanceOf[T0]:Boolean" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>Any</dd></dl></div>
    </li><li name="org.apache.mxnet.Symbol#lesser" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="lesser[V](left:org.apache.mxnet.Symbol,right:V):org.apache.mxnet.Symbol"></a>
      <a id="lesser[V](Symbol,V):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">lesser</span><span class="tparams">[<span name="V">V</span>]</span><span class="params">(<span name="left">left: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="right">right: <span class="extype" name="org.apache.mxnet.Symbol.lesser.V">V</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@lesser[V](left:org.apache.mxnet.Symbol,right:V):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#lesser" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="lesser(left:org.apache.mxnet.Symbol,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol"></a>
      <a id="lesser(Symbol,Symbol):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">lesser</span><span class="params">(<span name="left">left: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="right">right: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@lesser(left:org.apache.mxnet.Symbol,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#lesserEqual" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="lesserEqual[V](left:org.apache.mxnet.Symbol,right:V):org.apache.mxnet.Symbol"></a>
      <a id="lesserEqual[V](Symbol,V):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">lesserEqual</span><span class="tparams">[<span name="V">V</span>]</span><span class="params">(<span name="left">left: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="right">right: <span class="extype" name="org.apache.mxnet.Symbol.lesserEqual.V">V</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@lesserEqual[V](left:org.apache.mxnet.Symbol,right:V):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#lesserEqual" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="lesserEqual(left:org.apache.mxnet.Symbol,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol"></a>
      <a id="lesserEqual(Symbol,Symbol):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">lesserEqual</span><span class="params">(<span name="left">left: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="right">right: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@lesserEqual(left:org.apache.mxnet.Symbol,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#load" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="load(fname:String):org.apache.mxnet.Symbol"></a>
      <a id="load(String):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">load</span><span class="params">(<span name="fname">fname: <span class="extype" name="scala.Predef.String">String</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@load(fname:String):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt">Load symbol from a JSON file.</p><div class="fullcomment"><div class="comment cmt"><p>Load symbol from a JSON file.</p><p>You can also use pickle to do the job if you only work on python.
The advantage of load/save is the file is language agnostic.
This means the file saved using save can be loaded by other language binding of mxnet.
You also get the benefit being able to directly load/save from cloud storage(S3, HDFS)
</p></div><dl class="paramcmts block"><dt class="param">fname</dt><dd class="cmt"><p>The name of the file, examples:</p><ul><li><code>s3://my-bucket/path/my-s3-symbol</code></li><li><code>hdfs://my-bucket/path/my-hdfs-symbol</code></li><li><code>/path-to/my-local-symbol</code></li></ul></dd><dt>returns</dt><dd class="cmt"><p>The loaded symbol.</p></dd></dl><dl class="attributes block"> <dt>See also</dt><dd><span class="cmt"><p>Symbol.save : Used to save symbol into file.
</p></span></dd></dl></div>
    </li><li name="org.apache.mxnet.Symbol#loadJson" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="loadJson(json:String):org.apache.mxnet.Symbol"></a>
      <a id="loadJson(String):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">loadJson</span><span class="params">(<span name="json">json: <span class="extype" name="scala.Predef.String">String</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@loadJson(json:String):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt">Load symbol from json string.</p><div class="fullcomment"><div class="comment cmt"><p>Load symbol from json string.</p></div><dl class="paramcmts block"><dt class="param">json</dt><dd class="cmt"><p>A json string.</p></dd><dt>returns</dt><dd class="cmt"><p>The loaded symbol.</p></dd></dl><dl class="attributes block"> <dt>See also</dt><dd><span class="cmt"><p>Symbol.tojson : Used to save symbol into json string.
</p></span></dd></dl></div>
    </li><li name="org.apache.mxnet.Symbol#max" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="max[V](left:V,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol"></a>
      <a id="max[V](V,Symbol):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">max</span><span class="tparams">[<span name="V">V</span>]</span><span class="params">(<span name="left">left: <span class="extype" name="org.apache.mxnet.Symbol.max.V">V</span></span>, <span name="right">right: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@max[V](left:V,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#max" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="max[V](left:org.apache.mxnet.Symbol,right:V):org.apache.mxnet.Symbol"></a>
      <a id="max[V](Symbol,V):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">max</span><span class="tparams">[<span name="V">V</span>]</span><span class="params">(<span name="left">left: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="right">right: <span class="extype" name="org.apache.mxnet.Symbol.max.V">V</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@max[V](left:org.apache.mxnet.Symbol,right:V):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#max" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="max(left:org.apache.mxnet.Symbol,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol"></a>
      <a id="max(Symbol,Symbol):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">max</span><span class="params">(<span name="left">left: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="right">right: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@max(left:org.apache.mxnet.Symbol,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#min" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="min[V](left:V,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol"></a>
      <a id="min[V](V,Symbol):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">min</span><span class="tparams">[<span name="V">V</span>]</span><span class="params">(<span name="left">left: <span class="extype" name="org.apache.mxnet.Symbol.min.V">V</span></span>, <span name="right">right: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@min[V](left:V,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#min" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="min[V](left:org.apache.mxnet.Symbol,right:V):org.apache.mxnet.Symbol"></a>
      <a id="min[V](Symbol,V):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">min</span><span class="tparams">[<span name="V">V</span>]</span><span class="params">(<span name="left">left: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="right">right: <span class="extype" name="org.apache.mxnet.Symbol.min.V">V</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@min[V](left:org.apache.mxnet.Symbol,right:V):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#min" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="min(left:org.apache.mxnet.Symbol,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol"></a>
      <a id="min(Symbol,Symbol):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">min</span><span class="params">(<span name="left">left: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="right">right: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@min(left:org.apache.mxnet.Symbol,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="scala.AnyRef#ne" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="ne(x$1:AnyRef):Boolean"></a>
      <a id="ne(AnyRef):Boolean"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">final </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">ne</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.AnyRef">AnyRef</span></span>)</span><span class="result">: <span class="extype" name="scala.Boolean">Boolean</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@ne(x$1:AnyRef):Boolean" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
    </li><li name="org.apache.mxnet.Symbol#notEqual" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="notEqual[V](left:V,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol"></a>
      <a id="notEqual[V](V,Symbol):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">notEqual</span><span class="tparams">[<span name="V">V</span>]</span><span class="params">(<span name="left">left: <span class="extype" name="org.apache.mxnet.Symbol.notEqual.V">V</span></span>, <span name="right">right: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@notEqual[V](left:V,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#notEqual" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="notEqual[V](left:org.apache.mxnet.Symbol,right:V):org.apache.mxnet.Symbol"></a>
      <a id="notEqual[V](Symbol,V):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">notEqual</span><span class="tparams">[<span name="V">V</span>]</span><span class="params">(<span name="left">left: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="right">right: <span class="extype" name="org.apache.mxnet.Symbol.notEqual.V">V</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@notEqual[V](left:org.apache.mxnet.Symbol,right:V):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#notEqual" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="notEqual(left:org.apache.mxnet.Symbol,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol"></a>
      <a id="notEqual(Symbol,Symbol):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">notEqual</span><span class="params">(<span name="left">left: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="right">right: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@notEqual(left:org.apache.mxnet.Symbol,right:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="scala.AnyRef#notify" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="notify():Unit"></a>
      <a id="notify():Unit"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">final </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">notify</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@notify():Unit" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
    </li><li name="scala.AnyRef#notifyAll" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="notifyAll():Unit"></a>
      <a id="notifyAll():Unit"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">final </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">notifyAll</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@notifyAll():Unit" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
    </li><li name="org.apache.mxnet.Symbol#ones" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="ones(shape:org.apache.mxnet.Shape,dType:org.apache.mxnet.DType.DType,ctx:org.apache.mxnet.Context):org.apache.mxnet.Symbol"></a>
      <a id="ones(Shape,DType.DType,Context):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">ones</span><span class="params">(<span name="shape">shape: <a href="Shape.html" class="extype" name="org.apache.mxnet.Shape">Shape</a></span>, <span name="dType">dType: <a href="DType$.html#DType=org.apache.mxnet.DType.Value" class="extmbr" name="org.apache.mxnet.DType.DType">DType.DType</a> = <span class="symbol">Base.MX_REAL_TYPE</span></span>, <span name="ctx">ctx: <a href="Context.html" class="extype" name="org.apache.mxnet.Context">Context</a> = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@ones(shape:org.apache.mxnet.Shape,dType:org.apache.mxnet.DType.DType,ctx:org.apache.mxnet.Context):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt">Returns a new symbol of given shape and type, filled with ones.</p>
    </li><li name="org.apache.mxnet.Symbol#pow" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="pow[V](number:V,sym:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol"></a>
      <a id="pow[V](V,Symbol):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">pow</span><span class="tparams">[<span name="V">V</span>]</span><span class="params">(<span name="number">number: <span class="extype" name="org.apache.mxnet.Symbol.pow.V">V</span></span>, <span name="sym">sym: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@pow[V](number:V,sym:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#pow" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="pow[V](sym:org.apache.mxnet.Symbol,number:V):org.apache.mxnet.Symbol"></a>
      <a id="pow[V](Symbol,V):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">pow</span><span class="tparams">[<span name="V">V</span>]</span><span class="params">(<span name="sym">sym: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="number">number: <span class="extype" name="org.apache.mxnet.Symbol.pow.V">V</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@pow[V](sym:org.apache.mxnet.Symbol,number:V):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#pow" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="pow(sym1:org.apache.mxnet.Symbol,sym2:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol"></a>
      <a id="pow(Symbol,Symbol):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">pow</span><span class="params">(<span name="sym1">sym1: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>, <span name="sym2">sym2: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@pow(sym1:org.apache.mxnet.Symbol,sym2:org.apache.mxnet.Symbol):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="org.apache.mxnet.Symbol#random" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="random:org.apache.mxnet.SymbolRandomAPI.type"></a>
      <a id="random:SymbolRandomAPI.type"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">val</span>
      </span>
      <span class="symbol">
        <span class="name">random</span><span class="result">: <a href="SymbolRandomAPI$.html" class="extype" name="org.apache.mxnet.SymbolRandomAPI">SymbolRandomAPI</a>.type</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@random:org.apache.mxnet.SymbolRandomAPI.type" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      
    </li><li name="scala.AnyRef#synchronized" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="synchronized[T0](x$1:=&gt;T0):T0"></a>
      <a id="synchronized[T0](⇒T0):T0"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">final </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">synchronized</span><span class="tparams">[<span name="T0">T0</span>]</span><span class="params">(<span name="arg0">arg0: ⇒ <span class="extype" name="java.lang.AnyRef.synchronized.T0">T0</span></span>)</span><span class="result">: <span class="extype" name="java.lang.AnyRef.synchronized.T0">T0</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@synchronized[T0](x$1:=&gt;T0):T0" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd></dl></div>
    </li><li name="scala.AnyRef#toString" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="toString():String"></a>
      <a id="toString():String"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">toString</span><span class="params">()</span><span class="result">: <span class="extype" name="java.lang.String">String</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@toString():String" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef → Any</dd></dl></div>
    </li><li name="scala.AnyRef#wait" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="wait():Unit"></a>
      <a id="wait():Unit"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">final </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">wait</span><span class="params">()</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@wait():Unit" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
                <span class="name">@throws</span><span class="args">(<span>
      
      <span class="defval" name="classOf[java.lang.InterruptedException]">...</span>
    </span>)</span>
              
        </dd></dl></div>
    </li><li name="scala.AnyRef#wait" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="wait(x$1:Long,x$2:Int):Unit"></a>
      <a id="wait(Long,Int):Unit"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">final </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">wait</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.Long">Long</span></span>, <span name="arg1">arg1: <span class="extype" name="scala.Int">Int</span></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@wait(x$1:Long,x$2:Int):Unit" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
                <span class="name">@throws</span><span class="args">(<span>
      
      <span class="defval" name="classOf[java.lang.InterruptedException]">...</span>
    </span>)</span>
              
        </dd></dl></div>
    </li><li name="scala.AnyRef#wait" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="wait(x$1:Long):Unit"></a>
      <a id="wait(Long):Unit"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier">final </span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">wait</span><span class="params">(<span name="arg0">arg0: <span class="extype" name="scala.Long">Long</span></span>)</span><span class="result">: <span class="extype" name="scala.Unit">Unit</span></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@wait(x$1:Long):Unit" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Definition Classes</dt><dd>AnyRef</dd><dt>Annotations</dt><dd>
                <span class="name">@throws</span><span class="args">(<span>
      
      <span class="defval" name="classOf[java.lang.InterruptedException]">...</span>
    </span>)</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.Symbol#zeros" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="zeros(shape:org.apache.mxnet.Shape,dType:org.apache.mxnet.DType.DType,ctx:org.apache.mxnet.Context):org.apache.mxnet.Symbol"></a>
      <a id="zeros(Shape,DType.DType,Context):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name">zeros</span><span class="params">(<span name="shape">shape: <a href="Shape.html" class="extype" name="org.apache.mxnet.Shape">Shape</a></span>, <span name="dType">dType: <a href="DType$.html#DType=org.apache.mxnet.DType.Value" class="extmbr" name="org.apache.mxnet.DType.DType">DType.DType</a> = <span class="symbol">Base.MX_REAL_TYPE</span></span>, <span name="ctx">ctx: <a href="Context.html" class="extype" name="org.apache.mxnet.Context">Context</a> = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@zeros(shape:org.apache.mxnet.Shape,dType:org.apache.mxnet.DType.DType,ctx:org.apache.mxnet.Context):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <p class="shortcomment cmt">Returns a new symbol of given shape and type, filled with zeros.</p>
    </li></ol>
            </div>

        

        <div id="values" class="values members">
              <h3>Deprecated Value Members</h3>
              <ol><li name="org.apache.mxnet.Symbol#createFromListedSymbolsNoCheck" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="createFromListedSymbolsNoCheck(operator:String,name:String,attr:Map[String,String])(symbols:Array[org.apache.mxnet.Symbol],kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="createFromListedSymbolsNoCheck(String,String,Map[String,String])(Array[Symbol],Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name deprecated" title="Deprecated: (Since version 0.1.2) Use Checked version">createFromListedSymbolsNoCheck</span><span class="params">(<span name="operator">operator: <span class="extype" name="scala.Predef.String">String</span></span>, <span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="symbols">symbols: <span class="extype" name="scala.Array">Array</span>[<a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a>]</span>, <span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>] = <span class="symbol">null</span></span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@createFromListedSymbolsNoCheck(operator:String,name:String,attr:Map[String,String])(symbols:Array[org.apache.mxnet.Symbol],kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@deprecated</span>
              
        </dd><dt>Deprecated</dt><dd class="cmt"><p><i>(Since version 0.1.2)</i> Use Checked version</p></dd></dl></div>
    </li><li name="org.apache.mxnet.Symbol#createFromNamedSymbolsNoCheck" visbl="pub" data-isabs="false" fullComment="yes" group="Ungrouped">
      <a id="createFromNamedSymbolsNoCheck(operator:String,name:String,attr:Map[String,String])(kwargs:Map[String,Any]):org.apache.mxnet.Symbol"></a>
      <a id="createFromNamedSymbolsNoCheck(String,String,Map[String,String])(Map[String,Any]):Symbol"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">def</span>
      </span>
      <span class="symbol">
        <span class="name deprecated" title="Deprecated: (Since version 0.1.2) Use Checked version">createFromNamedSymbolsNoCheck</span><span class="params">(<span name="operator">operator: <span class="extype" name="scala.Predef.String">String</span></span>, <span name="name">name: <span class="extype" name="scala.Predef.String">String</span> = <span class="symbol">null</span></span>, <span name="attr">attr: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Predef.String">String</span>] = <span class="symbol">null</span></span>)</span><span class="params">(<span name="kwargs">kwargs: <span class="extype" name="scala.Predef.Map">Map</span>[<span class="extype" name="scala.Predef.String">String</span>, <span class="extype" name="scala.Any">Any</span>]</span>)</span><span class="result">: <a href="Symbol.html" class="extype" name="org.apache.mxnet.Symbol">Symbol</a></span>
      </span>
      </h4><span class="permalink">
      <a href="../../../index.html#org.apache.mxnet.Symbol$@createFromNamedSymbolsNoCheck(operator:String,name:String,attr:Map[String,String])(kwargs:Map[String,Any]):org.apache.mxnet.Symbol" title="Permalink" target="_top">
        <img src="../../../lib/permalink.png" />
      </a>
    </span>
      <div class="fullcomment"><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@deprecated</span>
              
        </dd><dt>Deprecated</dt><dd class="cmt"><p><i>(Since version 0.1.2)</i> Use Checked version</p></dd></dl></div>
    </li></ol>
            </div>
        </div>

        <div id="inheritedMembers">
        <div class="parent" name="org.apache.mxnet.SymbolBase">
              <h3>Inherited from <a href="SymbolBase.html" class="extype" name="org.apache.mxnet.SymbolBase">SymbolBase</a></h3>
            </div><div class="parent" name="scala.AnyRef">
              <h3>Inherited from <span class="extype" name="scala.AnyRef">AnyRef</span></h3>
            </div><div class="parent" name="scala.Any">
              <h3>Inherited from <span class="extype" name="scala.Any">Any</span></h3>
            </div>
        
        </div>

        <div id="groupedMembers">
        <div class="group" name="Ungrouped">
              <h3>Ungrouped</h3>
              
            </div>
        </div>

      </div>

      <div id="tooltip"></div>

      <div id="footer">  </div>


    </body>
      </html>