<!DOCTYPE html >
<html>
        <head>
          <title>NDArrayBase - MXNet - org.apache.mxnet.javaapi.NDArrayBase</title>
          <meta name="description" content="NDArrayBase - MXNet - org.apache.mxnet.javaapi.NDArrayBase" />
          <meta name="keywords" content="NDArrayBase MXNet org.apache.mxnet.javaapi.NDArrayBase" />
          <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.javaapi.NDArrayBase';
            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="type">
      <div id="definition">
        <img src="../../../../lib/class_big.png" />
        <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>.<a href="package.html" class="extype" name="org.apache.mxnet.javaapi">javaapi</a></p>
        <h1>NDArrayBase</h1><h3><span class="morelinks"><div>Related Doc:
            <a href="package.html" class="extype" name="org.apache.mxnet.javaapi">package javaapi</a>
          </div></span></h3><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase" title="Permalink" target="_top">
        <img src="../../../../lib/permalink.png" />
      </a>
    </span>
      </div>

      <h4 id="signature" class="signature">
      <span class="modifier_kind">
        <span class="modifier">abstract </span>
        <span class="kind">class</span>
      </span>
      <span class="symbol">
        <span class="name">NDArrayBase</span><span class="result"> extends <span class="extype" name="scala.AnyRef">AnyRef</span></span>
      </span>
      </h4>
      
          <div id="comment" class="fullcommenttop"><div class="toggleContainer block">
          <span class="toggle">Linear Supertypes</span>
          <div class="superTypes hiddenContent"><span class="extype" name="scala.AnyRef">AnyRef</span>, <span class="extype" name="scala.Any">Any</span></div>
        </div><div class="toggleContainer block">
            <span class="toggle">Known Subclasses</span>
            <div class="subClasses hiddenContent"><a href="NDArray$.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></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.javaapi.NDArrayBase"><span>NDArrayBase</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="constructors" class="members">
              <h3>Instance Constructors</h3>
              <ol><li name="org.apache.mxnet.javaapi.NDArrayBase#&lt;init&gt;" visbl="pub" data-isabs="false" fullComment="no" group="Ungrouped">
      <a id="&lt;init&gt;():org.apache.mxnet.javaapi.NDArrayBase"></a>
      <a id="&lt;init&gt;:NDArrayBase"></a>
      <h4 class="signature">
      <span class="modifier_kind">
        <span class="modifier"></span>
        <span class="kind">new</span>
      </span>
      <span class="symbol">
        <span class="name">NDArrayBase</span><span class="params">()</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@&lt;init&gt;():org.apache.mxnet.javaapi.NDArrayBase" title="Permalink" target="_top">
        <img src="../../../../lib/permalink.png" />
      </a>
    </span>
      
    </li></ol>
            </div>

        

        <div id="values" class="values members">
              <h3>Abstract Value Members</h3>
              <ol><li name="org.apache.mxnet.javaapi.NDArrayBase#Activation" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Activation(data:org.apache.mxnet.javaapi.NDArray,act_type:String,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="Activation(NDArray,String,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="act_type">act_type: <span class="extype" name="scala.Predef.String">String</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@Activation(data:org.apache.mxnet.javaapi.NDArray,act_type:String,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt class="param">act_type</dt><dd class="cmt"><p>Activation function to be applied.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#BatchNorm" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="BatchNorm(po:org.apache.mxnet.javaapi.BatchNormParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="BatchNorm(BatchNormParam):Array[NDArray]"></a>
      <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="po">po: <a href="BatchNormParam.html" class="extype" name="org.apache.mxnet.javaapi.BatchNormParam">BatchNormParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@BatchNorm(po:org.apache.mxnet.javaapi.BatchNormParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#BatchNorm_v1" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="BatchNorm_v1(po:org.apache.mxnet.javaapi.BatchNorm_v1Param):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="BatchNorm_v1(BatchNorm_v1Param):Array[NDArray]"></a>
      <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="po">po: <a href="BatchNorm_v1Param.html" class="extype" name="org.apache.mxnet.javaapi.BatchNorm_v1Param">BatchNorm_v1Param</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@BatchNorm_v1(po:org.apache.mxnet.javaapi.BatchNorm_v1Param):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#BilinearSampler" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="BilinearSampler(data:org.apache.mxnet.javaapi.NDArray,grid:org.apache.mxnet.javaapi.NDArray,cudnn_off:Boolean,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="BilinearSampler(NDArray,NDArray,Boolean,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="grid">grid: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="cudnn_off">cudnn_off: <span class="extype" name="java.lang.Boolean">Boolean</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@BilinearSampler(data:org.apache.mxnet.javaapi.NDArray,grid:org.apache.mxnet.javaapi.NDArray,cudnn_off:Boolean,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Input data to the BilinearsamplerOp.</p></dd><dt class="param">grid</dt><dd class="cmt"><p>Input grid to the BilinearsamplerOp.grid has two channels: x_src, y_src</p></dd><dt class="param">cudnn_off</dt><dd class="cmt"><p>whether to turn cudnn off</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#BlockGrad" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="BlockGrad(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="BlockGrad(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@BlockGrad(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#CTCLoss" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="CTCLoss(po:org.apache.mxnet.javaapi.CTCLossParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="CTCLoss(CTCLossParam):Array[NDArray]"></a>
      <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="po">po: <a href="CTCLossParam.html" class="extype" name="org.apache.mxnet.javaapi.CTCLossParam">CTCLossParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@CTCLoss(po:org.apache.mxnet.javaapi.CTCLossParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#Convolution" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Convolution(po:org.apache.mxnet.javaapi.ConvolutionParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="Convolution(ConvolutionParam):Array[NDArray]"></a>
      <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="po">po: <a href="ConvolutionParam.html" class="extype" name="org.apache.mxnet.javaapi.ConvolutionParam">ConvolutionParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@Convolution(po:org.apache.mxnet.javaapi.ConvolutionParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#Convolution_v1" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Convolution_v1(po:org.apache.mxnet.javaapi.Convolution_v1Param):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="Convolution_v1(Convolution_v1Param):Array[NDArray]"></a>
      <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="po">po: <a href="Convolution_v1Param.html" class="extype" name="org.apache.mxnet.javaapi.Convolution_v1Param">Convolution_v1Param</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@Convolution_v1(po:org.apache.mxnet.javaapi.Convolution_v1Param):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#Correlation" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Correlation(po:org.apache.mxnet.javaapi.CorrelationParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="Correlation(CorrelationParam):Array[NDArray]"></a>
      <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="po">po: <a href="CorrelationParam.html" class="extype" name="org.apache.mxnet.javaapi.CorrelationParam">CorrelationParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@Correlation(po:org.apache.mxnet.javaapi.CorrelationParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#Deconvolution" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Deconvolution(po:org.apache.mxnet.javaapi.DeconvolutionParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="Deconvolution(DeconvolutionParam):Array[NDArray]"></a>
      <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="po">po: <a href="DeconvolutionParam.html" class="extype" name="org.apache.mxnet.javaapi.DeconvolutionParam">DeconvolutionParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@Deconvolution(po:org.apache.mxnet.javaapi.DeconvolutionParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#Dropout" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Dropout(po:org.apache.mxnet.javaapi.DropoutParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="Dropout(DropoutParam):Array[NDArray]"></a>
      <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="po">po: <a href="DropoutParam.html" class="extype" name="org.apache.mxnet.javaapi.DropoutParam">DropoutParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@Dropout(po:org.apache.mxnet.javaapi.DropoutParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#ElementWiseSum" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="ElementWiseSum(args:Array[org.apache.mxnet.javaapi.NDArray],out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="ElementWiseSum(Array[NDArray],NDArray):Array[NDArray]"></a>
      <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="args">args: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@ElementWiseSum(args:Array[org.apache.mxnet.javaapi.NDArray],out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">args</dt><dd class="cmt"><p>Positional input arguments</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#Embedding" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Embedding(po:org.apache.mxnet.javaapi.EmbeddingParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="Embedding(EmbeddingParam):Array[NDArray]"></a>
      <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="po">po: <a href="EmbeddingParam.html" class="extype" name="org.apache.mxnet.javaapi.EmbeddingParam">EmbeddingParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@Embedding(po:org.apache.mxnet.javaapi.EmbeddingParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#FullyConnected" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="FullyConnected(po:org.apache.mxnet.javaapi.FullyConnectedParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="FullyConnected(FullyConnectedParam):Array[NDArray]"></a>
      <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="po">po: <a href="FullyConnectedParam.html" class="extype" name="org.apache.mxnet.javaapi.FullyConnectedParam">FullyConnectedParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@FullyConnected(po:org.apache.mxnet.javaapi.FullyConnectedParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#GridGenerator" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="GridGenerator(data:org.apache.mxnet.javaapi.NDArray,transform_type:String,target_shape:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="GridGenerator(NDArray,String,Shape,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="transform_type">transform_type: <span class="extype" name="scala.Predef.String">String</span></span>, <span name="target_shape">target_shape: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@GridGenerator(data:org.apache.mxnet.javaapi.NDArray,transform_type:String,target_shape:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Input data to the function.</p></dd><dt class="param">transform_type</dt><dd class="cmt"><p>The type of transformation. For <code>affine</code>, input data should be an affine matrix of size (batch, 6). For <code>warp</code>, input data should be an optical flow of size (batch, 2, h, w).</p></dd><dt class="param">target_shape</dt><dd class="cmt"><p>Specifies the output shape (H, W). This is required if transformation type is <code>affine</code>. If transformation type is <code>warp</code>, this parameter is ignored.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#GroupNorm" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="GroupNorm(po:org.apache.mxnet.javaapi.GroupNormParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="GroupNorm(GroupNormParam):Array[NDArray]"></a>
      <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="po">po: <a href="GroupNormParam.html" class="extype" name="org.apache.mxnet.javaapi.GroupNormParam">GroupNormParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@GroupNorm(po:org.apache.mxnet.javaapi.GroupNormParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#IdentityAttachKLSparseReg" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="IdentityAttachKLSparseReg(po:org.apache.mxnet.javaapi.IdentityAttachKLSparseRegParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="IdentityAttachKLSparseReg(IdentityAttachKLSparseRegParam):Array[NDArray]"></a>
      <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="po">po: <a href="IdentityAttachKLSparseRegParam.html" class="extype" name="org.apache.mxnet.javaapi.IdentityAttachKLSparseRegParam">IdentityAttachKLSparseRegParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@IdentityAttachKLSparseReg(po:org.apache.mxnet.javaapi.IdentityAttachKLSparseRegParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#InstanceNorm" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="InstanceNorm(data:org.apache.mxnet.javaapi.NDArray,gamma:org.apache.mxnet.javaapi.NDArray,beta:org.apache.mxnet.javaapi.NDArray,eps:Float,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="InstanceNorm(NDArray,NDArray,NDArray,Float,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="gamma">gamma: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="beta">beta: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="eps">eps: <span class="extype" name="java.lang.Float">Float</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@InstanceNorm(data:org.apache.mxnet.javaapi.NDArray,gamma:org.apache.mxnet.javaapi.NDArray,beta:org.apache.mxnet.javaapi.NDArray,eps:Float,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>An n-dimensional input array (n &gt; 2) of the form [batch, channel, spatial_dim1, spatial_dim2, ...].</p></dd><dt class="param">gamma</dt><dd class="cmt"><p>A vector of length 'channel', which multiplies the normalized input.</p></dd><dt class="param">beta</dt><dd class="cmt"><p>A vector of length 'channel', which is added to the product of the normalized input and the weight.</p></dd><dt class="param">eps</dt><dd class="cmt"><p>An <code>epsilon</code> parameter to prevent division by 0.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#L2Normalization" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="L2Normalization(po:org.apache.mxnet.javaapi.L2NormalizationParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="L2Normalization(L2NormalizationParam):Array[NDArray]"></a>
      <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="po">po: <a href="L2NormalizationParam.html" class="extype" name="org.apache.mxnet.javaapi.L2NormalizationParam">L2NormalizationParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@L2Normalization(po:org.apache.mxnet.javaapi.L2NormalizationParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#LRN" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="LRN(po:org.apache.mxnet.javaapi.LRNParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="LRN(LRNParam):Array[NDArray]"></a>
      <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="po">po: <a href="LRNParam.html" class="extype" name="org.apache.mxnet.javaapi.LRNParam">LRNParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@LRN(po:org.apache.mxnet.javaapi.LRNParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#LayerNorm" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="LayerNorm(po:org.apache.mxnet.javaapi.LayerNormParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="LayerNorm(LayerNormParam):Array[NDArray]"></a>
      <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="po">po: <a href="LayerNormParam.html" class="extype" name="org.apache.mxnet.javaapi.LayerNormParam">LayerNormParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@LayerNorm(po:org.apache.mxnet.javaapi.LayerNormParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#LeakyReLU" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="LeakyReLU(po:org.apache.mxnet.javaapi.LeakyReLUParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="LeakyReLU(LeakyReLUParam):Array[NDArray]"></a>
      <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="po">po: <a href="LeakyReLUParam.html" class="extype" name="org.apache.mxnet.javaapi.LeakyReLUParam">LeakyReLUParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@LeakyReLU(po:org.apache.mxnet.javaapi.LeakyReLUParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#LinearRegressionOutput" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="LinearRegressionOutput(data:org.apache.mxnet.javaapi.NDArray,label:org.apache.mxnet.javaapi.NDArray,grad_scale:Float,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="LinearRegressionOutput(NDArray,NDArray,Float,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="label">label: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="grad_scale">grad_scale: <span class="extype" name="java.lang.Float">Float</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@LinearRegressionOutput(data:org.apache.mxnet.javaapi.NDArray,label:org.apache.mxnet.javaapi.NDArray,grad_scale:Float,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Input data to the function.</p></dd><dt class="param">label</dt><dd class="cmt"><p>Input label to the function.</p></dd><dt class="param">grad_scale</dt><dd class="cmt"><p>Scale the gradient by a float factor</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#LogisticRegressionOutput" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="LogisticRegressionOutput(data:org.apache.mxnet.javaapi.NDArray,label:org.apache.mxnet.javaapi.NDArray,grad_scale:Float,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="LogisticRegressionOutput(NDArray,NDArray,Float,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="label">label: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="grad_scale">grad_scale: <span class="extype" name="java.lang.Float">Float</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@LogisticRegressionOutput(data:org.apache.mxnet.javaapi.NDArray,label:org.apache.mxnet.javaapi.NDArray,grad_scale:Float,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Input data to the function.</p></dd><dt class="param">label</dt><dd class="cmt"><p>Input label to the function.</p></dd><dt class="param">grad_scale</dt><dd class="cmt"><p>Scale the gradient by a float factor</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#MAERegressionOutput" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="MAERegressionOutput(data:org.apache.mxnet.javaapi.NDArray,label:org.apache.mxnet.javaapi.NDArray,grad_scale:Float,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="MAERegressionOutput(NDArray,NDArray,Float,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="label">label: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="grad_scale">grad_scale: <span class="extype" name="java.lang.Float">Float</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@MAERegressionOutput(data:org.apache.mxnet.javaapi.NDArray,label:org.apache.mxnet.javaapi.NDArray,grad_scale:Float,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Input data to the function.</p></dd><dt class="param">label</dt><dd class="cmt"><p>Input label to the function.</p></dd><dt class="param">grad_scale</dt><dd class="cmt"><p>Scale the gradient by a float factor</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#MakeLoss" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="MakeLoss(po:org.apache.mxnet.javaapi.MakeLossParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="MakeLoss(MakeLossParam):Array[NDArray]"></a>
      <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="po">po: <a href="MakeLossParam.html" class="extype" name="org.apache.mxnet.javaapi.MakeLossParam">MakeLossParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@MakeLoss(po:org.apache.mxnet.javaapi.MakeLossParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#Pooling" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Pooling(po:org.apache.mxnet.javaapi.PoolingParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="Pooling(PoolingParam):Array[NDArray]"></a>
      <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="po">po: <a href="PoolingParam.html" class="extype" name="org.apache.mxnet.javaapi.PoolingParam">PoolingParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@Pooling(po:org.apache.mxnet.javaapi.PoolingParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#Pooling_v1" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="Pooling_v1(po:org.apache.mxnet.javaapi.Pooling_v1Param):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="Pooling_v1(Pooling_v1Param):Array[NDArray]"></a>
      <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="po">po: <a href="Pooling_v1Param.html" class="extype" name="org.apache.mxnet.javaapi.Pooling_v1Param">Pooling_v1Param</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@Pooling_v1(po:org.apache.mxnet.javaapi.Pooling_v1Param):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#RNN" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="RNN(po:org.apache.mxnet.javaapi.RNNParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="RNN(RNNParam):Array[NDArray]"></a>
      <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="po">po: <a href="RNNParam.html" class="extype" name="org.apache.mxnet.javaapi.RNNParam">RNNParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@RNN(po:org.apache.mxnet.javaapi.RNNParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#ROIPooling" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="ROIPooling(data:org.apache.mxnet.javaapi.NDArray,rois:org.apache.mxnet.javaapi.NDArray,pooled_size:org.apache.mxnet.javaapi.Shape,spatial_scale:Float,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="ROIPooling(NDArray,NDArray,Shape,Float,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rois">rois: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="pooled_size">pooled_size: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="spatial_scale">spatial_scale: <span class="extype" name="java.lang.Float">Float</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@ROIPooling(data:org.apache.mxnet.javaapi.NDArray,rois:org.apache.mxnet.javaapi.NDArray,pooled_size:org.apache.mxnet.javaapi.Shape,spatial_scale:Float,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array to the pooling operator,  a 4D Feature maps</p></dd><dt class="param">rois</dt><dd class="cmt"><p>Bounding box coordinates, a 2D array of <code>[ [batch_index, x1, y1, x2, y2] ], where (x1, y1) and (x2, y2) are top left and bottom right corners of designated region of interest. </code>batch_index<code> indicates the index of corresponding image in the input array</code></p></dd><dt class="param">pooled_size</dt><dd class="cmt"><p>ROI pooling output shape (h,w)</p></dd><dt class="param">spatial_scale</dt><dd class="cmt"><p>Ratio of input feature map height (or w) to raw image height (or w). Equals the reciprocal of total stride in convolutional layers</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#SVMOutput" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SVMOutput(po:org.apache.mxnet.javaapi.SVMOutputParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="SVMOutput(SVMOutputParam):Array[NDArray]"></a>
      <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="po">po: <a href="SVMOutputParam.html" class="extype" name="org.apache.mxnet.javaapi.SVMOutputParam">SVMOutputParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@SVMOutput(po:org.apache.mxnet.javaapi.SVMOutputParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#SequenceLast" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SequenceLast(po:org.apache.mxnet.javaapi.SequenceLastParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="SequenceLast(SequenceLastParam):Array[NDArray]"></a>
      <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="po">po: <a href="SequenceLastParam.html" class="extype" name="org.apache.mxnet.javaapi.SequenceLastParam">SequenceLastParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@SequenceLast(po:org.apache.mxnet.javaapi.SequenceLastParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#SequenceMask" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SequenceMask(po:org.apache.mxnet.javaapi.SequenceMaskParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="SequenceMask(SequenceMaskParam):Array[NDArray]"></a>
      <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="po">po: <a href="SequenceMaskParam.html" class="extype" name="org.apache.mxnet.javaapi.SequenceMaskParam">SequenceMaskParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@SequenceMask(po:org.apache.mxnet.javaapi.SequenceMaskParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#SequenceReverse" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SequenceReverse(po:org.apache.mxnet.javaapi.SequenceReverseParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="SequenceReverse(SequenceReverseParam):Array[NDArray]"></a>
      <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="po">po: <a href="SequenceReverseParam.html" class="extype" name="org.apache.mxnet.javaapi.SequenceReverseParam">SequenceReverseParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@SequenceReverse(po:org.apache.mxnet.javaapi.SequenceReverseParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#SliceChannel" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SliceChannel(po:org.apache.mxnet.javaapi.SliceChannelParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="SliceChannel(SliceChannelParam):Array[NDArray]"></a>
      <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="po">po: <a href="SliceChannelParam.html" class="extype" name="org.apache.mxnet.javaapi.SliceChannelParam">SliceChannelParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@SliceChannel(po:org.apache.mxnet.javaapi.SliceChannelParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#SoftmaxActivation" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SoftmaxActivation(data:org.apache.mxnet.javaapi.NDArray,mode:String,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="SoftmaxActivation(NDArray,String,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="mode">mode: <span class="extype" name="scala.Predef.String">String</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@SoftmaxActivation(data:org.apache.mxnet.javaapi.NDArray,mode:String,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt class="param">mode</dt><dd class="cmt"><p>Specifies how to compute the softmax. If set to <code><code>instance</code></code>, it computes softmax for each instance. If set to <code><code>channel</code></code>, It computes cross channel softmax for each position of each instance.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#SoftmaxOutput" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SoftmaxOutput(po:org.apache.mxnet.javaapi.SoftmaxOutputParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="SoftmaxOutput(SoftmaxOutputParam):Array[NDArray]"></a>
      <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="po">po: <a href="SoftmaxOutputParam.html" class="extype" name="org.apache.mxnet.javaapi.SoftmaxOutputParam">SoftmaxOutputParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@SoftmaxOutput(po:org.apache.mxnet.javaapi.SoftmaxOutputParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#SpatialTransformer" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SpatialTransformer(po:org.apache.mxnet.javaapi.SpatialTransformerParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="SpatialTransformer(SpatialTransformerParam):Array[NDArray]"></a>
      <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="po">po: <a href="SpatialTransformerParam.html" class="extype" name="org.apache.mxnet.javaapi.SpatialTransformerParam">SpatialTransformerParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@SpatialTransformer(po:org.apache.mxnet.javaapi.SpatialTransformerParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#SwapAxis" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="SwapAxis(po:org.apache.mxnet.javaapi.SwapAxisParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="SwapAxis(SwapAxisParam):Array[NDArray]"></a>
      <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="po">po: <a href="SwapAxisParam.html" class="extype" name="org.apache.mxnet.javaapi.SwapAxisParam">SwapAxisParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@SwapAxis(po:org.apache.mxnet.javaapi.SwapAxisParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#UpSampling" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="UpSampling(po:org.apache.mxnet.javaapi.UpSamplingParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="UpSampling(UpSamplingParam):Array[NDArray]"></a>
      <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="po">po: <a href="UpSamplingParam.html" class="extype" name="org.apache.mxnet.javaapi.UpSamplingParam">UpSamplingParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@UpSampling(po:org.apache.mxnet.javaapi.UpSamplingParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#abs" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="abs(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="abs(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@abs(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#adam_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="adam_update(po:org.apache.mxnet.javaapi.adam_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="adam_update(adam_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="adam_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.adam_updateParam">adam_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@adam_update(po:org.apache.mxnet.javaapi.adam_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#add_n" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="add_n(args:Array[org.apache.mxnet.javaapi.NDArray],out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="add_n(Array[NDArray],NDArray):Array[NDArray]"></a>
      <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="args">args: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@add_n(args:Array[org.apache.mxnet.javaapi.NDArray],out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">args</dt><dd class="cmt"><p>Positional input arguments</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#all_finite" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="all_finite(data:org.apache.mxnet.javaapi.NDArray,init_output:Boolean,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="all_finite(NDArray,Boolean,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="init_output">init_output: <span class="extype" name="java.lang.Boolean">Boolean</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@all_finite(data:org.apache.mxnet.javaapi.NDArray,init_output:Boolean,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Array</p></dd><dt class="param">init_output</dt><dd class="cmt"><p>Initialize output to 1.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#amp_cast" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="amp_cast(data:org.apache.mxnet.javaapi.NDArray,dtype:String,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="amp_cast(NDArray,String,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="dtype">dtype: <span class="extype" name="scala.Predef.String">String</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@amp_cast(data:org.apache.mxnet.javaapi.NDArray,dtype:String,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input.</p></dd><dt class="param">dtype</dt><dd class="cmt"><p>Output data type.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#amp_multicast" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="amp_multicast(data:Array[org.apache.mxnet.javaapi.NDArray],num_outputs:Integer,cast_narrow:Boolean,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="amp_multicast(Array[NDArray],Integer,Boolean,NDArray):Array[NDArray]"></a>
      <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="data">data: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>, <span name="num_outputs">num_outputs: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="cast_narrow">cast_narrow: <span class="extype" name="java.lang.Boolean">Boolean</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@amp_multicast(data:Array[org.apache.mxnet.javaapi.NDArray],num_outputs:Integer,cast_narrow:Boolean,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Weights</p></dd><dt class="param">num_outputs</dt><dd class="cmt"><p>Number of input/output pairs to be casted to the widest type.</p></dd><dt class="param">cast_narrow</dt><dd class="cmt"><p>Whether to cast to the narrowest type</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#arccos" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="arccos(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="arccos(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@arccos(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#arccosh" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="arccosh(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="arccosh(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@arccosh(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#arcsin" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="arcsin(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="arcsin(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@arcsin(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#arcsinh" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="arcsinh(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="arcsinh(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@arcsinh(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#arctan" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="arctan(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="arctan(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@arctan(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#arctanh" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="arctanh(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="arctanh(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@arctanh(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#argmax" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="argmax(po:org.apache.mxnet.javaapi.argmaxParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="argmax(argmaxParam):Array[NDArray]"></a>
      <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="po">po: <a href="argmaxParam.html" class="extype" name="org.apache.mxnet.javaapi.argmaxParam">argmaxParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@argmax(po:org.apache.mxnet.javaapi.argmaxParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#argmax_channel" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="argmax_channel(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="argmax_channel(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@argmax_channel(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#argmin" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="argmin(po:org.apache.mxnet.javaapi.argminParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="argmin(argminParam):Array[NDArray]"></a>
      <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="po">po: <a href="argminParam.html" class="extype" name="org.apache.mxnet.javaapi.argminParam">argminParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@argmin(po:org.apache.mxnet.javaapi.argminParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#argsort" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="argsort(po:org.apache.mxnet.javaapi.argsortParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="argsort(argsortParam):Array[NDArray]"></a>
      <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="po">po: <a href="argsortParam.html" class="extype" name="org.apache.mxnet.javaapi.argsortParam">argsortParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@argsort(po:org.apache.mxnet.javaapi.argsortParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#batch_dot" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="batch_dot(po:org.apache.mxnet.javaapi.batch_dotParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="batch_dot(batch_dotParam):Array[NDArray]"></a>
      <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="po">po: <a href="batch_dotParam.html" class="extype" name="org.apache.mxnet.javaapi.batch_dotParam">batch_dotParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@batch_dot(po:org.apache.mxnet.javaapi.batch_dotParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#batch_take" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="batch_take(a:org.apache.mxnet.javaapi.NDArray,indices:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="batch_take(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="a">a: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="indices">indices: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@batch_take(a:org.apache.mxnet.javaapi.NDArray,indices:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">a</dt><dd class="cmt"><p>The input array</p></dd><dt class="param">indices</dt><dd class="cmt"><p>The index array</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_add" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_add(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_add(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_add(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_axes" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_axes(po:org.apache.mxnet.javaapi.broadcast_axesParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_axes(broadcast_axesParam):Array[NDArray]"></a>
      <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="po">po: <a href="broadcast_axesParam.html" class="extype" name="org.apache.mxnet.javaapi.broadcast_axesParam">broadcast_axesParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_axes(po:org.apache.mxnet.javaapi.broadcast_axesParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_axis" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_axis(po:org.apache.mxnet.javaapi.broadcast_axisParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_axis(broadcast_axisParam):Array[NDArray]"></a>
      <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="po">po: <a href="broadcast_axisParam.html" class="extype" name="org.apache.mxnet.javaapi.broadcast_axisParam">broadcast_axisParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_axis(po:org.apache.mxnet.javaapi.broadcast_axisParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_div" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_div(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_div(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_div(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_equal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_equal(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_equal(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_equal(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_greater" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_greater(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_greater(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_greater(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_greater_equal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_greater_equal(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_greater_equal(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_greater_equal(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_hypot" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_hypot(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_hypot(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_hypot(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_lesser" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_lesser(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_lesser(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_lesser(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_lesser_equal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_lesser_equal(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_lesser_equal(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_lesser_equal(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_like" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_like(po:org.apache.mxnet.javaapi.broadcast_likeParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_like(broadcast_likeParam):Array[NDArray]"></a>
      <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="po">po: <a href="broadcast_likeParam.html" class="extype" name="org.apache.mxnet.javaapi.broadcast_likeParam">broadcast_likeParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_like(po:org.apache.mxnet.javaapi.broadcast_likeParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_logical_and" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_logical_and(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_logical_and(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_logical_and(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_logical_or" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_logical_or(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_logical_or(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_logical_or(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_logical_xor" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_logical_xor(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_logical_xor(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_logical_xor(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_maximum" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_maximum(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_maximum(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_maximum(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_minimum" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_minimum(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_minimum(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_minimum(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_minus" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_minus(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_minus(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_minus(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_mod" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_mod(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_mod(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_mod(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_mul" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_mul(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_mul(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_mul(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_not_equal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_not_equal(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_not_equal(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_not_equal(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_plus" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_plus(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_plus(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_plus(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_power" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_power(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_power(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_power(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_sub" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_sub(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_sub(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_sub(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>First input to the function</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Second input to the function</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#broadcast_to" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="broadcast_to(data:org.apache.mxnet.javaapi.NDArray,shape:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="broadcast_to(NDArray,Shape,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="shape">shape: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@broadcast_to(data:org.apache.mxnet.javaapi.NDArray,shape:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input</p></dd><dt class="param">shape</dt><dd class="cmt"><p>The shape of the desired array. We can set the dim to zero if it's same as the original. E.g <code>A = broadcast_to(B, shape=(10, 0, 0))</code> has the same meaning as <code>A = broadcast_axis(B, axis=0, size=10)</code>.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#cast" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="cast(data:org.apache.mxnet.javaapi.NDArray,dtype:String,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="cast(NDArray,String,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="dtype">dtype: <span class="extype" name="scala.Predef.String">String</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@cast(data:org.apache.mxnet.javaapi.NDArray,dtype:String,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input.</p></dd><dt class="param">dtype</dt><dd class="cmt"><p>Output data type.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#cast_storage" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="cast_storage(data:org.apache.mxnet.javaapi.NDArray,stype:String,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="cast_storage(NDArray,String,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="stype">stype: <span class="extype" name="scala.Predef.String">String</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@cast_storage(data:org.apache.mxnet.javaapi.NDArray,stype:String,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input.</p></dd><dt class="param">stype</dt><dd class="cmt"><p>Output storage type.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#cbrt" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="cbrt(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="cbrt(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@cbrt(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#ceil" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="ceil(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="ceil(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@ceil(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#choose_element_0index" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="choose_element_0index(po:org.apache.mxnet.javaapi.choose_element_0indexParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="choose_element_0index(choose_element_0indexParam):Array[NDArray]"></a>
      <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="po">po: <a href="choose_element_0indexParam.html" class="extype" name="org.apache.mxnet.javaapi.choose_element_0indexParam">choose_element_0indexParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@choose_element_0index(po:org.apache.mxnet.javaapi.choose_element_0indexParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#clip" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="clip(data:org.apache.mxnet.javaapi.NDArray,a_min:Float,a_max:Float,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="clip(NDArray,Float,Float,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="a_min">a_min: <span class="extype" name="java.lang.Float">Float</span></span>, <span name="a_max">a_max: <span class="extype" name="java.lang.Float">Float</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@clip(data:org.apache.mxnet.javaapi.NDArray,a_min:Float,a_max:Float,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Input array.</p></dd><dt class="param">a_min</dt><dd class="cmt"><p>Minimum value</p></dd><dt class="param">a_max</dt><dd class="cmt"><p>Maximum value</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#col2im" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="col2im(po:org.apache.mxnet.javaapi.col2imParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="col2im(col2imParam):Array[NDArray]"></a>
      <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="po">po: <a href="col2imParam.html" class="extype" name="org.apache.mxnet.javaapi.col2imParam">col2imParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@col2im(po:org.apache.mxnet.javaapi.col2imParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#concat" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="concat(data:Array[org.apache.mxnet.javaapi.NDArray],num_args:Integer,dim:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="concat(Array[NDArray],Integer,Integer,NDArray):Array[NDArray]"></a>
      <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="data">data: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>, <span name="num_args">num_args: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="dim">dim: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@concat(data:Array[org.apache.mxnet.javaapi.NDArray],num_args:Integer,dim:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>List of arrays to concatenate</p></dd><dt class="param">num_args</dt><dd class="cmt"><p>Number of inputs to be concated.</p></dd><dt class="param">dim</dt><dd class="cmt"><p>the dimension to be concated.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#cos" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="cos(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="cos(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@cos(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#cosh" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="cosh(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="cosh(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@cosh(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#crop" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="crop(data:org.apache.mxnet.javaapi.NDArray,begin:org.apache.mxnet.javaapi.Shape,end:org.apache.mxnet.javaapi.Shape,step:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="crop(NDArray,Shape,Shape,Shape,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="begin">begin: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="end">end: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="step">step: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@crop(data:org.apache.mxnet.javaapi.NDArray,begin:org.apache.mxnet.javaapi.Shape,end:org.apache.mxnet.javaapi.Shape,step:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Source input</p></dd><dt class="param">begin</dt><dd class="cmt"><p>starting indices for the slice operation, supports negative indices.</p></dd><dt class="param">end</dt><dd class="cmt"><p>ending indices for the slice operation, supports negative indices.</p></dd><dt class="param">step</dt><dd class="cmt"><p>step for the slice operation, supports negative values.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#ctc_loss" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="ctc_loss(po:org.apache.mxnet.javaapi.ctc_lossParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="ctc_loss(ctc_lossParam):Array[NDArray]"></a>
      <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="po">po: <a href="ctc_lossParam.html" class="extype" name="org.apache.mxnet.javaapi.ctc_lossParam">ctc_lossParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@ctc_loss(po:org.apache.mxnet.javaapi.ctc_lossParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#cumsum" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="cumsum(po:org.apache.mxnet.javaapi.cumsumParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="cumsum(cumsumParam):Array[NDArray]"></a>
      <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="po">po: <a href="cumsumParam.html" class="extype" name="org.apache.mxnet.javaapi.cumsumParam">cumsumParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@cumsum(po:org.apache.mxnet.javaapi.cumsumParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#degrees" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="degrees(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="degrees(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@degrees(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#depth_to_space" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="depth_to_space(data:org.apache.mxnet.javaapi.NDArray,block_size:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="depth_to_space(NDArray,Integer,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="block_size">block_size: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@depth_to_space(data:org.apache.mxnet.javaapi.NDArray,block_size:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Input ndarray</p></dd><dt class="param">block_size</dt><dd class="cmt"><p>Blocks of [block_size. block_size] are moved</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#diag" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="diag(po:org.apache.mxnet.javaapi.diagParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="diag(diagParam):Array[NDArray]"></a>
      <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="po">po: <a href="diagParam.html" class="extype" name="org.apache.mxnet.javaapi.diagParam">diagParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@diag(po:org.apache.mxnet.javaapi.diagParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#dot" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="dot(po:org.apache.mxnet.javaapi.dotParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="dot(dotParam):Array[NDArray]"></a>
      <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="po">po: <a href="dotParam.html" class="extype" name="org.apache.mxnet.javaapi.dotParam">dotParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@dot(po:org.apache.mxnet.javaapi.dotParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#elemwise_add" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="elemwise_add(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="elemwise_add(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@elemwise_add(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>first input</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>second input</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#elemwise_div" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="elemwise_div(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="elemwise_div(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@elemwise_div(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>first input</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>second input</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#elemwise_mul" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="elemwise_mul(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="elemwise_mul(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@elemwise_mul(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>first input</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>second input</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#elemwise_sub" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="elemwise_sub(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="elemwise_sub(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@elemwise_sub(lhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>first input</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>second input</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#erf" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="erf(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="erf(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@erf(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#erfinv" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="erfinv(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="erfinv(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@erfinv(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#exp" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="exp(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="exp(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@exp(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#expand_dims" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="expand_dims(data:org.apache.mxnet.javaapi.NDArray,axis:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="expand_dims(NDArray,Integer,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="axis">axis: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@expand_dims(data:org.apache.mxnet.javaapi.NDArray,axis:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Source input</p></dd><dt class="param">axis</dt><dd class="cmt"><p>Position where new axis is to be inserted. Suppose that the input <code>NDArray</code>'s dimension is <code>ndim</code>, the range of the inserted axis is <code>[-ndim, ndim]</code></p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#expm1" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="expm1(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="expm1(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@expm1(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#fill_element_0index" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="fill_element_0index(lhs:org.apache.mxnet.javaapi.NDArray,mhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="fill_element_0index(NDArray,NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="lhs">lhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="mhs">mhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="rhs">rhs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@fill_element_0index(lhs:org.apache.mxnet.javaapi.NDArray,mhs:org.apache.mxnet.javaapi.NDArray,rhs:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lhs</dt><dd class="cmt"><p>Left operand to the function.</p></dd><dt class="param">mhs</dt><dd class="cmt"><p>Middle operand to the function.</p></dd><dt class="param">rhs</dt><dd class="cmt"><p>Right operand to the function.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#fix" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="fix(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="fix(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@fix(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#flatten" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="flatten(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="flatten(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@flatten(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#flip" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="flip(data:org.apache.mxnet.javaapi.NDArray,axis:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="flip(NDArray,Shape,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="axis">axis: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@flip(data:org.apache.mxnet.javaapi.NDArray,axis:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Input data array</p></dd><dt class="param">axis</dt><dd class="cmt"><p>The axis which to reverse elements.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#floor" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="floor(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="floor(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@floor(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#ftml_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="ftml_update(po:org.apache.mxnet.javaapi.ftml_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="ftml_update(ftml_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="ftml_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.ftml_updateParam">ftml_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@ftml_update(po:org.apache.mxnet.javaapi.ftml_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#ftrl_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="ftrl_update(po:org.apache.mxnet.javaapi.ftrl_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="ftrl_update(ftrl_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="ftrl_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.ftrl_updateParam">ftrl_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@ftrl_update(po:org.apache.mxnet.javaapi.ftrl_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#gamma" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="gamma(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="gamma(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@gamma(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#gammaln" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="gammaln(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="gammaln(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@gammaln(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#gather_nd" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="gather_nd(data:org.apache.mxnet.javaapi.NDArray,indices:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="gather_nd(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="indices">indices: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@gather_nd(data:org.apache.mxnet.javaapi.NDArray,indices:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>data</p></dd><dt class="param">indices</dt><dd class="cmt"><p>indices</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#hard_sigmoid" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="hard_sigmoid(po:org.apache.mxnet.javaapi.hard_sigmoidParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="hard_sigmoid(hard_sigmoidParam):Array[NDArray]"></a>
      <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="po">po: <a href="hard_sigmoidParam.html" class="extype" name="org.apache.mxnet.javaapi.hard_sigmoidParam">hard_sigmoidParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@hard_sigmoid(po:org.apache.mxnet.javaapi.hard_sigmoidParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#identity" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="identity(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="identity(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@identity(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#im2col" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="im2col(po:org.apache.mxnet.javaapi.im2colParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="im2col(im2colParam):Array[NDArray]"></a>
      <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="po">po: <a href="im2colParam.html" class="extype" name="org.apache.mxnet.javaapi.im2colParam">im2colParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@im2col(po:org.apache.mxnet.javaapi.im2colParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#khatri_rao" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="khatri_rao(args:Array[org.apache.mxnet.javaapi.NDArray],out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="khatri_rao(Array[NDArray],NDArray):Array[NDArray]"></a>
      <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="args">args: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@khatri_rao(args:Array[org.apache.mxnet.javaapi.NDArray],out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">args</dt><dd class="cmt"><p>Positional input matrices</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#lamb_update_phase1" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="lamb_update_phase1(po:org.apache.mxnet.javaapi.lamb_update_phase1Param):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="lamb_update_phase1(lamb_update_phase1Param):Array[NDArray]"></a>
      <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="po">po: <a href="lamb_update_phase1Param.html" class="extype" name="org.apache.mxnet.javaapi.lamb_update_phase1Param">lamb_update_phase1Param</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@lamb_update_phase1(po:org.apache.mxnet.javaapi.lamb_update_phase1Param):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#lamb_update_phase2" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="lamb_update_phase2(po:org.apache.mxnet.javaapi.lamb_update_phase2Param):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="lamb_update_phase2(lamb_update_phase2Param):Array[NDArray]"></a>
      <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="po">po: <a href="lamb_update_phase2Param.html" class="extype" name="org.apache.mxnet.javaapi.lamb_update_phase2Param">lamb_update_phase2Param</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@lamb_update_phase2(po:org.apache.mxnet.javaapi.lamb_update_phase2Param):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#linalg_det" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_det(A:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="linalg_det(NDArray,NDArray):Array[NDArray]"></a>
      <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="A">A: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@linalg_det(A:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">A</dt><dd class="cmt"><p>Tensor of square matrix</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#linalg_extractdiag" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_extractdiag(A:org.apache.mxnet.javaapi.NDArray,offset:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="linalg_extractdiag(NDArray,Integer,NDArray):Array[NDArray]"></a>
      <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="A">A: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="offset">offset: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@linalg_extractdiag(A:org.apache.mxnet.javaapi.NDArray,offset:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">A</dt><dd class="cmt"><p>Tensor of square matrices</p></dd><dt class="param">offset</dt><dd class="cmt"><p>Offset of the diagonal versus the main diagonal. 0 corresponds to the main diagonal, a negative/positive value to diagonals below/above the main diagonal.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#linalg_extracttrian" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_extracttrian(po:org.apache.mxnet.javaapi.linalg_extracttrianParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="linalg_extracttrian(linalg_extracttrianParam):Array[NDArray]"></a>
      <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="po">po: <a href="linalg_extracttrianParam.html" class="extype" name="org.apache.mxnet.javaapi.linalg_extracttrianParam">linalg_extracttrianParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@linalg_extracttrian(po:org.apache.mxnet.javaapi.linalg_extracttrianParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#linalg_gelqf" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_gelqf(A:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="linalg_gelqf(NDArray,NDArray):Array[NDArray]"></a>
      <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="A">A: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@linalg_gelqf(A:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">A</dt><dd class="cmt"><p>Tensor of input matrices to be factorized</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#linalg_gemm" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_gemm(po:org.apache.mxnet.javaapi.linalg_gemmParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="linalg_gemm(linalg_gemmParam):Array[NDArray]"></a>
      <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="po">po: <a href="linalg_gemmParam.html" class="extype" name="org.apache.mxnet.javaapi.linalg_gemmParam">linalg_gemmParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@linalg_gemm(po:org.apache.mxnet.javaapi.linalg_gemmParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#linalg_gemm2" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_gemm2(po:org.apache.mxnet.javaapi.linalg_gemm2Param):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="linalg_gemm2(linalg_gemm2Param):Array[NDArray]"></a>
      <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="po">po: <a href="linalg_gemm2Param.html" class="extype" name="org.apache.mxnet.javaapi.linalg_gemm2Param">linalg_gemm2Param</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@linalg_gemm2(po:org.apache.mxnet.javaapi.linalg_gemm2Param):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#linalg_inverse" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_inverse(A:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="linalg_inverse(NDArray,NDArray):Array[NDArray]"></a>
      <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="A">A: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@linalg_inverse(A:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">A</dt><dd class="cmt"><p>Tensor of square matrix</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#linalg_makediag" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_makediag(A:org.apache.mxnet.javaapi.NDArray,offset:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="linalg_makediag(NDArray,Integer,NDArray):Array[NDArray]"></a>
      <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="A">A: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="offset">offset: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@linalg_makediag(A:org.apache.mxnet.javaapi.NDArray,offset:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">A</dt><dd class="cmt"><p>Tensor of diagonal entries</p></dd><dt class="param">offset</dt><dd class="cmt"><p>Offset of the diagonal versus the main diagonal. 0 corresponds to the main diagonal, a negative/positive value to diagonals below/above the main diagonal.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#linalg_maketrian" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_maketrian(po:org.apache.mxnet.javaapi.linalg_maketrianParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="linalg_maketrian(linalg_maketrianParam):Array[NDArray]"></a>
      <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="po">po: <a href="linalg_maketrianParam.html" class="extype" name="org.apache.mxnet.javaapi.linalg_maketrianParam">linalg_maketrianParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@linalg_maketrian(po:org.apache.mxnet.javaapi.linalg_maketrianParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#linalg_potrf" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_potrf(A:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="linalg_potrf(NDArray,NDArray):Array[NDArray]"></a>
      <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="A">A: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@linalg_potrf(A:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">A</dt><dd class="cmt"><p>Tensor of input matrices to be decomposed</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#linalg_potri" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_potri(A:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="linalg_potri(NDArray,NDArray):Array[NDArray]"></a>
      <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="A">A: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@linalg_potri(A:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">A</dt><dd class="cmt"><p>Tensor of lower triangular matrices</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#linalg_slogdet" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_slogdet(A:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="linalg_slogdet(NDArray,NDArray):Array[NDArray]"></a>
      <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="A">A: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@linalg_slogdet(A:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">A</dt><dd class="cmt"><p>Tensor of square matrix</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#linalg_sumlogdiag" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_sumlogdiag(A:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="linalg_sumlogdiag(NDArray,NDArray):Array[NDArray]"></a>
      <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="A">A: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@linalg_sumlogdiag(A:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">A</dt><dd class="cmt"><p>Tensor of square matrices</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#linalg_syrk" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_syrk(po:org.apache.mxnet.javaapi.linalg_syrkParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="linalg_syrk(linalg_syrkParam):Array[NDArray]"></a>
      <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="po">po: <a href="linalg_syrkParam.html" class="extype" name="org.apache.mxnet.javaapi.linalg_syrkParam">linalg_syrkParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@linalg_syrk(po:org.apache.mxnet.javaapi.linalg_syrkParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#linalg_trmm" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_trmm(po:org.apache.mxnet.javaapi.linalg_trmmParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="linalg_trmm(linalg_trmmParam):Array[NDArray]"></a>
      <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="po">po: <a href="linalg_trmmParam.html" class="extype" name="org.apache.mxnet.javaapi.linalg_trmmParam">linalg_trmmParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@linalg_trmm(po:org.apache.mxnet.javaapi.linalg_trmmParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#linalg_trsm" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="linalg_trsm(po:org.apache.mxnet.javaapi.linalg_trsmParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="linalg_trsm(linalg_trsmParam):Array[NDArray]"></a>
      <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="po">po: <a href="linalg_trsmParam.html" class="extype" name="org.apache.mxnet.javaapi.linalg_trsmParam">linalg_trsmParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@linalg_trsm(po:org.apache.mxnet.javaapi.linalg_trsmParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#log" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="log(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="log(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@log(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#log10" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="log10(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="log10(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@log10(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#log1p" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="log1p(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="log1p(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@log1p(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#log2" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="log2(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="log2(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@log2(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#log_softmax" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="log_softmax(po:org.apache.mxnet.javaapi.log_softmaxParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="log_softmax(log_softmaxParam):Array[NDArray]"></a>
      <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="po">po: <a href="log_softmaxParam.html" class="extype" name="org.apache.mxnet.javaapi.log_softmaxParam">log_softmaxParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@log_softmax(po:org.apache.mxnet.javaapi.log_softmaxParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#logical_not" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="logical_not(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="logical_not(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@logical_not(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#make_loss" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="make_loss(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="make_loss(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@make_loss(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#max" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="max(po:org.apache.mxnet.javaapi.maxParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="max(maxParam):Array[NDArray]"></a>
      <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="po">po: <a href="maxParam.html" class="extype" name="org.apache.mxnet.javaapi.maxParam">maxParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@max(po:org.apache.mxnet.javaapi.maxParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#max_axis" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="max_axis(po:org.apache.mxnet.javaapi.max_axisParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="max_axis(max_axisParam):Array[NDArray]"></a>
      <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="po">po: <a href="max_axisParam.html" class="extype" name="org.apache.mxnet.javaapi.max_axisParam">max_axisParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@max_axis(po:org.apache.mxnet.javaapi.max_axisParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#mean" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="mean(po:org.apache.mxnet.javaapi.meanParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="mean(meanParam):Array[NDArray]"></a>
      <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="po">po: <a href="meanParam.html" class="extype" name="org.apache.mxnet.javaapi.meanParam">meanParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@mean(po:org.apache.mxnet.javaapi.meanParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#min" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="min(po:org.apache.mxnet.javaapi.minParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="min(minParam):Array[NDArray]"></a>
      <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="po">po: <a href="minParam.html" class="extype" name="org.apache.mxnet.javaapi.minParam">minParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@min(po:org.apache.mxnet.javaapi.minParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#min_axis" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="min_axis(po:org.apache.mxnet.javaapi.min_axisParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="min_axis(min_axisParam):Array[NDArray]"></a>
      <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="po">po: <a href="min_axisParam.html" class="extype" name="org.apache.mxnet.javaapi.min_axisParam">min_axisParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@min_axis(po:org.apache.mxnet.javaapi.min_axisParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#moments" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="moments(po:org.apache.mxnet.javaapi.momentsParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="moments(momentsParam):Array[NDArray]"></a>
      <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="po">po: <a href="momentsParam.html" class="extype" name="org.apache.mxnet.javaapi.momentsParam">momentsParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@moments(po:org.apache.mxnet.javaapi.momentsParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#mp_lamb_update_phase1" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="mp_lamb_update_phase1(po:org.apache.mxnet.javaapi.mp_lamb_update_phase1Param):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="mp_lamb_update_phase1(mp_lamb_update_phase1Param):Array[NDArray]"></a>
      <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="po">po: <a href="mp_lamb_update_phase1Param.html" class="extype" name="org.apache.mxnet.javaapi.mp_lamb_update_phase1Param">mp_lamb_update_phase1Param</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@mp_lamb_update_phase1(po:org.apache.mxnet.javaapi.mp_lamb_update_phase1Param):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#mp_lamb_update_phase2" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="mp_lamb_update_phase2(po:org.apache.mxnet.javaapi.mp_lamb_update_phase2Param):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="mp_lamb_update_phase2(mp_lamb_update_phase2Param):Array[NDArray]"></a>
      <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="po">po: <a href="mp_lamb_update_phase2Param.html" class="extype" name="org.apache.mxnet.javaapi.mp_lamb_update_phase2Param">mp_lamb_update_phase2Param</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@mp_lamb_update_phase2(po:org.apache.mxnet.javaapi.mp_lamb_update_phase2Param):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#mp_nag_mom_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="mp_nag_mom_update(po:org.apache.mxnet.javaapi.mp_nag_mom_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="mp_nag_mom_update(mp_nag_mom_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="mp_nag_mom_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.mp_nag_mom_updateParam">mp_nag_mom_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@mp_nag_mom_update(po:org.apache.mxnet.javaapi.mp_nag_mom_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#mp_sgd_mom_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="mp_sgd_mom_update(po:org.apache.mxnet.javaapi.mp_sgd_mom_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="mp_sgd_mom_update(mp_sgd_mom_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="mp_sgd_mom_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.mp_sgd_mom_updateParam">mp_sgd_mom_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@mp_sgd_mom_update(po:org.apache.mxnet.javaapi.mp_sgd_mom_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#mp_sgd_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="mp_sgd_update(po:org.apache.mxnet.javaapi.mp_sgd_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="mp_sgd_update(mp_sgd_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="mp_sgd_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.mp_sgd_updateParam">mp_sgd_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@mp_sgd_update(po:org.apache.mxnet.javaapi.mp_sgd_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#multi_all_finite" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="multi_all_finite(po:org.apache.mxnet.javaapi.multi_all_finiteParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="multi_all_finite(multi_all_finiteParam):Array[NDArray]"></a>
      <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="po">po: <a href="multi_all_finiteParam.html" class="extype" name="org.apache.mxnet.javaapi.multi_all_finiteParam">multi_all_finiteParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@multi_all_finite(po:org.apache.mxnet.javaapi.multi_all_finiteParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#multi_lars" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="multi_lars(lrs:org.apache.mxnet.javaapi.NDArray,weights_sum_sq:org.apache.mxnet.javaapi.NDArray,grads_sum_sq:org.apache.mxnet.javaapi.NDArray,wds:org.apache.mxnet.javaapi.NDArray,eta:Float,eps:Float,rescale_grad:Float,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="multi_lars(NDArray,NDArray,NDArray,NDArray,Float,Float,Float,NDArray):Array[NDArray]"></a>
      <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="lrs">lrs: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="weights_sum_sq">weights_sum_sq: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="grads_sum_sq">grads_sum_sq: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="wds">wds: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="eta">eta: <span class="extype" name="java.lang.Float">Float</span></span>, <span name="eps">eps: <span class="extype" name="java.lang.Float">Float</span></span>, <span name="rescale_grad">rescale_grad: <span class="extype" name="java.lang.Float">Float</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@multi_lars(lrs:org.apache.mxnet.javaapi.NDArray,weights_sum_sq:org.apache.mxnet.javaapi.NDArray,grads_sum_sq:org.apache.mxnet.javaapi.NDArray,wds:org.apache.mxnet.javaapi.NDArray,eta:Float,eps:Float,rescale_grad:Float,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">lrs</dt><dd class="cmt"><p>Learning rates to scale by LARS coefficient</p></dd><dt class="param">weights_sum_sq</dt><dd class="cmt"><p>sum of square of weights arrays</p></dd><dt class="param">grads_sum_sq</dt><dd class="cmt"><p>sum of square of gradients arrays</p></dd><dt class="param">wds</dt><dd class="cmt"><p>weight decays</p></dd><dt class="param">eta</dt><dd class="cmt"><p>LARS eta</p></dd><dt class="param">eps</dt><dd class="cmt"><p>LARS eps</p></dd><dt class="param">rescale_grad</dt><dd class="cmt"><p>Gradient rescaling factor</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#multi_mp_sgd_mom_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="multi_mp_sgd_mom_update(po:org.apache.mxnet.javaapi.multi_mp_sgd_mom_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="multi_mp_sgd_mom_update(multi_mp_sgd_mom_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="multi_mp_sgd_mom_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.multi_mp_sgd_mom_updateParam">multi_mp_sgd_mom_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@multi_mp_sgd_mom_update(po:org.apache.mxnet.javaapi.multi_mp_sgd_mom_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#multi_mp_sgd_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="multi_mp_sgd_update(po:org.apache.mxnet.javaapi.multi_mp_sgd_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="multi_mp_sgd_update(multi_mp_sgd_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="multi_mp_sgd_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.multi_mp_sgd_updateParam">multi_mp_sgd_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@multi_mp_sgd_update(po:org.apache.mxnet.javaapi.multi_mp_sgd_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#multi_sgd_mom_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="multi_sgd_mom_update(po:org.apache.mxnet.javaapi.multi_sgd_mom_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="multi_sgd_mom_update(multi_sgd_mom_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="multi_sgd_mom_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.multi_sgd_mom_updateParam">multi_sgd_mom_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@multi_sgd_mom_update(po:org.apache.mxnet.javaapi.multi_sgd_mom_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#multi_sgd_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="multi_sgd_update(po:org.apache.mxnet.javaapi.multi_sgd_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="multi_sgd_update(multi_sgd_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="multi_sgd_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.multi_sgd_updateParam">multi_sgd_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@multi_sgd_update(po:org.apache.mxnet.javaapi.multi_sgd_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#multi_sum_sq" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="multi_sum_sq(data:Array[org.apache.mxnet.javaapi.NDArray],num_arrays:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="multi_sum_sq(Array[NDArray],Integer,NDArray):Array[NDArray]"></a>
      <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="data">data: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>, <span name="num_arrays">num_arrays: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@multi_sum_sq(data:Array[org.apache.mxnet.javaapi.NDArray],num_arrays:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Arrays</p></dd><dt class="param">num_arrays</dt><dd class="cmt"><p>number of input arrays.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#nag_mom_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="nag_mom_update(po:org.apache.mxnet.javaapi.nag_mom_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="nag_mom_update(nag_mom_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="nag_mom_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.nag_mom_updateParam">nag_mom_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@nag_mom_update(po:org.apache.mxnet.javaapi.nag_mom_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#nanprod" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="nanprod(po:org.apache.mxnet.javaapi.nanprodParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="nanprod(nanprodParam):Array[NDArray]"></a>
      <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="po">po: <a href="nanprodParam.html" class="extype" name="org.apache.mxnet.javaapi.nanprodParam">nanprodParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@nanprod(po:org.apache.mxnet.javaapi.nanprodParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#nansum" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="nansum(po:org.apache.mxnet.javaapi.nansumParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="nansum(nansumParam):Array[NDArray]"></a>
      <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="po">po: <a href="nansumParam.html" class="extype" name="org.apache.mxnet.javaapi.nansumParam">nansumParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@nansum(po:org.apache.mxnet.javaapi.nansumParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#negative" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="negative(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="negative(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@negative(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#norm" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="norm(po:org.apache.mxnet.javaapi.normParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="norm(normParam):Array[NDArray]"></a>
      <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="po">po: <a href="normParam.html" class="extype" name="org.apache.mxnet.javaapi.normParam">normParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@norm(po:org.apache.mxnet.javaapi.normParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#normal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="normal(po:org.apache.mxnet.javaapi.normalParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="normal(normalParam):Array[NDArray]"></a>
      <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="po">po: <a href="normalParam.html" class="extype" name="org.apache.mxnet.javaapi.normalParam">normalParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@normal(po:org.apache.mxnet.javaapi.normalParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#one_hot" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="one_hot(po:org.apache.mxnet.javaapi.one_hotParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="one_hot(one_hotParam):Array[NDArray]"></a>
      <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="po">po: <a href="one_hotParam.html" class="extype" name="org.apache.mxnet.javaapi.one_hotParam">one_hotParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@one_hot(po:org.apache.mxnet.javaapi.one_hotParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#ones_like" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="ones_like(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="ones_like(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@ones_like(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#pad" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="pad(data:org.apache.mxnet.javaapi.NDArray,mode:String,pad_width:org.apache.mxnet.javaapi.Shape,constant_value:Double,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="pad(NDArray,String,Shape,Double,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="mode">mode: <span class="extype" name="scala.Predef.String">String</span></span>, <span name="pad_width">pad_width: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="constant_value">constant_value: <span class="extype" name="java.lang.Double">Double</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@pad(data:org.apache.mxnet.javaapi.NDArray,mode:String,pad_width:org.apache.mxnet.javaapi.Shape,constant_value:Double,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>An n-dimensional input array.</p></dd><dt class="param">mode</dt><dd class="cmt"><p>Padding type to use. &quot;constant&quot; pads with <code>constant_value</code> &quot;edge&quot; pads using the edge values of the input array &quot;reflect&quot; pads by reflecting values with respect to the edges.</p></dd><dt class="param">pad_width</dt><dd class="cmt"><p>Widths of the padding regions applied to the edges of each axis. It is a tuple of integer padding widths for each axis of the format <code><code>(before_1, after_1, ... , before_N, after_N)</code></code>. It should be of length <code><code>2*N</code></code> where <code><code>N</code></code> is the number of dimensions of the array.This is equivalent to pad_width in numpy.pad, but flattened.</p></dd><dt class="param">constant_value</dt><dd class="cmt"><p>The value used for padding when <code>mode</code> is &quot;constant&quot;.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#pick" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="pick(po:org.apache.mxnet.javaapi.pickParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="pick(pickParam):Array[NDArray]"></a>
      <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="po">po: <a href="pickParam.html" class="extype" name="org.apache.mxnet.javaapi.pickParam">pickParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@pick(po:org.apache.mxnet.javaapi.pickParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#preloaded_multi_mp_sgd_mom_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="preloaded_multi_mp_sgd_mom_update(po:org.apache.mxnet.javaapi.preloaded_multi_mp_sgd_mom_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="preloaded_multi_mp_sgd_mom_update(preloaded_multi_mp_sgd_mom_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="preloaded_multi_mp_sgd_mom_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.preloaded_multi_mp_sgd_mom_updateParam">preloaded_multi_mp_sgd_mom_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@preloaded_multi_mp_sgd_mom_update(po:org.apache.mxnet.javaapi.preloaded_multi_mp_sgd_mom_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#preloaded_multi_mp_sgd_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="preloaded_multi_mp_sgd_update(po:org.apache.mxnet.javaapi.preloaded_multi_mp_sgd_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="preloaded_multi_mp_sgd_update(preloaded_multi_mp_sgd_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="preloaded_multi_mp_sgd_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.preloaded_multi_mp_sgd_updateParam">preloaded_multi_mp_sgd_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@preloaded_multi_mp_sgd_update(po:org.apache.mxnet.javaapi.preloaded_multi_mp_sgd_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#preloaded_multi_sgd_mom_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="preloaded_multi_sgd_mom_update(po:org.apache.mxnet.javaapi.preloaded_multi_sgd_mom_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="preloaded_multi_sgd_mom_update(preloaded_multi_sgd_mom_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="preloaded_multi_sgd_mom_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.preloaded_multi_sgd_mom_updateParam">preloaded_multi_sgd_mom_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@preloaded_multi_sgd_mom_update(po:org.apache.mxnet.javaapi.preloaded_multi_sgd_mom_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#preloaded_multi_sgd_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="preloaded_multi_sgd_update(po:org.apache.mxnet.javaapi.preloaded_multi_sgd_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="preloaded_multi_sgd_update(preloaded_multi_sgd_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="preloaded_multi_sgd_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.preloaded_multi_sgd_updateParam">preloaded_multi_sgd_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@preloaded_multi_sgd_update(po:org.apache.mxnet.javaapi.preloaded_multi_sgd_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#prod" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="prod(po:org.apache.mxnet.javaapi.prodParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="prod(prodParam):Array[NDArray]"></a>
      <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="po">po: <a href="prodParam.html" class="extype" name="org.apache.mxnet.javaapi.prodParam">prodParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@prod(po:org.apache.mxnet.javaapi.prodParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#radians" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="radians(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="radians(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@radians(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#random_exponential" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_exponential(po:org.apache.mxnet.javaapi.random_exponentialParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="random_exponential(random_exponentialParam):Array[NDArray]"></a>
      <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="po">po: <a href="random_exponentialParam.html" class="extype" name="org.apache.mxnet.javaapi.random_exponentialParam">random_exponentialParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@random_exponential(po:org.apache.mxnet.javaapi.random_exponentialParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#random_gamma" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_gamma(po:org.apache.mxnet.javaapi.random_gammaParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="random_gamma(random_gammaParam):Array[NDArray]"></a>
      <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="po">po: <a href="random_gammaParam.html" class="extype" name="org.apache.mxnet.javaapi.random_gammaParam">random_gammaParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@random_gamma(po:org.apache.mxnet.javaapi.random_gammaParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#random_generalized_negative_binomial" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_generalized_negative_binomial(po:org.apache.mxnet.javaapi.random_generalized_negative_binomialParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="random_generalized_negative_binomial(random_generalized_negative_binomialParam):Array[NDArray]"></a>
      <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="po">po: <a href="random_generalized_negative_binomialParam.html" class="extype" name="org.apache.mxnet.javaapi.random_generalized_negative_binomialParam">random_generalized_negative_binomialParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@random_generalized_negative_binomial(po:org.apache.mxnet.javaapi.random_generalized_negative_binomialParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#random_negative_binomial" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_negative_binomial(po:org.apache.mxnet.javaapi.random_negative_binomialParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="random_negative_binomial(random_negative_binomialParam):Array[NDArray]"></a>
      <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="po">po: <a href="random_negative_binomialParam.html" class="extype" name="org.apache.mxnet.javaapi.random_negative_binomialParam">random_negative_binomialParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@random_negative_binomial(po:org.apache.mxnet.javaapi.random_negative_binomialParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#random_normal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_normal(po:org.apache.mxnet.javaapi.random_normalParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="random_normal(random_normalParam):Array[NDArray]"></a>
      <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="po">po: <a href="random_normalParam.html" class="extype" name="org.apache.mxnet.javaapi.random_normalParam">random_normalParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@random_normal(po:org.apache.mxnet.javaapi.random_normalParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#random_pdf_dirichlet" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_pdf_dirichlet(sample:org.apache.mxnet.javaapi.NDArray,alpha:org.apache.mxnet.javaapi.NDArray,is_log:Boolean,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="random_pdf_dirichlet(NDArray,NDArray,Boolean,NDArray):Array[NDArray]"></a>
      <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="sample">sample: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="alpha">alpha: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="is_log">is_log: <span class="extype" name="java.lang.Boolean">Boolean</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@random_pdf_dirichlet(sample:org.apache.mxnet.javaapi.NDArray,alpha:org.apache.mxnet.javaapi.NDArray,is_log:Boolean,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">sample</dt><dd class="cmt"><p>Samples from the distributions.</p></dd><dt class="param">alpha</dt><dd class="cmt"><p>Concentration parameters of the distributions.</p></dd><dt class="param">is_log</dt><dd class="cmt"><p>If set, compute the density of the log-probability instead of the probability.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#random_pdf_exponential" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_pdf_exponential(sample:org.apache.mxnet.javaapi.NDArray,lam:org.apache.mxnet.javaapi.NDArray,is_log:Boolean,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="random_pdf_exponential(NDArray,NDArray,Boolean,NDArray):Array[NDArray]"></a>
      <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="sample">sample: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="lam">lam: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="is_log">is_log: <span class="extype" name="java.lang.Boolean">Boolean</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@random_pdf_exponential(sample:org.apache.mxnet.javaapi.NDArray,lam:org.apache.mxnet.javaapi.NDArray,is_log:Boolean,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">sample</dt><dd class="cmt"><p>Samples from the distributions.</p></dd><dt class="param">lam</dt><dd class="cmt"><p>Lambda (rate) parameters of the distributions.</p></dd><dt class="param">is_log</dt><dd class="cmt"><p>If set, compute the density of the log-probability instead of the probability.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#random_pdf_gamma" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_pdf_gamma(sample:org.apache.mxnet.javaapi.NDArray,alpha:org.apache.mxnet.javaapi.NDArray,is_log:Boolean,beta:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="random_pdf_gamma(NDArray,NDArray,Boolean,NDArray,NDArray):Array[NDArray]"></a>
      <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="sample">sample: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="alpha">alpha: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="is_log">is_log: <span class="extype" name="java.lang.Boolean">Boolean</span></span>, <span name="beta">beta: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@random_pdf_gamma(sample:org.apache.mxnet.javaapi.NDArray,alpha:org.apache.mxnet.javaapi.NDArray,is_log:Boolean,beta:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">sample</dt><dd class="cmt"><p>Samples from the distributions.</p></dd><dt class="param">alpha</dt><dd class="cmt"><p>Alpha (shape) parameters of the distributions.</p></dd><dt class="param">is_log</dt><dd class="cmt"><p>If set, compute the density of the log-probability instead of the probability.</p></dd><dt class="param">beta</dt><dd class="cmt"><p>Beta (scale) parameters of the distributions.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#random_pdf_generalized_negative_binomial" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_pdf_generalized_negative_binomial(sample:org.apache.mxnet.javaapi.NDArray,mu:org.apache.mxnet.javaapi.NDArray,is_log:Boolean,alpha:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="random_pdf_generalized_negative_binomial(NDArray,NDArray,Boolean,NDArray,NDArray):Array[NDArray]"></a>
      <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="sample">sample: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="mu">mu: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="is_log">is_log: <span class="extype" name="java.lang.Boolean">Boolean</span></span>, <span name="alpha">alpha: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@random_pdf_generalized_negative_binomial(sample:org.apache.mxnet.javaapi.NDArray,mu:org.apache.mxnet.javaapi.NDArray,is_log:Boolean,alpha:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">sample</dt><dd class="cmt"><p>Samples from the distributions.</p></dd><dt class="param">mu</dt><dd class="cmt"><p>Means of the distributions.</p></dd><dt class="param">is_log</dt><dd class="cmt"><p>If set, compute the density of the log-probability instead of the probability.</p></dd><dt class="param">alpha</dt><dd class="cmt"><p>Alpha (dispersion) parameters of the distributions.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#random_pdf_negative_binomial" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_pdf_negative_binomial(sample:org.apache.mxnet.javaapi.NDArray,k:org.apache.mxnet.javaapi.NDArray,is_log:Boolean,p:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="random_pdf_negative_binomial(NDArray,NDArray,Boolean,NDArray,NDArray):Array[NDArray]"></a>
      <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="sample">sample: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="k">k: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="is_log">is_log: <span class="extype" name="java.lang.Boolean">Boolean</span></span>, <span name="p">p: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@random_pdf_negative_binomial(sample:org.apache.mxnet.javaapi.NDArray,k:org.apache.mxnet.javaapi.NDArray,is_log:Boolean,p:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">sample</dt><dd class="cmt"><p>Samples from the distributions.</p></dd><dt class="param">k</dt><dd class="cmt"><p>Limits of unsuccessful experiments.</p></dd><dt class="param">is_log</dt><dd class="cmt"><p>If set, compute the density of the log-probability instead of the probability.</p></dd><dt class="param">p</dt><dd class="cmt"><p>Failure probabilities in each experiment.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#random_pdf_normal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_pdf_normal(sample:org.apache.mxnet.javaapi.NDArray,mu:org.apache.mxnet.javaapi.NDArray,is_log:Boolean,sigma:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="random_pdf_normal(NDArray,NDArray,Boolean,NDArray,NDArray):Array[NDArray]"></a>
      <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="sample">sample: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="mu">mu: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="is_log">is_log: <span class="extype" name="java.lang.Boolean">Boolean</span></span>, <span name="sigma">sigma: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@random_pdf_normal(sample:org.apache.mxnet.javaapi.NDArray,mu:org.apache.mxnet.javaapi.NDArray,is_log:Boolean,sigma:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">sample</dt><dd class="cmt"><p>Samples from the distributions.</p></dd><dt class="param">mu</dt><dd class="cmt"><p>Means of the distributions.</p></dd><dt class="param">is_log</dt><dd class="cmt"><p>If set, compute the density of the log-probability instead of the probability.</p></dd><dt class="param">sigma</dt><dd class="cmt"><p>Standard deviations of the distributions.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#random_pdf_poisson" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_pdf_poisson(sample:org.apache.mxnet.javaapi.NDArray,lam:org.apache.mxnet.javaapi.NDArray,is_log:Boolean,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="random_pdf_poisson(NDArray,NDArray,Boolean,NDArray):Array[NDArray]"></a>
      <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="sample">sample: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="lam">lam: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="is_log">is_log: <span class="extype" name="java.lang.Boolean">Boolean</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@random_pdf_poisson(sample:org.apache.mxnet.javaapi.NDArray,lam:org.apache.mxnet.javaapi.NDArray,is_log:Boolean,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">sample</dt><dd class="cmt"><p>Samples from the distributions.</p></dd><dt class="param">lam</dt><dd class="cmt"><p>Lambda (rate) parameters of the distributions.</p></dd><dt class="param">is_log</dt><dd class="cmt"><p>If set, compute the density of the log-probability instead of the probability.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#random_pdf_uniform" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_pdf_uniform(sample:org.apache.mxnet.javaapi.NDArray,low:org.apache.mxnet.javaapi.NDArray,is_log:Boolean,high:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="random_pdf_uniform(NDArray,NDArray,Boolean,NDArray,NDArray):Array[NDArray]"></a>
      <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="sample">sample: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="low">low: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="is_log">is_log: <span class="extype" name="java.lang.Boolean">Boolean</span></span>, <span name="high">high: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@random_pdf_uniform(sample:org.apache.mxnet.javaapi.NDArray,low:org.apache.mxnet.javaapi.NDArray,is_log:Boolean,high:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">sample</dt><dd class="cmt"><p>Samples from the distributions.</p></dd><dt class="param">low</dt><dd class="cmt"><p>Lower bounds of the distributions.</p></dd><dt class="param">is_log</dt><dd class="cmt"><p>If set, compute the density of the log-probability instead of the probability.</p></dd><dt class="param">high</dt><dd class="cmt"><p>Upper bounds of the distributions.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#random_poisson" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_poisson(po:org.apache.mxnet.javaapi.random_poissonParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="random_poisson(random_poissonParam):Array[NDArray]"></a>
      <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="po">po: <a href="random_poissonParam.html" class="extype" name="org.apache.mxnet.javaapi.random_poissonParam">random_poissonParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@random_poisson(po:org.apache.mxnet.javaapi.random_poissonParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#random_randint" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_randint(po:org.apache.mxnet.javaapi.random_randintParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="random_randint(random_randintParam):Array[NDArray]"></a>
      <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="po">po: <a href="random_randintParam.html" class="extype" name="org.apache.mxnet.javaapi.random_randintParam">random_randintParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@random_randint(po:org.apache.mxnet.javaapi.random_randintParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#random_uniform" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="random_uniform(po:org.apache.mxnet.javaapi.random_uniformParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="random_uniform(random_uniformParam):Array[NDArray]"></a>
      <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="po">po: <a href="random_uniformParam.html" class="extype" name="org.apache.mxnet.javaapi.random_uniformParam">random_uniformParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@random_uniform(po:org.apache.mxnet.javaapi.random_uniformParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#ravel_multi_index" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="ravel_multi_index(data:org.apache.mxnet.javaapi.NDArray,shape:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="ravel_multi_index(NDArray,Shape,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="shape">shape: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@ravel_multi_index(data:org.apache.mxnet.javaapi.NDArray,shape:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Batch of multi-indices</p></dd><dt class="param">shape</dt><dd class="cmt"><p>Shape of the array into which the multi-indices apply.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#rcbrt" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="rcbrt(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="rcbrt(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@rcbrt(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#reciprocal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="reciprocal(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="reciprocal(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@reciprocal(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#relu" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="relu(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="relu(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@relu(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#repeat" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="repeat(data:org.apache.mxnet.javaapi.NDArray,repeats:Integer,axis:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="repeat(NDArray,Integer,Integer,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="repeats">repeats: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="axis">axis: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@repeat(data:org.apache.mxnet.javaapi.NDArray,repeats:Integer,axis:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Input data array</p></dd><dt class="param">repeats</dt><dd class="cmt"><p>The number of repetitions for each element.</p></dd><dt class="param">axis</dt><dd class="cmt"><p>The axis along which to repeat values. The negative numbers are interpreted counting from the backward. By default, use the flattened input array, and return a flat output array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#reset_arrays" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="reset_arrays(data:Array[org.apache.mxnet.javaapi.NDArray],num_arrays:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="reset_arrays(Array[NDArray],Integer,NDArray):Array[NDArray]"></a>
      <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="data">data: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>, <span name="num_arrays">num_arrays: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@reset_arrays(data:Array[org.apache.mxnet.javaapi.NDArray],num_arrays:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Arrays</p></dd><dt class="param">num_arrays</dt><dd class="cmt"><p>number of input arrays.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#reshape" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="reshape(po:org.apache.mxnet.javaapi.reshapeParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="reshape(reshapeParam):Array[NDArray]"></a>
      <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="po">po: <a href="reshapeParam.html" class="extype" name="org.apache.mxnet.javaapi.reshapeParam">reshapeParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@reshape(po:org.apache.mxnet.javaapi.reshapeParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#reshape_like" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="reshape_like(po:org.apache.mxnet.javaapi.reshape_likeParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="reshape_like(reshape_likeParam):Array[NDArray]"></a>
      <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="po">po: <a href="reshape_likeParam.html" class="extype" name="org.apache.mxnet.javaapi.reshape_likeParam">reshape_likeParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@reshape_like(po:org.apache.mxnet.javaapi.reshape_likeParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#reverse" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="reverse(data:org.apache.mxnet.javaapi.NDArray,axis:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="reverse(NDArray,Shape,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="axis">axis: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@reverse(data:org.apache.mxnet.javaapi.NDArray,axis:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Input data array</p></dd><dt class="param">axis</dt><dd class="cmt"><p>The axis which to reverse elements.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#rint" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="rint(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="rint(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@rint(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#rmsprop_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="rmsprop_update(po:org.apache.mxnet.javaapi.rmsprop_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="rmsprop_update(rmsprop_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="rmsprop_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.rmsprop_updateParam">rmsprop_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@rmsprop_update(po:org.apache.mxnet.javaapi.rmsprop_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#rmspropalex_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="rmspropalex_update(po:org.apache.mxnet.javaapi.rmspropalex_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="rmspropalex_update(rmspropalex_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="rmspropalex_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.rmspropalex_updateParam">rmspropalex_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@rmspropalex_update(po:org.apache.mxnet.javaapi.rmspropalex_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#round" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="round(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="round(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@round(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#rsqrt" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="rsqrt(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="rsqrt(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@rsqrt(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sample_exponential" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sample_exponential(po:org.apache.mxnet.javaapi.sample_exponentialParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sample_exponential(sample_exponentialParam):Array[NDArray]"></a>
      <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="po">po: <a href="sample_exponentialParam.html" class="extype" name="org.apache.mxnet.javaapi.sample_exponentialParam">sample_exponentialParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sample_exponential(po:org.apache.mxnet.javaapi.sample_exponentialParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sample_gamma" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sample_gamma(po:org.apache.mxnet.javaapi.sample_gammaParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sample_gamma(sample_gammaParam):Array[NDArray]"></a>
      <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="po">po: <a href="sample_gammaParam.html" class="extype" name="org.apache.mxnet.javaapi.sample_gammaParam">sample_gammaParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sample_gamma(po:org.apache.mxnet.javaapi.sample_gammaParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sample_generalized_negative_binomial" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sample_generalized_negative_binomial(po:org.apache.mxnet.javaapi.sample_generalized_negative_binomialParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sample_generalized_negative_binomial(sample_generalized_negative_binomialParam):Array[NDArray]"></a>
      <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="po">po: <a href="sample_generalized_negative_binomialParam.html" class="extype" name="org.apache.mxnet.javaapi.sample_generalized_negative_binomialParam">sample_generalized_negative_binomialParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sample_generalized_negative_binomial(po:org.apache.mxnet.javaapi.sample_generalized_negative_binomialParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sample_multinomial" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sample_multinomial(po:org.apache.mxnet.javaapi.sample_multinomialParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sample_multinomial(sample_multinomialParam):Array[NDArray]"></a>
      <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="po">po: <a href="sample_multinomialParam.html" class="extype" name="org.apache.mxnet.javaapi.sample_multinomialParam">sample_multinomialParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sample_multinomial(po:org.apache.mxnet.javaapi.sample_multinomialParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sample_negative_binomial" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sample_negative_binomial(po:org.apache.mxnet.javaapi.sample_negative_binomialParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sample_negative_binomial(sample_negative_binomialParam):Array[NDArray]"></a>
      <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="po">po: <a href="sample_negative_binomialParam.html" class="extype" name="org.apache.mxnet.javaapi.sample_negative_binomialParam">sample_negative_binomialParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sample_negative_binomial(po:org.apache.mxnet.javaapi.sample_negative_binomialParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sample_normal" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sample_normal(po:org.apache.mxnet.javaapi.sample_normalParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sample_normal(sample_normalParam):Array[NDArray]"></a>
      <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="po">po: <a href="sample_normalParam.html" class="extype" name="org.apache.mxnet.javaapi.sample_normalParam">sample_normalParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sample_normal(po:org.apache.mxnet.javaapi.sample_normalParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sample_poisson" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sample_poisson(po:org.apache.mxnet.javaapi.sample_poissonParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sample_poisson(sample_poissonParam):Array[NDArray]"></a>
      <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="po">po: <a href="sample_poissonParam.html" class="extype" name="org.apache.mxnet.javaapi.sample_poissonParam">sample_poissonParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sample_poisson(po:org.apache.mxnet.javaapi.sample_poissonParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sample_uniform" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sample_uniform(po:org.apache.mxnet.javaapi.sample_uniformParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sample_uniform(sample_uniformParam):Array[NDArray]"></a>
      <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="po">po: <a href="sample_uniformParam.html" class="extype" name="org.apache.mxnet.javaapi.sample_uniformParam">sample_uniformParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sample_uniform(po:org.apache.mxnet.javaapi.sample_uniformParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#scatter_nd" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="scatter_nd(data:org.apache.mxnet.javaapi.NDArray,indices:org.apache.mxnet.javaapi.NDArray,shape:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="scatter_nd(NDArray,NDArray,Shape,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="indices">indices: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="shape">shape: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@scatter_nd(data:org.apache.mxnet.javaapi.NDArray,indices:org.apache.mxnet.javaapi.NDArray,shape:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>data</p></dd><dt class="param">indices</dt><dd class="cmt"><p>indices</p></dd><dt class="param">shape</dt><dd class="cmt"><p>Shape of output.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sgd_mom_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sgd_mom_update(po:org.apache.mxnet.javaapi.sgd_mom_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sgd_mom_update(sgd_mom_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="sgd_mom_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.sgd_mom_updateParam">sgd_mom_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sgd_mom_update(po:org.apache.mxnet.javaapi.sgd_mom_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sgd_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sgd_update(po:org.apache.mxnet.javaapi.sgd_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sgd_update(sgd_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="sgd_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.sgd_updateParam">sgd_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sgd_update(po:org.apache.mxnet.javaapi.sgd_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#shape_array" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="shape_array(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="shape_array(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@shape_array(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Input Array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#shuffle" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="shuffle(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="shuffle(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@shuffle(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Data to be shuffled.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sigmoid" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sigmoid(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sigmoid(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sigmoid(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sign" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sign(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sign(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sign(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#signsgd_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="signsgd_update(po:org.apache.mxnet.javaapi.signsgd_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="signsgd_update(signsgd_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="signsgd_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.signsgd_updateParam">signsgd_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@signsgd_update(po:org.apache.mxnet.javaapi.signsgd_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#signum_update" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="signum_update(po:org.apache.mxnet.javaapi.signum_updateParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="signum_update(signum_updateParam):Array[NDArray]"></a>
      <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="po">po: <a href="signum_updateParam.html" class="extype" name="org.apache.mxnet.javaapi.signum_updateParam">signum_updateParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@signum_update(po:org.apache.mxnet.javaapi.signum_updateParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sin" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sin(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sin(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sin(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sinh" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sinh(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sinh(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sinh(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#size_array" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="size_array(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="size_array(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@size_array(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Input Array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#slice" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="slice(data:org.apache.mxnet.javaapi.NDArray,begin:org.apache.mxnet.javaapi.Shape,end:org.apache.mxnet.javaapi.Shape,step:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="slice(NDArray,Shape,Shape,Shape,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="begin">begin: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="end">end: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="step">step: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@slice(data:org.apache.mxnet.javaapi.NDArray,begin:org.apache.mxnet.javaapi.Shape,end:org.apache.mxnet.javaapi.Shape,step:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Source input</p></dd><dt class="param">begin</dt><dd class="cmt"><p>starting indices for the slice operation, supports negative indices.</p></dd><dt class="param">end</dt><dd class="cmt"><p>ending indices for the slice operation, supports negative indices.</p></dd><dt class="param">step</dt><dd class="cmt"><p>step for the slice operation, supports negative values.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#slice_axis" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="slice_axis(data:org.apache.mxnet.javaapi.NDArray,axis:Integer,begin:Integer,end:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="slice_axis(NDArray,Integer,Integer,Integer,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="axis">axis: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="begin">begin: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="end">end: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@slice_axis(data:org.apache.mxnet.javaapi.NDArray,axis:Integer,begin:Integer,end:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Source input</p></dd><dt class="param">axis</dt><dd class="cmt"><p>Axis along which to be sliced, supports negative indexes.</p></dd><dt class="param">begin</dt><dd class="cmt"><p>The beginning index along the axis to be sliced,  supports negative indexes.</p></dd><dt class="param">end</dt><dd class="cmt"><p>The ending index along the axis to be sliced,  supports negative indexes.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#slice_like" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="slice_like(data:org.apache.mxnet.javaapi.NDArray,shape_like:org.apache.mxnet.javaapi.NDArray,axes:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="slice_like(NDArray,NDArray,Shape,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="shape_like">shape_like: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="axes">axes: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@slice_like(data:org.apache.mxnet.javaapi.NDArray,shape_like:org.apache.mxnet.javaapi.NDArray,axes:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Source input</p></dd><dt class="param">shape_like</dt><dd class="cmt"><p>Shape like input</p></dd><dt class="param">axes</dt><dd class="cmt"><p>List of axes on which input data will be sliced according to the corresponding size of the second input. By default will slice on all axes. Negative axes are supported.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#smooth_l1" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="smooth_l1(data:org.apache.mxnet.javaapi.NDArray,scalar:Float,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="smooth_l1(NDArray,Float,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="scalar">scalar: <span class="extype" name="java.lang.Float">Float</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@smooth_l1(data:org.apache.mxnet.javaapi.NDArray,scalar:Float,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>source input</p></dd><dt class="param">scalar</dt><dd class="cmt"><p>scalar input</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#softmax" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="softmax(po:org.apache.mxnet.javaapi.softmaxParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="softmax(softmaxParam):Array[NDArray]"></a>
      <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="po">po: <a href="softmaxParam.html" class="extype" name="org.apache.mxnet.javaapi.softmaxParam">softmaxParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@softmax(po:org.apache.mxnet.javaapi.softmaxParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#softmax_cross_entropy" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="softmax_cross_entropy(data:org.apache.mxnet.javaapi.NDArray,label:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="softmax_cross_entropy(NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="label">label: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@softmax_cross_entropy(data:org.apache.mxnet.javaapi.NDArray,label:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Input data</p></dd><dt class="param">label</dt><dd class="cmt"><p>Input label</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#softmin" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="softmin(po:org.apache.mxnet.javaapi.softminParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="softmin(softminParam):Array[NDArray]"></a>
      <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="po">po: <a href="softminParam.html" class="extype" name="org.apache.mxnet.javaapi.softminParam">softminParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@softmin(po:org.apache.mxnet.javaapi.softminParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#softsign" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="softsign(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="softsign(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@softsign(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sort" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sort(po:org.apache.mxnet.javaapi.sortParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sort(sortParam):Array[NDArray]"></a>
      <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="po">po: <a href="sortParam.html" class="extype" name="org.apache.mxnet.javaapi.sortParam">sortParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sort(po:org.apache.mxnet.javaapi.sortParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#space_to_depth" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="space_to_depth(data:org.apache.mxnet.javaapi.NDArray,block_size:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="space_to_depth(NDArray,Integer,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="block_size">block_size: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@space_to_depth(data:org.apache.mxnet.javaapi.NDArray,block_size:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Input ndarray</p></dd><dt class="param">block_size</dt><dd class="cmt"><p>Blocks of [block_size. block_size] are moved</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#split" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="split(po:org.apache.mxnet.javaapi.splitParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="split(splitParam):Array[NDArray]"></a>
      <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="po">po: <a href="splitParam.html" class="extype" name="org.apache.mxnet.javaapi.splitParam">splitParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@split(po:org.apache.mxnet.javaapi.splitParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sqrt" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sqrt(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sqrt(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sqrt(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#square" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="square(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="square(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@square(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#squeeze" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="squeeze(data:org.apache.mxnet.javaapi.NDArray,axis:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="squeeze(NDArray,Shape,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="axis">axis: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@squeeze(data:org.apache.mxnet.javaapi.NDArray,axis:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>data to squeeze</p></dd><dt class="param">axis</dt><dd class="cmt"><p>Selects a subset of the single-dimensional entries in the shape. If an axis is selected with shape entry greater than one, an error is raised.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#stack" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="stack(data:Array[org.apache.mxnet.javaapi.NDArray],axis:Integer,num_args:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="stack(Array[NDArray],Integer,Integer,NDArray):Array[NDArray]"></a>
      <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="data">data: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>, <span name="axis">axis: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="num_args">num_args: <span class="extype" name="java.lang.Integer">Integer</span></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@stack(data:Array[org.apache.mxnet.javaapi.NDArray],axis:Integer,num_args:Integer,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>List of arrays to stack</p></dd><dt class="param">axis</dt><dd class="cmt"><p>The axis in the result array along which the input arrays are stacked.</p></dd><dt class="param">num_args</dt><dd class="cmt"><p>Number of inputs to be stacked.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#stop_gradient" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="stop_gradient(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="stop_gradient(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@stop_gradient(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sum" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sum(po:org.apache.mxnet.javaapi.sumParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sum(sumParam):Array[NDArray]"></a>
      <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="po">po: <a href="sumParam.html" class="extype" name="org.apache.mxnet.javaapi.sumParam">sumParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sum(po:org.apache.mxnet.javaapi.sumParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#sum_axis" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="sum_axis(po:org.apache.mxnet.javaapi.sum_axisParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="sum_axis(sum_axisParam):Array[NDArray]"></a>
      <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="po">po: <a href="sum_axisParam.html" class="extype" name="org.apache.mxnet.javaapi.sum_axisParam">sum_axisParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@sum_axis(po:org.apache.mxnet.javaapi.sum_axisParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#swapaxes" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="swapaxes(po:org.apache.mxnet.javaapi.swapaxesParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="swapaxes(swapaxesParam):Array[NDArray]"></a>
      <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="po">po: <a href="swapaxesParam.html" class="extype" name="org.apache.mxnet.javaapi.swapaxesParam">swapaxesParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@swapaxes(po:org.apache.mxnet.javaapi.swapaxesParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#take" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="take(po:org.apache.mxnet.javaapi.takeParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="take(takeParam):Array[NDArray]"></a>
      <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="po">po: <a href="takeParam.html" class="extype" name="org.apache.mxnet.javaapi.takeParam">takeParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@take(po:org.apache.mxnet.javaapi.takeParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#tan" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="tan(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="tan(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@tan(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#tanh" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="tanh(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="tanh(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@tanh(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#tile" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="tile(data:org.apache.mxnet.javaapi.NDArray,reps:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="tile(NDArray,Shape,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="reps">reps: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@tile(data:org.apache.mxnet.javaapi.NDArray,reps:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Input data array</p></dd><dt class="param">reps</dt><dd class="cmt"><p>The number of times for repeating the tensor a. Each dim size of reps must be a positive integer. If reps has length d, the result will have dimension of max(d, a.ndim); If a.ndim &lt; d, a is promoted to be d-dimensional by prepending new axes. If a.ndim &gt; d, reps is promoted to a.ndim by pre-pending 1's to it.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#topk" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="topk(po:org.apache.mxnet.javaapi.topkParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="topk(topkParam):Array[NDArray]"></a>
      <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="po">po: <a href="topkParam.html" class="extype" name="org.apache.mxnet.javaapi.topkParam">topkParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@topk(po:org.apache.mxnet.javaapi.topkParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#transpose" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="transpose(data:org.apache.mxnet.javaapi.NDArray,axes:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="transpose(NDArray,Shape,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="axes">axes: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@transpose(data:org.apache.mxnet.javaapi.NDArray,axes:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Source input</p></dd><dt class="param">axes</dt><dd class="cmt"><p>Target axis order. By default the axes will be inverted.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#trunc" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="trunc(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="trunc(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@trunc(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input array.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#uniform" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="uniform(po:org.apache.mxnet.javaapi.uniformParam):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="uniform(uniformParam):Array[NDArray]"></a>
      <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="po">po: <a href="uniformParam.html" class="extype" name="org.apache.mxnet.javaapi.uniformParam">uniformParam</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@uniform(po:org.apache.mxnet.javaapi.uniformParam):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#unravel_index" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="unravel_index(data:org.apache.mxnet.javaapi.NDArray,shape:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="unravel_index(NDArray,Shape,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="shape">shape: <a href="Shape.html" class="extype" name="org.apache.mxnet.javaapi.Shape">Shape</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@unravel_index(data:org.apache.mxnet.javaapi.NDArray,shape:org.apache.mxnet.javaapi.Shape,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>Array of flat indices</p></dd><dt class="param">shape</dt><dd class="cmt"><p>Shape of the array into which the multi-indices apply.</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#where" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="where(condition:org.apache.mxnet.javaapi.NDArray,x:org.apache.mxnet.javaapi.NDArray,y:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="where(NDArray,NDArray,NDArray,NDArray):Array[NDArray]"></a>
      <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="condition">condition: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="x">x: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="y">y: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@where(condition:org.apache.mxnet.javaapi.NDArray,x:org.apache.mxnet.javaapi.NDArray,y:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">condition</dt><dd class="cmt"><p>condition array</p></dd><dt class="param">x</dt><dd class="cmt"></dd><dt class="param">y</dt><dd class="cmt"></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </dd></dl></div>
    </li><li name="org.apache.mxnet.javaapi.NDArrayBase#zeros_like" visbl="pub" data-isabs="true" fullComment="yes" group="Ungrouped">
      <a id="zeros_like(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]"></a>
      <a id="zeros_like(NDArray,NDArray):Array[NDArray]"></a>
      <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="data">data: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>, <span name="out">out: <a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a></span>)</span><span class="result">: <span class="extype" name="scala.Array">Array</span>[<a href="NDArray.html" class="extype" name="org.apache.mxnet.javaapi.NDArray">NDArray</a>]</span>
      </span>
      </h4><span class="permalink">
      <a href="../../../../index.html#org.apache.mxnet.javaapi.NDArrayBase@zeros_like(data:org.apache.mxnet.javaapi.NDArray,out:org.apache.mxnet.javaapi.NDArray):Array[org.apache.mxnet.javaapi.NDArray]" title="Permalink" 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 class="param">data</dt><dd class="cmt"><p>The input</p></dd><dt>returns</dt><dd class="cmt"><p>Array[org.apache.mxnet.javaapi.NDArray]
</p></dd></dl><dl class="attributes block"> <dt>Annotations</dt><dd>
                <span class="name">@Experimental</span><span class="args">()</span>
              
        </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.javaapi.NDArrayBase@!=(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.javaapi.NDArrayBase@##():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.javaapi.NDArrayBase@==(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.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.javaapi.NDArrayBase@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.javaapi.NDArrayBase@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="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.javaapi.NDArrayBase@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="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.javaapi.NDArrayBase@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.javaapi.NDArrayBase@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.javaapi.NDArrayBase@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="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.javaapi.NDArrayBase@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.javaapi.NDArrayBase@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="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.javaapi.NDArrayBase@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="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.javaapi.NDArrayBase@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.javaapi.NDArrayBase@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="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.javaapi.NDArrayBase@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.javaapi.NDArrayBase@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.javaapi.NDArrayBase@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.javaapi.NDArrayBase@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.javaapi.NDArrayBase@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></ol>
            </div>

        

        
        </div>

        <div id="inheritedMembers">
        <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>