All pages
Powered by GitBook
1 of 13

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Reference

Operation Namespaces

All operations in ND4J and SameDiff are available in "Operation Namespaces". Each namespace is available on the Nd4j and SameDiff classes with its lowercase name.

For example, if you want to use the absoluteDifference operation it would look like this

// ND4J mode
INDArray output = Nd4j.loss.absoluteDifference(labels, predictions, null);

// SameDiff mode
SDVariable output = SameDiff.loss.absoluteDifference(labels, predictions, null);

Namespaces

Random

bernoulli

Generate a new random INDArray, where values are randomly sampled according to a Bernoulli distribution,

with the specified probability. Array values will have value 1 with probability P and value 0 with probability

1-P.

p - Probability of value 1
  • datatype - Data type of the output variable

  • shape - Shape of the new random INDArray, as a 1D array (Size: AtLeast(min=0))

  • binomial

    Generate a new random INDArray, where values are randomly sampled according to a Binomial distribution,

    with the specified number of trials and probability.

    • nTrials - Number of trials parameter for the binomial distribution

    • p - Probability of success for each trial

    • datatype - Data type of the output variable

    • shape - Shape of the new random INDArray, as a 1D array (Size: AtLeast(min=0))

    exponential

    Generate a new random INDArray, where values are randomly sampled according to a exponential distribution:

    P(x) = lambda exp(-lambda x)

    • lambda - lambda parameter

    • datatype - Data type of the output variable

    • shape - Shape of the new random INDArray, as a 1D array (Size: AtLeast(min=0))

    logNormal

    Generate a new random INDArray, where values are randomly sampled according to a Log Normal distribution,

    i.e., log(x) ~ N(mean, stdev)

    • mean - Mean value for the random array

    • stddev - Standard deviation for the random array

    • datatype - Data type of the output variable

    • shape - Shape of the new random INDArray, as a 1D array (Size: AtLeast(min=0))

    normal

    Generate a new random INDArray, where values are randomly sampled according to a Gaussian (normal) distribution,

    N(mean, stdev)

    • mean - Mean value for the random array

    • stddev - Standard deviation for the random array

    • datatype - Data type of the output variable

    • shape - Shape of the new random INDArray, as a 1D array (Size: AtLeast(min=0))

    normalTruncated

    Generate a new random INDArray, where values are randomly sampled according to a Gaussian (normal) distribution,

    N(mean, stdev). However, any values more than 1 standard deviation from the mean are dropped and re-sampled

    • mean - Mean value for the random array

    • stddev - Standard deviation for the random array

    • datatype - Data type of the output variable

    • shape - Shape of the new random INDArray, as a 1D array (Size: AtLeast(min=0))

    uniform

    Generate a new random INDArray, where values are randomly sampled according to a uniform distribution,

    U(min,max)

    • min - Minimum value

    • max - Maximum value.

    • datatype - Data type of the output variable

    • shape - Shape of the new random INDArray, as a 1D array (Size: AtLeast(min=0))

    INDArray bernoulli(double p, DataType datatype, long[] shape)
    
    SDVariable bernoulli(double p, DataType datatype, long[] shape)
    SDVariable bernoulli(String name, double p, DataType datatype, long[] shape)
    INDArray binomial(int nTrials, double p, DataType datatype, long[] shape)
    
    SDVariable binomial(int nTrials, double p, DataType datatype, long[] shape)
    SDVariable binomial(String name, int nTrials, double p, DataType datatype, long[] shape)
    INDArray exponential(double lambda, DataType datatype, long[] shape)
    
    SDVariable exponential(double lambda, DataType datatype, long[] shape)
    SDVariable exponential(String name, double lambda, DataType datatype, long[] shape)
    INDArray logNormal(double mean, double stddev, DataType datatype, long[] shape)
    
    SDVariable logNormal(double mean, double stddev, DataType datatype, long[] shape)
    SDVariable logNormal(String name, double mean, double stddev, DataType datatype, long[] shape)
    INDArray normal(double mean, double stddev, DataType datatype, long[] shape)
    
    SDVariable normal(double mean, double stddev, DataType datatype, long[] shape)
    SDVariable normal(String name, double mean, double stddev, DataType datatype, long[] shape)
    INDArray normalTruncated(double mean, double stddev, DataType datatype, long[] shape)
    
    SDVariable normalTruncated(double mean, double stddev, DataType datatype, long[] shape)
    SDVariable normalTruncated(String name, double mean, double stddev, DataType datatype, long[] shape)
    INDArray uniform(double min, double max, DataType datatype, long[] shape)
    
    SDVariable uniform(double min, double max, DataType datatype, long[] shape)
    SDVariable uniform(String name, double min, double max, DataType datatype, long[] shape)

    LinAlg

    Cholesky

    Computes the Cholesky decomposition of one or more square matrices.

    • input (NUMERIC) - Input tensor with inner-most 2 dimensions forming square matrices

    Lstsq

    Solver for linear squares problems.

    • matrix (NUMERIC) - input tensor

    • rhs (NUMERIC) - input tensor

    • l2_reguralizer - regularizer

    • fast - fast mode, defaults to True - default = true

    Lu

    Computes LU decomposition.

    • input (NUMERIC) - input tensor

    Matmul

    Performs matrix mutiplication on input tensors.

    • a (NUMERIC) - input tensor

    • b (NUMERIC) - input tensor

    MatrixBandPart

    Copy a tensor setting outside a central band in each innermost matrix.

    • input (NUMERIC) - input tensor

    • minLower - lower diagonal count

    • maxUpper - upper diagonal count

    Qr

    Computes the QR decompositions of input matrix.

    • input (NUMERIC) - input tensor

    • full - full matrices mode - default = false

    Solve

    Solver for systems of linear equations.

    • matrix (NUMERIC) - input tensor

    • rhs (NUMERIC) - input tensor

    • adjoint - adjoint mode, defaults to False - default = false

    TriangularSolve

    Solver for systems of linear questions.

    • matrix (NUMERIC) - input tensor

    • rhs (NUMERIC) - input tensor

    • lower - defines whether innermost matrices in matrix are lower or upper triangular

    • adjoint - adjoint mode

    cross

    Computes pairwise cross product.

    • a (NUMERIC) -

    • b (NUMERIC) -

    diag

    Calculates diagonal tensor.

    • input (NUMERIC) -

    diag_part

    Calculates diagonal tensor.

    • input (NUMERIC) -

    logdet

    Calculates log of determinant.

    • input (NUMERIC) -

    mmul

    Matrix multiplication: out = mmul(x,y)

    Supports specifying transpose argument to perform operation such as mmul(a^T, b), etc.

    • x (NUMERIC) - First input variable

    • y (NUMERIC) - Second input variable

    • transposeX - Transpose x (first argument) - default = false

    • transposeY - Transpose y (second argument) - default = false

    • transposeZ - Transpose result array - default = false

    svd

    Calculates singular value decomposition.

    • input (NUMERIC) -

    • fullUV -

    • computeUV -

    • switchNum - - default = 16

    tri

    An array with ones at and below the given diagonal and zeros elsewhere.

    • dataType - Data type - default = DataType.FLOAT

    • row -

    • column -

    • diagonal - - default = 0

    triu

    Upper triangle of an array. Return a copy of a input tensor with the elements below the k-th diagonal zeroed.

    • input (NUMERIC) -

    • diag - - default = 0

    INDArray Cholesky(INDArray input)
    
    SDVariable Cholesky(SDVariable input)
    SDVariable Cholesky(String name, SDVariable input)
    INDArray Lstsq(INDArray matrix, INDArray rhs, double l2_reguralizer, boolean fast)
    INDArray Lstsq(INDArray matrix, INDArray rhs, double l2_reguralizer)
    
    SDVariable Lstsq(SDVariable matrix, SDVariable rhs, double l2_reguralizer, boolean fast)
    SDVariable Lstsq(SDVariable matrix, SDVariable rhs, double l2_reguralizer)
    SDVariable Lstsq(String name, SDVariable matrix, SDVariable rhs, double l2_reguralizer, boolean fast)
    SDVariable Lstsq(String name, SDVariable matrix, SDVariable rhs, double l2_reguralizer)
    INDArray Lu(INDArray input)
    
    SDVariable Lu(SDVariable input)
    SDVariable Lu(String name, SDVariable input)
    INDArray Matmul(INDArray a, INDArray b)
    
    SDVariable Matmul(SDVariable a, SDVariable b)
    SDVariable Matmul(String name, SDVariable a, SDVariable b)
    INDArray[] MatrixBandPart(INDArray input, int minLower, int maxUpper)
    
    SDVariable[] MatrixBandPart(SDVariable input, int minLower, int maxUpper)
    SDVariable[] MatrixBandPart(String name, SDVariable input, int minLower, int maxUpper)
    INDArray[] Qr(INDArray input, boolean full)
    INDArray[] Qr(INDArray input)
    
    SDVariable[] Qr(SDVariable input, boolean full)
    SDVariable[] Qr(SDVariable input)
    SDVariable[] Qr(String name, SDVariable input, boolean full)
    SDVariable[] Qr(String name, SDVariable input)
    INDArray Solve(INDArray matrix, INDArray rhs, boolean adjoint)
    INDArray Solve(INDArray matrix, INDArray rhs)
    
    SDVariable Solve(SDVariable matrix, SDVariable rhs, boolean adjoint)
    SDVariable Solve(SDVariable matrix, SDVariable rhs)
    SDVariable Solve(String name, SDVariable matrix, SDVariable rhs, boolean adjoint)
    SDVariable Solve(String name, SDVariable matrix, SDVariable rhs)
    INDArray TriangularSolve(INDArray matrix, INDArray rhs, boolean lower, boolean adjoint)
    
    SDVariable TriangularSolve(SDVariable matrix, SDVariable rhs, boolean lower, boolean adjoint)
    SDVariable TriangularSolve(String name, SDVariable matrix, SDVariable rhs, boolean lower, boolean adjoint)
    INDArray cross(INDArray a, INDArray b)
    
    SDVariable cross(SDVariable a, SDVariable b)
    SDVariable cross(String name, SDVariable a, SDVariable b)
    INDArray diag(INDArray input)
    
    SDVariable diag(SDVariable input)
    SDVariable diag(String name, SDVariable input)
    INDArray diag_part(INDArray input)
    
    SDVariable diag_part(SDVariable input)
    SDVariable diag_part(String name, SDVariable input)
    INDArray logdet(INDArray input)
    
    SDVariable logdet(SDVariable input)
    SDVariable logdet(String name, SDVariable input)
    INDArray mmul(INDArray x, INDArray y, boolean transposeX, boolean transposeY, boolean transposeZ)
    INDArray mmul(INDArray x, INDArray y)
    
    SDVariable mmul(SDVariable x, SDVariable y, boolean transposeX, boolean transposeY, boolean transposeZ)
    SDVariable mmul(SDVariable x, SDVariable y)
    SDVariable mmul(String name, SDVariable x, SDVariable y, boolean transposeX, boolean transposeY, boolean transposeZ)
    SDVariable mmul(String name, SDVariable x, SDVariable y)
    INDArray svd(INDArray input, boolean fullUV, boolean computeUV, int switchNum)
    INDArray svd(INDArray input, boolean fullUV, boolean computeUV)
    
    SDVariable svd(SDVariable input, boolean fullUV, boolean computeUV, int switchNum)
    SDVariable svd(SDVariable input, boolean fullUV, boolean computeUV)
    SDVariable svd(String name, SDVariable input, boolean fullUV, boolean computeUV, int switchNum)
    SDVariable svd(String name, SDVariable input, boolean fullUV, boolean computeUV)
    INDArray tri(DataType dataType, int row, int column, int diagonal)
    INDArray tri(int row, int column)
    
    SDVariable tri(DataType dataType, int row, int column, int diagonal)
    SDVariable tri(int row, int column)
    SDVariable tri(String name, DataType dataType, int row, int column, int diagonal)
    SDVariable tri(String name, int row, int column)
    INDArray triu(INDArray input, int diag)
    INDArray triu(INDArray input)
    
    SDVariable triu(SDVariable input, int diag)
    SDVariable triu(SDVariable input)
    SDVariable triu(String name, SDVariable input, int diag)
    SDVariable triu(String name, SDVariable input)

    Image

    CropAndResize

    Given an input image and some crop boxes, extract out the image subsets and resize them to the specified size.

    • image (NUMERIC) - Input image, with shape [batch, height, width, channels]

    • cropBoxes (NUMERIC) - Float32 crop, shape [numBoxes, 4] with values in range 0 to 1

    • boxIndices (NUMERIC) - Indices: which image (index to dimension 0) the cropBoxes belong to. Rank 1, shape [numBoxes]

    • cropOutSize (INT) - Output size for the images - int32, rank 1 with values [outHeight, outWidth]

    • extrapolationValue - Used for extrapolation, when applicable. 0.0 should be used for the default - default = 0.0

    adjustContrast

    Adjusts contrast of RGB or grayscale images.

    • in (NUMERIC) - images to adjust. 3D shape or higher

    • factor - multiplier for adjusting contrast

    adjustHue

    Adjust hue of RGB image

    • in (NUMERIC) - image as 3D array

    • delta - value to add to hue channel

    adjustSaturation

    Adjust saturation of RGB images

    • in (NUMERIC) - RGB image as 3D array

    • factor - factor for saturation

    extractImagePatches

    Given an input image, extract out image patches (of size kSizes - h x w) and place them in the depth dimension.

    • image (NUMERIC) - Input image to extract image patches from - shape [batch, height, width, channels]

    • kSizes - Kernel size - size of the image patches, [height, width] (Size: Exactly(count=2))

    • strides - Stride in the input dimension for extracting image patches, [stride_height, stride_width] (Size: Exactly(count=2))

    hsvToRgb

    Converting image from HSV to RGB format

    • input (NUMERIC) - 3D image

    imageResize

    Resize images to size using the specified method.

    • input (NUMERIC) - 4D image [NHWC]

    • size (INT) - new height and width

    • preserveAspectRatio - Whether to preserve the aspect ratio. If this is set, then images will be resized to a size that fits in size while preserving the aspect ratio of the original image. Scales up the image if size is bigger than the current size of the image. Defaults to False. - default = false

    nonMaxSuppression

    Greedily selects a subset of bounding boxes in descending order of score

    • boxes (NUMERIC) - Might be null. Name for the output variable

    • scores (NUMERIC) - vector of shape [num_boxes]

    • maxOutSize - scalar representing the maximum number of boxes to be selected

    randomCrop

    Randomly crops image

    • input (NUMERIC) - input array

    • shape (INT) - shape for crop

    rgbToHsv

    Converting array from HSV to RGB format

    • input (NUMERIC) - 3D image

    rgbToYiq

    Converting array from RGB to YIQ format

    • input (NUMERIC) - 3D image

    rgbToYuv

    Converting array from RGB to YUV format

    • input (NUMERIC) - 3D image

    yiqToRgb

    Converting image from YIQ to RGB format

    • input (NUMERIC) - 3D image

    yuvToRgb

    Converting image from YUV to RGB format

    • input (NUMERIC) - 3D image

    INDArray CropAndResize(INDArray image, INDArray cropBoxes, INDArray boxIndices, INDArray cropOutSize, double extrapolationValue)
    INDArray CropAndResize(INDArray image, INDArray cropBoxes, INDArray boxIndices, INDArray cropOutSize)
    
    SDVariable CropAndResize(SDVariable image, SDVariable cropBoxes, SDVariable boxIndices, SDVariable cropOutSize, double extrapolationValue)
    SDVariable CropAndResize(SDVariable image, SDVariable cropBoxes, SDVariable boxIndices, SDVariable cropOutSize)
    SDVariable CropAndResize(String name, SDVariable image, SDVariable cropBoxes, SDVariable boxIndices, SDVariable cropOutSize, double extrapolationValue)
    SDVariable CropAndResize(String name, SDVariable image, SDVariable cropBoxes, SDVariable boxIndices, SDVariable cropOutSize)
    rates - Usually [1,1]. Equivalent to dilation rate in dilated convolutions - how far apart the output pixels
  • sameMode - Padding algorithm. If true: use Same padding

  • antialis - Whether to use an anti-aliasing filter when downsampling an image - default = false
  • ImageResizeMethod - ResizeBilinear: Bilinear interpolation. If 'antialias' is true, becomes a hat/tent filter function with radius 1 when downsampling.

    ResizeLanczos5: Lanczos kernel with radius 5. Very-high-quality filter but may have stronger ringing.

    ResizeBicubic: Cubic interpolant of Keys. Equivalent to Catmull-Rom kernel. Reasonably good quality and faster than Lanczos3Kernel, particularly when upsampling.

    ResizeGaussian: Gaussian kernel with radius 3, sigma = 1.5 / 3.0.

    ResizeNearest: Nearest neighbor interpolation. 'antialias' has no effect when used with nearest neighbor interpolation.

    ResizeArea: Anti-aliased resampling with area interpolation. 'antialias' has no effect when used with area interpolation; it always anti-aliases.

    ResizeMitchelcubic: Mitchell-Netravali Cubic non-interpolating filter. For synthetic images (especially those lacking proper prefiltering), less ringing than Keys cubic kernel but less sharp.

  • iouThreshold
    - threshold for deciding whether boxes overlap too much with respect to IOU
  • scoreThreshold - threshold for deciding when to remove boxes based on score

  • INDArray adjustContrast(INDArray in, double factor)
    
    SDVariable adjustContrast(SDVariable in, double factor)
    SDVariable adjustContrast(String name, SDVariable in, double factor)
    INDArray adjustHue(INDArray in, double delta)
    
    SDVariable adjustHue(SDVariable in, double delta)
    SDVariable adjustHue(String name, SDVariable in, double delta)
    INDArray adjustSaturation(INDArray in, double factor)
    
    SDVariable adjustSaturation(SDVariable in, double factor)
    SDVariable adjustSaturation(String name, SDVariable in, double factor)
    INDArray extractImagePatches(INDArray image, int[] kSizes, int[] strides, int[] rates, boolean sameMode)
    
    SDVariable extractImagePatches(SDVariable image, int[] kSizes, int[] strides, int[] rates, boolean sameMode)
    SDVariable extractImagePatches(String name, SDVariable image, int[] kSizes, int[] strides, int[] rates, boolean sameMode)
    INDArray hsvToRgb(INDArray input)
    
    SDVariable hsvToRgb(SDVariable input)
    SDVariable hsvToRgb(String name, SDVariable input)
    INDArray imageResize(INDArray input, INDArray size, boolean preserveAspectRatio, boolean antialis, ImageResizeMethod ImageResizeMethod)
    INDArray imageResize(INDArray input, INDArray size, ImageResizeMethod ImageResizeMethod)
    
    SDVariable imageResize(SDVariable input, SDVariable size, boolean preserveAspectRatio, boolean antialis, ImageResizeMethod ImageResizeMethod)
    SDVariable imageResize(SDVariable input, SDVariable size, ImageResizeMethod ImageResizeMethod)
    SDVariable imageResize(String name, SDVariable input, SDVariable size, boolean preserveAspectRatio, boolean antialis, ImageResizeMethod ImageResizeMethod)
    SDVariable imageResize(String name, SDVariable input, SDVariable size, ImageResizeMethod ImageResizeMethod)
    INDArray nonMaxSuppression(INDArray boxes, INDArray scores, int maxOutSize, double iouThreshold, double scoreThreshold)
    
    SDVariable nonMaxSuppression(SDVariable boxes, SDVariable scores, int maxOutSize, double iouThreshold, double scoreThreshold)
    SDVariable nonMaxSuppression(String name, SDVariable boxes, SDVariable scores, int maxOutSize, double iouThreshold, double scoreThreshold)
    INDArray randomCrop(INDArray input, INDArray shape)
    
    SDVariable randomCrop(SDVariable input, SDVariable shape)
    SDVariable randomCrop(String name, SDVariable input, SDVariable shape)
    INDArray rgbToHsv(INDArray input)
    
    SDVariable rgbToHsv(SDVariable input)
    SDVariable rgbToHsv(String name, SDVariable input)
    INDArray rgbToYiq(INDArray input)
    
    SDVariable rgbToYiq(SDVariable input)
    SDVariable rgbToYiq(String name, SDVariable input)
    INDArray rgbToYuv(INDArray input)
    
    SDVariable rgbToYuv(SDVariable input)
    SDVariable rgbToYuv(String name, SDVariable input)
    INDArray yiqToRgb(INDArray input)
    
    SDVariable yiqToRgb(SDVariable input)
    SDVariable yiqToRgb(String name, SDVariable input)
    INDArray yuvToRgb(INDArray input)
    
    SDVariable yuvToRgb(SDVariable input)
    SDVariable yuvToRgb(String name, SDVariable input)
               in the patches should be, in the input. A dilation of [a,b] means every {@code a}th pixel is taken
               along the height/rows dimension, and every {@code b}th pixel is take along the width/columns dimension (Size: AtLeast(min=0))

    Bitwise

    and

    Bitwise AND operation. Supports broadcasting.

    • x (INT) - First input array

    • y (INT) - Second input array

    bitRotl

    Roll integer bits to the left, i.e. var << 4 | var >> (32 - 4)

    • x (INT) - Input 1

    • shift (INT) - Number of bits to shift.

    bitRotr

    Roll integer bits to the right, i.e. var >> 4 | var << (32 - 4)

    • x (INT) - Input 1

    • shift (INT) - Number of bits to shift.

    bitShift

    Shift integer bits to the left, i.e. var << 4

    • x (INT) - Input 1

    • shift (INT) - Number of bits to shift.

    bitShiftRight

    Shift integer bits to the right, i.e. var >> 4

    • x (INT) - Input 1

    • shift (INT) - Number of bits to shift.

    bitsHammingDistance

    Bitwise Hamming distance reduction over all elements of both input arrays. For example, if x=01100000 and y=1010000 then the bitwise Hamming distance is 2 (due to differences at positions 0 and 1)

    • x (INT) - First input array.

    • y (INT) - Second input array.

    leftShift

    Bitwise left shift operation. Supports broadcasting.

    • x (INT) - Input to be bit shifted

    • y (INT) - Amount to shift elements of x array

    leftShiftCyclic

    Bitwise left cyclical shift operation. Supports broadcasting.

    Unlike #leftShift(INDArray, INDArray) the bits will "wrap around":

    leftShiftCyclic(01110000, 2) -> 11000001

    • x (INT) - Input to be bit shifted

    • y (INT) - Amount to shift elements of x array

    or

    Bitwise OR operation. Supports broadcasting.

    • x (INT) - First input array

    • y (INT) - First input array

    rightShift

    Bitwise right shift operation. Supports broadcasting.

    • x (INT) - Input to be bit shifted

    • y (INT) - Amount to shift elements of x array

    rightShiftCyclic

    Bitwise right cyclical shift operation. Supports broadcasting.

    Unlike rightShift(INDArray, INDArray) the bits will "wrap around":

    rightShiftCyclic(00001110, 2) -> 10000011

    • x (INT) - Input to be bit shifted

    • y (INT) - Amount to shift elements of x array

    xor

    Bitwise XOR operation (exclusive OR). Supports broadcasting.

    • x (INT) - First input array

    • y (INT) - First input array

    INDArray and(INDArray x, INDArray y)
    
    SDVariable and(SDVariable x, SDVariable y)
    SDVariable and(String name, SDVariable x, SDVariable y)
    INDArray bitRotl(INDArray x, INDArray shift)
    
    SDVariable bitRotl(SDVariable x, SDVariable shift)
    SDVariable bitRotl(String name, SDVariable x, SDVariable shift)
    INDArray bitRotr(INDArray x, INDArray shift)
    
    SDVariable bitRotr(SDVariable x, SDVariable shift)
    SDVariable bitRotr(String name, SDVariable x, SDVariable shift)
    INDArray bitShift(INDArray x, INDArray shift)
    
    SDVariable bitShift(SDVariable x, SDVariable shift)
    SDVariable bitShift(String name, SDVariable x, SDVariable shift)
    INDArray bitShiftRight(INDArray x, INDArray shift)
    
    SDVariable bitShiftRight(SDVariable x, SDVariable shift)
    SDVariable bitShiftRight(String name, SDVariable x, SDVariable shift)
    INDArray bitsHammingDistance(INDArray x, INDArray y)
    
    SDVariable bitsHammingDistance(SDVariable x, SDVariable y)
    SDVariable bitsHammingDistance(String name, SDVariable x, SDVariable y)
    INDArray leftShift(INDArray x, INDArray y)
    
    SDVariable leftShift(SDVariable x, SDVariable y)
    SDVariable leftShift(String name, SDVariable x, SDVariable y)
    INDArray leftShiftCyclic(INDArray x, INDArray y)
    
    SDVariable leftShiftCyclic(SDVariable x, SDVariable y)
    SDVariable leftShiftCyclic(String name, SDVariable x, SDVariable y)
    INDArray or(INDArray x, INDArray y)
    
    SDVariable or(SDVariable x, SDVariable y)
    SDVariable or(String name, SDVariable x, SDVariable y)
    INDArray rightShift(INDArray x, INDArray y)
    
    SDVariable rightShift(SDVariable x, SDVariable y)
    SDVariable rightShift(String name, SDVariable x, SDVariable y)
    INDArray rightShiftCyclic(INDArray x, INDArray y)
    
    SDVariable rightShiftCyclic(SDVariable x, SDVariable y)
    SDVariable rightShiftCyclic(String name, SDVariable x, SDVariable y)
    INDArray xor(INDArray x, INDArray y)
    
    SDVariable xor(SDVariable x, SDVariable y)
    SDVariable xor(String name, SDVariable x, SDVariable y)

    Loss

    absoluteDifference

    Absolute difference loss: sum_i abs( label[i] - predictions[i] )

    • label (NUMERIC) - Label array

    • predictions (NUMERIC) - Predictions array

    • weights (NUMERIC) - Weights array. May be null. If null, a weight of 1.0 is used

    • lossReduce - Reduction type for the loss. See LossReduce for more details. Default: LossReduce#MEAN_BY_NONZERO_WEIGHT_COUNT - default = LossReduce.MEAN_BY_NONZERO_WEIGHT_COUNT

    cosineDistance

    Cosine distance loss: 1 - cosineSimilarity(x,y) or 1 - sum_i label[i] * prediction[i], which is

    equivalent to cosine distance when both the predictions and labels are normalized. Note: This loss function assumes that both the predictions and labels are normalized to have unit l2 norm.

    If this is not the case, you should normalize them first by dividing by norm2(String, SDVariable, boolean, int...)

    along the cosine distance dimension (with keepDims=true).

    • label (NUMERIC) - Label array

    • predictions (NUMERIC) - Predictions array

    • weights (NUMERIC) - Weights array. May be null. If null, a weight of 1.0 is use

    hingeLoss

    Hinge loss: a loss function used for training classifiers.

    Implements L = max(0, 1 - t * predictions) where t is the label values after internally converting to {-1,1`

    from the user specified {0,1. Note that Labels should be provided with values {0,1.

    • label (NUMERIC) - Label array. Each value should be 0.0 or 1.0 (internally -1 to 1 is used)

    • predictions (NUMERIC) - Predictions array

    • weights (NUMERIC) - Weights array. May be null. If null, a weight of 1.0 is used

    huberLoss

    Huber loss function, used for robust regression. It is similar both squared error loss and absolute difference loss,

    though is less sensitive to outliers than squared error. Huber loss implements:

    • label (NUMERIC) - Label array

    • predictions (NUMERIC) - Predictions array

    • weights (NUMERIC) - Weights array. May be null. If null, a weight of 1.0 is used

    l2Loss

    L2 loss: 1/2 * sum(x^2)

    • var (NUMERIC) - Variable to calculate L2 loss of

    logLoss

    Log loss, i.e., binary cross entropy loss, usually used for binary multi-label classification. Implements:

    -1/numExamples * sum_i (labels[i] * log(predictions[i] + epsilon) + (1-labels[i]) * log(1-predictions[i] + epsilon))

    • label (NUMERIC) - Label array

    • predictions (NUMERIC) - Predictions array

    • weights (NUMERIC) - Weights array. May be null. If null, a weight of 1.0 is used

    logPoisson

    Log poisson loss: a loss function used for training classifiers.

    Implements L = exp(c) - z * c where c is log(predictions) and z is labels.

    • label (NUMERIC) - Label array. Each value should be 0.0 or 1.0

    • predictions (NUMERIC) - Predictions array (has to be log(x) of actual predictions)

    • weights (NUMERIC) - Weights array. May be null. If null, a weight of 1.0 is used

    meanPairwiseSquaredError

    Mean pairwise squared error. MPWSE loss calculates the difference between pairs of consecutive elements in the predictions and labels arrays.

    For example, if predictions = [p0, p1, p2] and labels are [l0, l1, l2] then MPWSE is:

    {@code [((p0-p1) - (l0-l1))^2 + ((p0-p2) - (l0-l2))^2 + ((p1-p2) - (l1-l2))^2] / 3}

    • label (NUMERIC) - Label array

    • predictions (NUMERIC) - Predictions array

    • weights (NUMERIC) - Weights array. May be null. If null, a weight of 1.0 is used. Must be either null, scalar, or have shape [batchSize]

    meanSquaredError

    Mean squared error loss function. Implements (label[i] - prediction[i])^2 - i.e., squared error on a per-element basis.

    When averaged (using LossReduce#MEAN_BY_WEIGHT or LossReduce#MEAN_BY_NONZERO_WEIGHT_COUNT (the default))

    this is the mean squared error loss function.

    • label (NUMERIC) - Label array

    • predictions (NUMERIC) - Predictions array

    • weights (NUMERIC) - Weights array. May be null. If null, a weight of 1.0 is used

    sigmoidCrossEntropy

    Sigmoid cross entropy: applies the sigmoid activation function on the input logits (input "pre-sigmoid preductions")

    and implements the binary cross entropy loss function. This implementation is numerically more stable than using

    standard (but separate) sigmoid activation function and log loss (binary cross entropy) loss function. Implements:

    -1/numExamples * sum_i (labels[i] * log(sigmoid(logits[i])) + (1-labels[i]) * log(1-sigmoid(logits[i])))

    though this is done in a mathematically equivalent but more numerical stable form.

    When label smoothing is > 0, the following label smoothing is used:

    • label (NUMERIC) - Label array

    • predictionLogits (NUMERIC) - Predictions array

    • weights (NUMERIC) - Weights array. May be null. If null, a weight of 1.0 is used

    softmaxCrossEntropy

    Applies the softmax activation function to the input, then implement multi-class cross entropy: {@code -sum_classes label[i] * log(p[c])} where {@code p = softmax(logits)} If LossReduce#NONE is used, returned shape is [numExamples] out for [numExamples, numClasses] predicitons/labels;

    otherwise, the output is a scalar.

    When label smoothing is > 0, the following label smoothing is used:

    • oneHotLabels (NUMERIC) - Label array. Should be one-hot per example and same shape as predictions (for example, [mb, nOut])

    • logitPredictions (NUMERIC) - Predictions array (pre-softmax)

    • weights (NUMERIC) - Weights array. May be null. If null, a weight of 1.0 is used

    sparseSoftmaxCrossEntropy

    As per softmaxCrossEntropy(String, SDVariable, SDVariable, LossReduce) but the labels variable

    is represented as an integer array instead of the equivalent one-hot array. i.e., if logits are rank N, then labels have rank N-1

    • logits (NUMERIC) - Logits array ("pre-softmax activations")

    • labels (INT) - Labels array. Must be an integer type.

    weightedCrossEntropyWithLogits

    Weighted cross entropy loss with logits

    • targets (NUMERIC) - targets array

    • inputs (NUMERIC) - input array

    • weights (NUMERIC) - eights array. May be null. If null, a weight of 1.0 is used

    RNN

    Operation classes

    gru

    The GRU operation. Gated Recurrent Unit - Cho et al. 2014.

    INDArray absoluteDifference(INDArray label, INDArray predictions, INDArray weights, LossReduce lossReduce)
    INDArray absoluteDifference(INDArray label, INDArray predictions, INDArray weights)
    
    SDVariable absoluteDifference(SDVariable label, SDVariable predictions, SDVariable weights, LossReduce lossReduce)
    SDVariable absoluteDifference(SDVariable label, SDVariable predictions, SDVariable weights)
    SDVariable absoluteDifference(String name, SDVariable label, SDVariable predictions, SDVariable weights, LossReduce lossReduce)
    SDVariable absoluteDifference(String name, SDVariable label, SDVariable predictions, SDVariable weights)
    lossReduce
    - Reduction type for the loss. See LossReduce for more details. Default: LossReduce#MEAN_BY_NONZERO_WEIGHT_COUNT - default = LossReduce.MEAN_BY_NONZERO_WEIGHT_COUNT
  • dimension - Dimension to perform the cosine distance over

  • lossReduce - Reduction type for the loss. See LossReduce for more details. Default: LossReduce#MEAN_BY_NONZERO_WEIGHT_COUNT - default = LossReduce.MEAN_BY_NONZERO_WEIGHT_COUNT
    lossReduce
    - Reduction type for the loss. See LossReduce for more details. Default: LossReduce#MEAN_BY_NONZERO_WEIGHT_COUNT - default = LossReduce.MEAN_BY_NONZERO_WEIGHT_COUNT
  • delta - Loss function delta value

  • lossReduce
    - Reduction type for the loss. See LossReduce for more details. Default: LossReduce#MEAN_BY_NONZERO_WEIGHT_COUNT - default = LossReduce.MEAN_BY_NONZERO_WEIGHT_COUNT
  • epsilon - epsilon - default = 0.0

  • lossReduce - Reduction type for the loss. See LossReduce for more details. Default: LossReduce#MEAN_BY_NONZERO_WEIGHT_COUNT - default = LossReduce.MEAN_BY_NONZERO_WEIGHT_COUNT
  • full - Boolean flag. true for logPoissonFull, false for logPoisson

  • lossReduce - Reduction type for the loss. See LossReduce for more details. Default: LossReduce#MEAN_BY_NONZERO_WEIGHT_COUNT - default = LossReduce.MEAN_BY_NONZERO_WEIGHT_COUNT
    lossReduce
    - Reduction type for the loss. See LossReduce for more details. Default: LossReduce#MEAN_BY_NONZERO_WEIGHT_COUNT - default = LossReduce.MEAN_BY_NONZERO_WEIGHT_COUNT
    lossReduce
    - Reduction type for the loss. See LossReduce for more details. Default: LossReduce#MEAN_BY_NONZERO_WEIGHT_COUNT - default = LossReduce.MEAN_BY_NONZERO_WEIGHT_COUNT
  • labelSmoothing - Label smoothing value. Default value: 0 - default = 0.0

  • lossReduce - Reduction type for the loss. See LossReduce for more details. Default: LossReduce#MEAN_BY_NONZERO_WEIGHT_COUNT - default = LossReduce.MEAN_BY_NONZERO_WEIGHT_COUNT
  • labelSmoothing - Label smoothing value. Default value: 0 - default = 0.0

  • INDArray cosineDistance(INDArray label, INDArray predictions, INDArray weights, LossReduce lossReduce, int dimension)
    INDArray cosineDistance(INDArray label, INDArray predictions, INDArray weights, int dimension)
    
    SDVariable cosineDistance(SDVariable label, SDVariable predictions, SDVariable weights, LossReduce lossReduce, int dimension)
    SDVariable cosineDistance(SDVariable label, SDVariable predictions, SDVariable weights, int dimension)
    SDVariable cosineDistance(String name, SDVariable label, SDVariable predictions, SDVariable weights, LossReduce lossReduce, int dimension)
    SDVariable cosineDistance(String name, SDVariable label, SDVariable predictions, SDVariable weights, int dimension)
    INDArray hingeLoss(INDArray label, INDArray predictions, INDArray weights, LossReduce lossReduce)
    INDArray hingeLoss(INDArray label, INDArray predictions, INDArray weights)
    
    SDVariable hingeLoss(SDVariable label, SDVariable predictions, SDVariable weights, LossReduce lossReduce)
    SDVariable hingeLoss(SDVariable label, SDVariable predictions, SDVariable weights)
    SDVariable hingeLoss(String name, SDVariable label, SDVariable predictions, SDVariable weights, LossReduce lossReduce)
    SDVariable hingeLoss(String name, SDVariable label, SDVariable predictions, SDVariable weights)
    INDArray huberLoss(INDArray label, INDArray predictions, INDArray weights, LossReduce lossReduce, double delta)
    INDArray huberLoss(INDArray label, INDArray predictions, INDArray weights, double delta)
    
    SDVariable huberLoss(SDVariable label, SDVariable predictions, SDVariable weights, LossReduce lossReduce, double delta)
    SDVariable huberLoss(SDVariable label, SDVariable predictions, SDVariable weights, double delta)
    SDVariable huberLoss(String name, SDVariable label, SDVariable predictions, SDVariable weights, LossReduce lossReduce, double delta)
    SDVariable huberLoss(String name, SDVariable label, SDVariable predictions, SDVariable weights, double delta)
    `L = 0.5 * (label[i] - predictions[i])^2 if abs(label[i] - predictions[i]) < delta`
    
    `L = delta * abs(label[i] - predictions[i]) - 0.5 * delta^2 otherwise`
    INDArray l2Loss(INDArray var)
    
    SDVariable l2Loss(SDVariable var)
    SDVariable l2Loss(String name, SDVariable var)
    INDArray logLoss(INDArray label, INDArray predictions, INDArray weights, LossReduce lossReduce, double epsilon)
    INDArray logLoss(INDArray label, INDArray predictions)
    
    SDVariable logLoss(SDVariable label, SDVariable predictions, SDVariable weights, LossReduce lossReduce, double epsilon)
    SDVariable logLoss(SDVariable label, SDVariable predictions)
    SDVariable logLoss(String name, SDVariable label, SDVariable predictions, SDVariable weights, LossReduce lossReduce, double epsilon)
    SDVariable logLoss(String name, SDVariable label, SDVariable predictions)
    INDArray logPoisson(INDArray label, INDArray predictions, INDArray weights, LossReduce lossReduce, boolean full)
    INDArray logPoisson(INDArray label, INDArray predictions, INDArray weights, boolean full)
    
    SDVariable logPoisson(SDVariable label, SDVariable predictions, SDVariable weights, LossReduce lossReduce, boolean full)
    SDVariable logPoisson(SDVariable label, SDVariable predictions, SDVariable weights, boolean full)
    SDVariable logPoisson(String name, SDVariable label, SDVariable predictions, SDVariable weights, LossReduce lossReduce, boolean full)
    SDVariable logPoisson(String name, SDVariable label, SDVariable predictions, SDVariable weights, boolean full)
    INDArray meanPairwiseSquaredError(INDArray label, INDArray predictions, INDArray weights, LossReduce lossReduce)
    INDArray meanPairwiseSquaredError(INDArray label, INDArray predictions, INDArray weights)
    
    SDVariable meanPairwiseSquaredError(SDVariable label, SDVariable predictions, SDVariable weights, LossReduce lossReduce)
    SDVariable meanPairwiseSquaredError(SDVariable label, SDVariable predictions, SDVariable weights)
    SDVariable meanPairwiseSquaredError(String name, SDVariable label, SDVariable predictions, SDVariable weights, LossReduce lossReduce)
    SDVariable meanPairwiseSquaredError(String name, SDVariable label, SDVariable predictions, SDVariable weights)
    INDArray meanSquaredError(INDArray label, INDArray predictions, INDArray weights, LossReduce lossReduce)
    INDArray meanSquaredError(INDArray label, INDArray predictions, INDArray weights)
    
    SDVariable meanSquaredError(SDVariable label, SDVariable predictions, SDVariable weights, LossReduce lossReduce)
    SDVariable meanSquaredError(SDVariable label, SDVariable predictions, SDVariable weights)
    SDVariable meanSquaredError(String name, SDVariable label, SDVariable predictions, SDVariable weights, LossReduce lossReduce)
    SDVariable meanSquaredError(String name, SDVariable label, SDVariable predictions, SDVariable weights)
    INDArray sigmoidCrossEntropy(INDArray label, INDArray predictionLogits, INDArray weights, LossReduce lossReduce, double labelSmoothing)
    INDArray sigmoidCrossEntropy(INDArray label, INDArray predictionLogits, INDArray weights)
    
    SDVariable sigmoidCrossEntropy(SDVariable label, SDVariable predictionLogits, SDVariable weights, LossReduce lossReduce, double labelSmoothing)
    SDVariable sigmoidCrossEntropy(SDVariable label, SDVariable predictionLogits, SDVariable weights)
    SDVariable sigmoidCrossEntropy(String name, SDVariable label, SDVariable predictionLogits, SDVariable weights, LossReduce lossReduce, double labelSmoothing)
    SDVariable sigmoidCrossEntropy(String name, SDVariable label, SDVariable predictionLogits, SDVariable weights)
    `numClasses = labels.size(1);
    
    label = (1.0 - labelSmoothing) * label + 0.5 * labelSmoothing`
    INDArray softmaxCrossEntropy(INDArray oneHotLabels, INDArray logitPredictions, INDArray weights, LossReduce lossReduce, double labelSmoothing)
    INDArray softmaxCrossEntropy(INDArray oneHotLabels, INDArray logitPredictions, INDArray weights)
    
    SDVariable softmaxCrossEntropy(SDVariable oneHotLabels, SDVariable logitPredictions, SDVariable weights, LossReduce lossReduce, double labelSmoothing)
    SDVariable softmaxCrossEntropy(SDVariable oneHotLabels, SDVariable logitPredictions, SDVariable weights)
    SDVariable softmaxCrossEntropy(String name, SDVariable oneHotLabels, SDVariable logitPredictions, SDVariable weights, LossReduce lossReduce, double labelSmoothing)
    SDVariable softmaxCrossEntropy(String name, SDVariable oneHotLabels, SDVariable logitPredictions, SDVariable weights)
    `numClasses = labels.size(1);
    
    oneHotLabel = (1.0 - labelSmoothing) * oneHotLabels + labelSmoothing/numClasses`
    INDArray sparseSoftmaxCrossEntropy(INDArray logits, INDArray labels)
    
    SDVariable sparseSoftmaxCrossEntropy(SDVariable logits, SDVariable labels)
    SDVariable sparseSoftmaxCrossEntropy(String name, SDVariable logits, SDVariable labels)
    INDArray weightedCrossEntropyWithLogits(INDArray targets, INDArray inputs, INDArray weights)
    
    SDVariable weightedCrossEntropyWithLogits(SDVariable targets, SDVariable inputs, SDVariable weights)
    SDVariable weightedCrossEntropyWithLogits(String name, SDVariable targets, SDVariable inputs, SDVariable weights)

    x (NUMERIC) - input [time, bS, nIn]

  • hLast (NUMERIC) - initial cell output (at time step = 0) [bS, nOut]

  • Wx (NUMERIC) - input-to-hidden weights, [nIn, 3*nOut]

  • Wh (NUMERIC) - hidden-to-hidden weights, [nOut, 3*nOut]

  • biases (NUMERIC) - biases, [3*nOut]

  • gruCell

    The GRU cell. Does a single time step operation

    • x (NUMERIC) - Input, with shape [batchSize, inSize]

    • hLast (NUMERIC) - Output of the previous cell/time step, with shape [batchSize, numUnits]

    • GRUWeights - see GRUWeights

    lstmCell

    The LSTM cell. Does a single time step operation.

    • x (NUMERIC) - Input, with shape [batchSize, inSize]

    • cLast (NUMERIC) - Previous cell state, with shape [batchSize, numUnits]

    • yLast (NUMERIC) - revious cell output, with shape [batchSize, numUnits]

    • LSTMWeights - see

    • LSTMConfiguration - see

    lstmLayer

    Long Short-Term Memory layer - Hochreiter 1997.

    SUPPORTS following data formats:

    for unidirectional:

    TNS: shapes [timeLength, numExamples, inOutSize]

    NST: shapes [numExamples, inOutSize, timeLength]

    NTS: shapes [numExamples, timeLength, inOutSize]

    for bidirectional:

    T2NS: shapes [timeLength, 2, numExamples, inOutSize] (for ONNX)

    SUPPORTS following direction modes:

    FWD: forward

    BWD: backward

    BIDIR_SUM: bidirectional sum

    BIDIR_CONCAT: bidirectional concat

    BIDIR_EXTRA_DIM: bidirectional extra output dim (in conjunction with format dataFormat - T2NS)

    You may use different gate configurations:

    specify gate/cell/out aplha/beta and numbers of activations for gate/cell/out described in activations enum

    ("RELU","SIGMOID","AFFINE","LEAKY_RELU","THRESHHOLD_RELU","SCALED_TAHN","HARD_SIGMOID","ELU","SOFTSIGN","SOFTPLUS")

    Also this layer supports MKLDNN (DNNL) and cuDNN acceleration

    • x (NUMERIC) - Input, with shape dependent on the data format (in config).

    • cLast (NUMERIC) - Previous/initial cell state, with shape [batchSize, numUnits]

    • yLast (NUMERIC) - Previous/initial cell output, with shape [batchSize, numUnits]

    • maxTSLength (NUMERIC) - maxTSLength with shape [batchSize]

    • LSTMLayerWeights - see

    • LSTMLayerConfig - see

    lstmblock

    The LSTM block

    • maxTSLength (NUMERIC) -

    • x (NUMERIC) - Input, with shape dependent on the data format (in config).

    • cLast (NUMERIC) - Previous/initial cell state, with shape [batchSize, numUnits]

    • yLast (NUMERIC) - Previous/initial cell output, with shape [batchSize, numUnits]

    • LSTMWeights - see

    • LSTMConfiguration - see

    sru

    The SRU layer. Does a single time step operation.

    • x (NUMERIC) - Input, with shape [batchSize, inSize]

    • initialC (NUMERIC) - Initial cell state, with shape [batchSize, inSize]

    • mask (NUMERIC) - An optional dropout mask, with shape [batchSize, inSize]

    • SRUWeights - see

    sruCell

    The SRU layer. Does a single time step operation.

    • x (NUMERIC) - Input, with shape [batchSize, inSize]

    • cLast (NUMERIC) - Previous cell state, with shape [batchSize, inSize]

    • SRUWeights - see SRUWeights

    Configuration Classes

    LSTMConfiguration

    • RnnDataFormat (ENUM) - The data format of the input. Input shape depends on data format (in config):

    TNS -> [timeSteps, batchSize, inSize]

    NST -> [batchSize, inSize, timeSteps]

    NTS -> [batchSize, timeSteps, inSize]

    • peepHole (BOOL) - Whether to provide peephole connections

    • forgetBias (NUMERIC) - The bias added to forget gates in order to reduce the scale of forgetting in the beginning of the training.

    • clippingCellValue (NUMERIC) - The bias added to forget gates in order to reduce the scale of forgetting in the beginning of the training.

    Used in these ops: lstmCell lstmblock

    LSTMLayerConfig

    • LSTMDataFormat (ENUM) - for unidirectional: TNS: shape [timeLength, numExamples, inOutSize] - sometimes referred to as "time major"

    NST: shape [numExamples, inOutSize, timeLength]

    NTS: shape [numExamples, timeLength, inOutSize] - TF "time_major=false" layout for bidirectional:

    T2NS: 3 = [timeLength, 2, numExamples, inOutSize] (for ONNX)

    • LSTMDirectionMode (ENUM) - direction

    FWD: 0 = fwd

    BWD: 1 = bwd

    BIDIR_SUM: 2 = bidirectional sum

    BIDIR_CONCAT: 3 = bidirectional concat

    BIDIR_EXTRA_DIM: 4 = bidirectional extra output dim (in conjunction with format dataFormat = 3)

    • gateAct (ENUM) - Activations

    • cellAct (ENUM) - Activations

    • outAct (ENUM) - Activations

    • retFullSequence (BOOL) - indicates whether to return whole time sequence h {h_0, h_1, ... , h_sL-1} - default = true

    • retLastH (BOOL) - indicates whether to return output at last time step only,

      in this case shape would be [bS, nOut] (exact shape depends on dataFormat argument) - default = false

    • retLastC (BOOL) - indicates whether to return cells state at last time step only,

      in this case shape would be [bS, nOut] (exact shape depends on dataFormat argument) - default = false

    • cellClip (NUMERIC) - Cell clipping value, if it = 0 then do not apply clipping - default = 0.0

    • gateAlpha (NUMERIC) - null - default = 0.0

    • gateBeta (NUMERIC) - null - default = 0.0

    • cellAlpha (NUMERIC) - null - default = 0.0

    • cellBeta (NUMERIC) - null - default = 0.0

    • outAlpha (NUMERIC) - null - default = 0.0

    • outBeta (NUMERIC) - null - default = 0.0

    Used in these ops: lstmLayer

    GRUWeights

    • ruWeight- null (NUMERIC type)

    • cWeight- null (NUMERIC type)

    • ruBias- null (NUMERIC type)

    • cBias- null (NUMERIC type)

    Used in these ops: gruCell

    SRUWeights

    • weights- null (NUMERIC type)

    • bias- null (NUMERIC type)

    Used in these ops: sru sruCell

    LSTMWeights

    • ruWeight- null (NUMERIC type)

    • inputPeepholeWeights- null (NUMERIC type)

    • forgetPeepholeWeights- null (NUMERIC type)

    • outputPeepholeWeights- null (NUMERIC type)

    • bias- null (NUMERIC type)

    Used in these ops: lstmCell lstmblock

    LSTMLayerWeights

    • inputWeights- input weights Wx:

      1) shapes [nIn, 4*nOut] for FWD,BWD 2) shapes [2, nIn, 4*nOut] BIDIR_SUM, BIDIR_CONCAT and BIDIR_EXTRA_DIM (NUMERIC type)

    • recurrentWeights- recurrent weights Wr:

      1) shapes [nIn, 4*nOut] for FWD, BWD 2) shapes [2, nIn, 4*nOut] BIDIR_SUM, BIDIR_CONCAT and BIDIR_EXTRA_DIM (NUMERIC type)

    • biases- biases

      1) shapes [4*nOut] for FWD, BWD 2) shapes [2, 4*nOut] for BIDIR_SUM, BIDIR_CONCAT and BIDIR_EXTRA_DIM (NUMERIC type)

    • peepholeWeights- peephole weights Wp:

      1) [3*nOut] when directionMode < 2

      2) [2, 3*nOut] when directionMode >= 2 (NUMERIC type)

    Used in these ops: lstmLayer

    INDArray gru(INDArray x, INDArray hLast, INDArray Wx, INDArray Wh, INDArray biases)
    
    SDVariable gru(SDVariable x, SDVariable hLast, SDVariable Wx, SDVariable Wh, SDVariable biases)
    SDVariable gru(String name, SDVariable x, SDVariable hLast, SDVariable Wx, SDVariable Wh, SDVariable biases)
    INDArray[] gruCell(INDArray x, INDArray hLast, GRUWeights gRUWeights)
    
    SDVariable[] gruCell(SDVariable x, SDVariable hLast, GRUWeights gRUWeights)
    SDVariable[] gruCell(String name, SDVariable x, SDVariable hLast, GRUWeights gRUWeights)
    INDArray[] lstmCell(INDArray x, INDArray cLast, INDArray yLast, LSTMWeights lSTMWeights, LSTMConfiguration lSTMConfiguration)
    
    SDVariable[] lstmCell(SDVariable x, SDVariable cLast, SDVariable yLast, LSTMWeights lSTMWeights, LSTMConfiguration lSTMConfiguration)
    SDVariable[] lstmCell(String name, SDVariable x, SDVariable cLast, SDVariable yLast, LSTMWeights lSTMWeights, LSTMConfiguration lSTMConfiguration)
    INDArray[] lstmLayer(INDArray x, INDArray cLast, INDArray yLast, INDArray maxTSLength, LSTMLayerWeights lSTMLayerWeights, LSTMLayerConfig lSTMLayerConfig)
    INDArray[] lstmLayer(INDArray x, LSTMLayerWeights lSTMLayerWeights, LSTMLayerConfig lSTMLayerConfig)
    
    SDVariable[] lstmLayer(SDVariable x, SDVariable cLast, SDVariable yLast, SDVariable maxTSLength, LSTMLayerWeights lSTMLayerWeights, LSTMLayerConfig lSTMLayerConfig)
    SDVariable[] lstmLayer(SDVariable x, LSTMLayerWeights lSTMLayerWeights, LSTMLayerConfig lSTMLayerConfig)
    SDVariable[] lstmLayer(String name, SDVariable x, SDVariable cLast, SDVariable yLast, SDVariable maxTSLength, LSTMLayerWeights lSTMLayerWeights, LSTMLayerConfig lSTMLayerConfig)
    SDVariable[] lstmLayer(String name, SDVariable x, LSTMLayerWeights lSTMLayerWeights, LSTMLayerConfig lSTMLayerConfig)
    INDArray lstmblock(INDArray maxTSLength, INDArray x, INDArray cLast, INDArray yLast, LSTMWeights lSTMWeights, LSTMConfiguration lSTMConfiguration)
    INDArray lstmblock(INDArray x, LSTMWeights lSTMWeights, LSTMConfiguration lSTMConfiguration)
    
    SDVariable lstmblock(SDVariable maxTSLength, SDVariable x, SDVariable cLast, SDVariable yLast, LSTMWeights lSTMWeights, LSTMConfiguration lSTMConfiguration)
    SDVariable lstmblock(SDVariable x, LSTMWeights lSTMWeights, LSTMConfiguration lSTMConfiguration)
    SDVariable lstmblock(String name, SDVariable maxTSLength, SDVariable x, SDVariable cLast, SDVariable yLast, LSTMWeights lSTMWeights, LSTMConfiguration lSTMConfiguration)
    SDVariable lstmblock(String name, SDVariable x, LSTMWeights lSTMWeights, LSTMConfiguration lSTMConfiguration)
    INDArray sru(INDArray x, INDArray initialC, INDArray mask, SRUWeights sRUWeights)
    INDArray sru(INDArray x, INDArray initialC, SRUWeights sRUWeights)
    
    SDVariable sru(SDVariable x, SDVariable initialC, SDVariable mask, SRUWeights sRUWeights)
    SDVariable sru(SDVariable x, SDVariable initialC, SRUWeights sRUWeights)
    SDVariable sru(String name, SDVariable x, SDVariable initialC, SDVariable mask, SRUWeights sRUWeights)
    SDVariable sru(String name, SDVariable x, SDVariable initialC, SRUWeights sRUWeights)
    INDArray sruCell(INDArray x, INDArray cLast, SRUWeights sRUWeights)
    
    SDVariable sruCell(SDVariable x, SDVariable cLast, SRUWeights sRUWeights)
    SDVariable sruCell(String name, SDVariable x, SDVariable cLast, SRUWeights sRUWeights)
    LSTMWeights
    LSTMConfiguration
    LSTMLayerWeights
    LSTMLayerConfig
    LSTMWeights
    LSTMConfiguration
    SRUWeights

    CNN

    Operation classes

    avgPooling2d

    2D Convolution layer operation - average pooling 2d

    • input (NUMERIC) - the input to average pooling 2d operation - 4d CNN (image) activations in NCHW format (shape [minibatch, channels, height, width]) or NHWC format (shape [minibatch, height, width, channels])

    • Pooling2DConfig - see

    avgPooling3d

    3D convolution layer operation - average pooling 3d

    • input (NUMERIC) - the input to average pooling 3d operation - 5d activations in NCDHW format (shape [minibatch, channels, depth, height, width]) or NDHWC format (shape [minibatch, depth, height, width, channels])

    • Pooling3DConfig - see

    batchToSpace

    Convolution 2d layer batch to space operation on 4d input.

    Reduces input batch dimension by rearranging data into a larger spatial dimensions

    • x (NUMERIC) - Input variable. 4d input

    • blocks - Block size, in the height/width dimension (Size: Exactly(count=2))

    • croppingTop - (Size: Exactly(count=2))

    col2Im

    col2im operation for use in 2D convolution operations. Outputs a 4d array with shape

    [minibatch, inputChannels, height, width]

    • in (NUMERIC) - Input - rank 6 input with shape [minibatch, inputChannels, kernelHeight, kernelWidth, outputHeight, outputWidth]

    • Conv2DConfig - see

    conv1d

    Conv1d operation.

    • input (NUMERIC) - the inputs to conv1d

    • weights (NUMERIC) - weights for conv1d op - rank 3 array with shape [kernelSize, inputChannels, outputChannels]

    • bias (NUMERIC) - bias for conv1d op - rank 1 array with shape [outputChannels]. May be null.

    conv2d

    2D Convolution operation with optional bias

    • layerInput (NUMERIC) - the input to max pooling 2d operation - 4d CNN (image) activations in NCHW format

    • weights (NUMERIC) - Weights for the convolution operation. 4 dimensions with format [kernelHeight, kernelWidth, inputChannels, outputChannels]

    • bias (NUMERIC) - Optional 1D bias array with shape [outputChannels]. May be null.

    conv3d

    Convolution 3D operation with optional bias

    • input (NUMERIC) - the input to average pooling 3d operation - 5d activations in NCDHW format (shape [minibatch, channels, depth, height, width]) or NDHWC format (shape [minibatch, depth, height, width, channels])

    • weights (NUMERIC) - Weights for conv3d. Rank 5 with shape [kernelDepth, kernelHeight, kernelWidth, inputChannels, outputChannels].

    • bias (NUMERIC) - Optional 1D bias array with shape [outputChannels]. May be null.

    deconv2d

    2D deconvolution operation with optional bias

    • layerInput (NUMERIC) - the input to deconvolution 2d operation - 4d CNN (image) activations in NCHW format (shape [minibatch, channels, height, width]) or NHWC format (shape [minibatch, height, width, channels])

    • weights (NUMERIC) - Weights for the 2d deconvolution operation. 4 dimensions with format [inputChannels, outputChannels, kernelHeight, kernelWidth]

    • bias (NUMERIC) - Optional 1D bias array with shape [outputChannels]. May be null.

    deconv3d

    3D CNN deconvolution operation with or without optional bias

    • input (NUMERIC) - Input array - shape [bS, iD, iH, iW, iC] (NDHWC) or [bS, iC, iD, iH, iW] (NCDHW)

    • weights (NUMERIC) - Weights array - shape [kD, kH, kW, oC, iC]

    • bias (NUMERIC) - Bias array - optional, may be null. If non-null, must have shape [outputChannels]

    depthToSpace

    Convolution 2d layer batch to space operation on 4d input. Reduces input channels dimension by rearranging data into a larger spatial dimensions Example: if input has shape [mb, 8, 2, 2] and block size is 2, then output size is [mb, 8/(2_2), 2_2, 2*2]

    = [mb, 2, 4, 4]

    • x (NUMERIC) - the input to depth to space pooling 2d operation - 4d activations in NCHW format (shape [minibatch, channels, height, width]) or NHWC format (shape [minibatch, height, width, channels])

    • blockSize - Block size, in the height/width dimension

    • dataFormat - Data format: "NCHW" or "NHWC"

    depthWiseConv2d

    Depth-wise 2D convolution operation with optional bias

    • layerInput (NUMERIC) - the input to max pooling 2d operation - 4d CNN (image) activations in NCHW format

    • depthWeights (NUMERIC) - Depth-wise conv2d weights. 4 dimensions with format [kernelHeight, kernelWidth, inputChannels, depthMultiplier]

    • bias (NUMERIC) - Optional 1D bias array with shape [outputChannels]. May be null.

    dilation2D

    TODO doc string

    • df (NUMERIC) -

    • weights (NUMERIC) - df

    • strides - weights (Size: Exactly(count=2))

    • rates - strides (Size: Exactly(count=2))

    extractImagePatches

    Extract image patches

    • input (NUMERIC) - Input array. Must be rank 4, with shape [minibatch, height, width, channels]

    • kH - Kernel height

    • kW - Kernel width

    • sH

    im2Col

    im2col operation for use in 2D convolution operations. Outputs a 6d array with shape

    [minibatch, inputChannels, kernelHeight, kernelWidth, outputHeight, outputWidth]

    • in (NUMERIC) - Input - rank 4 input with shape [minibatch, inputChannels, height, width]

    • Conv2DConfig - see

    localResponseNormalization

    2D convolution layer operation - local response normalization

    • input (NUMERIC) - the inputs to lrn

    • LocalResponseNormalizationConfig - see

    maxPoolWithArgmax

    2D Convolution layer operation - Max pooling on the input and outputs both max values and indices

    • input (NUMERIC) - the input to max pooling 2d operation - 4d CNN (image) activations in NCHW format (shape [minibatch, channels, height, width]) or NHWC format (shape [minibatch, height, width, channels])

    • Pooling2DConfig - see

    maxPooling2d

    2D Convolution layer operation - max pooling 2d

    • input (NUMERIC) - the input to max pooling 2d operation - 4d CNN (image) activations in NCHW format (shape [minibatch, channels, height, width]) or NHWC format (shape [minibatch, height, width, channels])

    • Pooling2DConfig - see

    maxPooling3d

    3D convolution layer operation - max pooling 3d operation.

    • input (NUMERIC) - the input to average pooling 3d operation - 5d activations in NCDHW format (shape [minibatch, channels, depth, height, width]) or NDHWC format (shape [minibatch, depth, height, width, channels])

    • Pooling3DConfig - see

    separableConv2d

    Separable 2D convolution operation with optional bias

    • layerInput (NUMERIC) - the input to max pooling 2d operation - 4d CNN (image) activations in NCHW format (shape [minibatch, channels, height, width]) or NHWC format (shape [minibatch, height, width, channels])

    • depthWeights (NUMERIC) - Separable conv2d depth weights. 4 dimensions with format [kernelHeight, kernelWidth, inputChannels, depthMultiplier]

    • pointWeights (NUMERIC) - Point weights, rank 4 with format [1, 1, inputChannels*depthMultiplier, outputChannels]. May be null

    spaceToBatch

    Convolution 2d layer space to batch operation on 4d input.

    Increases input batch dimension by rearranging data from spatial dimensions into batch dimension

    • x (NUMERIC) - Input variable. 4d input

    • blocks - Block size, in the height/width dimension (Size: Exactly(count=2))

    • paddingTop - Optional 2d int[] array for padding the result: values [[pad top, pad bottom], [pad left, pad right]] (Size: Exactly(count=2))

    spaceToDepth

    Convolution 2d layer space to depth operation on 4d input. Increases input channels (reduced spatial dimensions) by rearranging data into a larger channels dimension Example: if input has shape [mb, 2, 4, 4] and block size is 2, then output size is [mb, 8/(2_2), 2_2, 2*2]

    = [mb, 2, 4, 4]

    • x (NUMERIC) - the input to depth to space pooling 2d operation - 4d activations in NCHW format (shape [minibatch, channels, height, width]) or NHWC format (shape [minibatch, height, width, channels])

    • blockSize - Block size, in the height/width dimension

    • dataFormat - Data format: "NCHW" or "NHWC"

    upsampling2d

    Upsampling layer for 2D inputs.

    scale is used for both height and width dimensions.

    • input (NUMERIC) - Input in NCHW format

    • scale - The scale for both height and width dimensions.

    upsampling2d

    2D Convolution layer operation - Upsampling 2d

    • input (NUMERIC) - Input in NCHW format

    • scaleH - Scale to upsample in height dimension

    • scaleW - Scale to upsample in width dimension

    • nchw

    upsampling3d

    3D Convolution layer operation - Upsampling 3d

    • input (NUMERIC) - Input in NCHW format

    • ncdhw - If true: input is in NCDHW (minibatch, channels, depth, height, width) format. False: NDHWC format

    • scaleD - Scale to upsample in depth dimension

    Configuration Classes

    Conv1DConfig

    • k (LONG) - Kernel - default = -1

    • s (LONG) - stride - default = 1

    • p (LONG) - padding - default = 0

    • d (LONG) - dilation - default = 1

    Used in these ops:

    Conv2DConfig

    • kH (LONG) - Kernel height - default = -1

    • kW (LONG) - Kernel width - default = -1

    • sH (LONG) - Stride along height dimension - default = 1

    • sW

    Used in these ops:

    Conv3DConfig

    • kD (LONG) - Kernel depth - default = -1

    • kW (LONG) - Kernel width - default = -1

    • kH (LONG) - Kernel height - default = -1

    • sD

    Used in these ops:

    DeConv2DConfig

    • kH (LONG) - Kernel height - default = -1

    • kW (LONG) - Kernel width - default = -1

    • sH (LONG) - Stride along height dimension - default = 1

    • sW

    Used in these ops:

    DeConv3DConfig

    • kD (LONG) - Kernel depth - default = -1

    • kW (LONG) - Kernel width - default = -1

    • kH (LONG) - Kernel height - default = -1

    • sD

    Used in these ops:

    Pooling2DConfig

    • kH (LONG) - Kernel height - default = -1

    • kW (LONG) - Kernel width - default = -1

    • sH (LONG) - Stride along height dimension - default = 1

    • sW

    Used in these ops:

    Pooling3DConfig

    • kD (LONG) - Kernel depth - default = -1

    • kW (LONG) - Kernel width - default = -1

    • kH (LONG) - Kernel height - default = -1

    • sD

    Used in these ops:

    LocalResponseNormalizationConfig

    • alpha (NUMERIC) - alpha - default = 1

    • beta (NUMERIC) - beta - default = 0.5

    • bias (NUMERIC) - bias - default = 1

    • depth

    Used in these ops:

    INDArray avgPooling2d(INDArray input, Pooling2DConfig pooling2DConfig)
    
    SDVariable avgPooling2d(SDVariable input, Pooling2DConfig pooling2DConfig)
    SDVariable avgPooling2d(String name, SDVariable input, Pooling2DConfig pooling2DConfig)
    croppingBottom
    - (Size: Exactly(count=2))
    Conv1DConfig - see Conv1DConfig
    Conv2DConfig - see Conv2DConfig

    Conv3DConfig - see Conv3DConfig

    DeConv2DConfig - see DeConv2DConfig

    DeConv3DConfig - see DeConv3DConfig
    Conv2DConfig - see Conv2DConfig
  • isSameMode - isSameMode

  • - Stride height
  • sW - Stride width

  • rH - Rate height

  • rW - Rate width

  • sameMode - If true: use same mode padding. If false

  • bias (NUMERIC) - Optional bias, rank 1 with shape [outputChannels]. May be null.

  • Conv2DConfig - see Conv2DConfig

  • paddingBottom - Optional 2d int[] array for padding the result: values [[pad top, pad bottom], [pad left, pad right]] (Size: Exactly(count=2))
    - If true: input is in NCHW (minibatch, channels, height, width) format. False: NHWC format
    scaleH
    - Scale to upsample in height dimension
  • scaleW - Scale to upsample in width dimension

  • isSameMode (BOOL) - Same mode - default = true

  • dataFormat (STRING) - Data format - default = NCW

  • (LONG) - Stride along width dimension - default = 1
  • pH (LONG) - Padding along height dimension - default = 0

  • pW (LONG) - Padding along width dimension - default = 0

  • dH (LONG) - Dilation along height dimension - default = 1

  • dW (LONG) - Dilation along width dimension - default = 1

  • isSameMode (BOOL) - Same mode - default = true

  • dataFormat (STRING) - Data format - default = NCHW

  • (LONG) - Stride depth - default = 1
  • sW (LONG) - Stride width - default = 1

  • sH (LONG) - Stride height - default = 1

  • pD (LONG) - Padding depth - default = 0

  • pW (LONG) - Padding width - default = 0

  • pH (LONG) - Padding height - default = 0

  • dD (LONG) - Dilation depth - default = 1

  • dW (LONG) - Dilation width - default = 1

  • dH (LONG) - Dilation height - default = 1

  • biasUsed (BOOL) - biasUsed - default = false

  • isSameMode (BOOL) - Same mode - default = true

  • dataFormat (STRING) - Data format - default = NDHWC

  • (LONG) - Stride along width dimension - default = 1
  • pH (LONG) - Padding along height dimension - default = 0

  • pW (LONG) - Padding along width dimension - default = 0

  • dH (LONG) - Dilation along height dimension - default = 1

  • dW (LONG) - Dilation along width dimension - default = 1

  • isSameMode (BOOL) - Same mode - default = false

  • dataFormat (STRING) - Data format - default = NCHW

  • (LONG) - Stride depth - default = 1
  • sW (LONG) - Stride width - default = 1

  • sH (LONG) - Stride height - default = 1

  • pD (LONG) - Padding depth - default = 0

  • pW (LONG) - Padding width - default = 0

  • pH (LONG) - Padding height - default = 0

  • dD (LONG) - Dilation depth - default = 1

  • dW (LONG) - Dilation width - default = 1

  • dH (LONG) - Dilation height - default = 1

  • isSameMode (BOOL) - Same mode - default = false

  • dataFormat (STRING) - Data format - default = NCDHW

  • (LONG) - Stride along width dimension - default = 1
  • pH (LONG) - Padding along height dimension - default = 0

  • pW (LONG) - Padding along width dimension - default = 0

  • dH (LONG) - Dilation along height dimension - default = 1

  • dW (LONG) - Dilation along width dimension - default = 1

  • isSameMode (BOOL) - Same mode - default = true

  • dataFormat (STRING) - Data format - default = nchw

  • (LONG) - Stride depth - default = 1
  • sW (LONG) - Stride width - default = 1

  • sH (LONG) - Stride height - default = 1

  • pD (LONG) - Padding depth - default = 0

  • pW (LONG) - Padding width - default = 0

  • pH (LONG) - Padding height - default = 0

  • dD (LONG) - Dilation depth - default = 1

  • dW (LONG) - Dilation width - default = 1

  • dH (LONG) - Dilation height - default = 1

  • isSameMode (BOOL) - Same mode - default = true

  • dataFormat (STRING) - Data format - default = NCDHW

  • (INT) - depth - default = 5
    Pooling2DConfig
    Pooling3DConfig
    Conv2DConfig
    Conv2DConfig
    LocalResponseNormalizationConfig
    Pooling2DConfig
    Pooling2DConfig
    Pooling3DConfig
    conv1d
    col2Im
    conv2d
    depthWiseConv2d
    im2Col
    separableConv2d
    conv3d
    deconv2d
    deconv3d
    avgPooling2d
    maxPoolWithArgmax
    maxPooling2d
    avgPooling3d
    maxPooling3d
    localResponseNormalization
    INDArray avgPooling3d(INDArray input, Pooling3DConfig pooling3DConfig)
    
    SDVariable avgPooling3d(SDVariable input, Pooling3DConfig pooling3DConfig)
    SDVariable avgPooling3d(String name, SDVariable input, Pooling3DConfig pooling3DConfig)
    INDArray batchToSpace(INDArray x, int[] blocks, int[] croppingTop, int[] croppingBottom)
    
    SDVariable batchToSpace(SDVariable x, int[] blocks, int[] croppingTop, int[] croppingBottom)
    SDVariable batchToSpace(String name, SDVariable x, int[] blocks, int[] croppingTop, int[] croppingBottom)
    INDArray col2Im(INDArray in, Conv2DConfig conv2DConfig)
    
    SDVariable col2Im(SDVariable in, Conv2DConfig conv2DConfig)
    SDVariable col2Im(String name, SDVariable in, Conv2DConfig conv2DConfig)
    INDArray conv1d(INDArray input, INDArray weights, INDArray bias, Conv1DConfig conv1DConfig)
    INDArray conv1d(INDArray input, INDArray weights, Conv1DConfig conv1DConfig)
    
    SDVariable conv1d(SDVariable input, SDVariable weights, SDVariable bias, Conv1DConfig conv1DConfig)
    SDVariable conv1d(SDVariable input, SDVariable weights, Conv1DConfig conv1DConfig)
    SDVariable conv1d(String name, SDVariable input, SDVariable weights, SDVariable bias, Conv1DConfig conv1DConfig)
    SDVariable conv1d(String name, SDVariable input, SDVariable weights, Conv1DConfig conv1DConfig)
    INDArray conv2d(INDArray layerInput, INDArray weights, INDArray bias, Conv2DConfig conv2DConfig)
    INDArray conv2d(INDArray layerInput, INDArray weights, Conv2DConfig conv2DConfig)
    
    SDVariable conv2d(SDVariable layerInput, SDVariable weights, SDVariable bias, Conv2DConfig conv2DConfig)
    SDVariable conv2d(SDVariable layerInput, SDVariable weights, Conv2DConfig conv2DConfig)
    SDVariable conv2d(String name, SDVariable layerInput, SDVariable weights, SDVariable bias, Conv2DConfig conv2DConfig)
    SDVariable conv2d(String name, SDVariable layerInput, SDVariable weights, Conv2DConfig conv2DConfig)
    INDArray conv3d(INDArray input, INDArray weights, INDArray bias, Conv3DConfig conv3DConfig)
    INDArray conv3d(INDArray input, INDArray weights, Conv3DConfig conv3DConfig)
    
    SDVariable conv3d(SDVariable input, SDVariable weights, SDVariable bias, Conv3DConfig conv3DConfig)
    SDVariable conv3d(SDVariable input, SDVariable weights, Conv3DConfig conv3DConfig)
    SDVariable conv3d(String name, SDVariable input, SDVariable weights, SDVariable bias, Conv3DConfig conv3DConfig)
    SDVariable conv3d(String name, SDVariable input, SDVariable weights, Conv3DConfig conv3DConfig)
    INDArray deconv2d(INDArray layerInput, INDArray weights, INDArray bias, DeConv2DConfig deConv2DConfig)
    INDArray deconv2d(INDArray layerInput, INDArray weights, DeConv2DConfig deConv2DConfig)
    
    SDVariable deconv2d(SDVariable layerInput, SDVariable weights, SDVariable bias, DeConv2DConfig deConv2DConfig)
    SDVariable deconv2d(SDVariable layerInput, SDVariable weights, DeConv2DConfig deConv2DConfig)
    SDVariable deconv2d(String name, SDVariable layerInput, SDVariable weights, SDVariable bias, DeConv2DConfig deConv2DConfig)
    SDVariable deconv2d(String name, SDVariable layerInput, SDVariable weights, DeConv2DConfig deConv2DConfig)
    INDArray deconv3d(INDArray input, INDArray weights, INDArray bias, DeConv3DConfig deConv3DConfig)
    INDArray deconv3d(INDArray input, INDArray weights, DeConv3DConfig deConv3DConfig)
    
    SDVariable deconv3d(SDVariable input, SDVariable weights, SDVariable bias, DeConv3DConfig deConv3DConfig)
    SDVariable deconv3d(SDVariable input, SDVariable weights, DeConv3DConfig deConv3DConfig)
    SDVariable deconv3d(String name, SDVariable input, SDVariable weights, SDVariable bias, DeConv3DConfig deConv3DConfig)
    SDVariable deconv3d(String name, SDVariable input, SDVariable weights, DeConv3DConfig deConv3DConfig)
    INDArray depthToSpace(INDArray x, int blockSize, DataFormat dataFormat)
    
    SDVariable depthToSpace(SDVariable x, int blockSize, DataFormat dataFormat)
    SDVariable depthToSpace(String name, SDVariable x, int blockSize, DataFormat dataFormat)
    INDArray depthWiseConv2d(INDArray layerInput, INDArray depthWeights, INDArray bias, Conv2DConfig conv2DConfig)
    INDArray depthWiseConv2d(INDArray layerInput, INDArray depthWeights, Conv2DConfig conv2DConfig)
    
    SDVariable depthWiseConv2d(SDVariable layerInput, SDVariable depthWeights, SDVariable bias, Conv2DConfig conv2DConfig)
    SDVariable depthWiseConv2d(SDVariable layerInput, SDVariable depthWeights, Conv2DConfig conv2DConfig)
    SDVariable depthWiseConv2d(String name, SDVariable layerInput, SDVariable depthWeights, SDVariable bias, Conv2DConfig conv2DConfig)
    SDVariable depthWiseConv2d(String name, SDVariable layerInput, SDVariable depthWeights, Conv2DConfig conv2DConfig)
    INDArray dilation2D(INDArray df, INDArray weights, int[] strides, int[] rates, boolean isSameMode)
    
    SDVariable dilation2D(SDVariable df, SDVariable weights, int[] strides, int[] rates, boolean isSameMode)
    SDVariable dilation2D(String name, SDVariable df, SDVariable weights, int[] strides, int[] rates, boolean isSameMode)
    INDArray extractImagePatches(INDArray input, int kH, int kW, int sH, int sW, int rH, int rW, boolean sameMode)
    
    SDVariable extractImagePatches(SDVariable input, int kH, int kW, int sH, int sW, int rH, int rW, boolean sameMode)
    SDVariable extractImagePatches(String name, SDVariable input, int kH, int kW, int sH, int sW, int rH, int rW, boolean sameMode)
    INDArray im2Col(INDArray in, Conv2DConfig conv2DConfig)
    
    SDVariable im2Col(SDVariable in, Conv2DConfig conv2DConfig)
    SDVariable im2Col(String name, SDVariable in, Conv2DConfig conv2DConfig)
    INDArray localResponseNormalization(INDArray input, LocalResponseNormalizationConfig localResponseNormalizationConfig)
    
    SDVariable localResponseNormalization(SDVariable input, LocalResponseNormalizationConfig localResponseNormalizationConfig)
    SDVariable localResponseNormalization(String name, SDVariable input, LocalResponseNormalizationConfig localResponseNormalizationConfig)
    INDArray[] maxPoolWithArgmax(INDArray input, Pooling2DConfig pooling2DConfig)
    
    SDVariable[] maxPoolWithArgmax(SDVariable input, Pooling2DConfig pooling2DConfig)
    SDVariable[] maxPoolWithArgmax(String name, SDVariable input, Pooling2DConfig pooling2DConfig)
    INDArray maxPooling2d(INDArray input, Pooling2DConfig pooling2DConfig)
    
    SDVariable maxPooling2d(SDVariable input, Pooling2DConfig pooling2DConfig)
    SDVariable maxPooling2d(String name, SDVariable input, Pooling2DConfig pooling2DConfig)
    INDArray maxPooling3d(INDArray input, Pooling3DConfig pooling3DConfig)
    
    SDVariable maxPooling3d(SDVariable input, Pooling3DConfig pooling3DConfig)
    SDVariable maxPooling3d(String name, SDVariable input, Pooling3DConfig pooling3DConfig)
    INDArray separableConv2d(INDArray layerInput, INDArray depthWeights, INDArray pointWeights, INDArray bias, Conv2DConfig conv2DConfig)
    INDArray separableConv2d(INDArray layerInput, INDArray depthWeights, INDArray pointWeights, Conv2DConfig conv2DConfig)
    
    SDVariable separableConv2d(SDVariable layerInput, SDVariable depthWeights, SDVariable pointWeights, SDVariable bias, Conv2DConfig conv2DConfig)
    SDVariable separableConv2d(SDVariable layerInput, SDVariable depthWeights, SDVariable pointWeights, Conv2DConfig conv2DConfig)
    SDVariable separableConv2d(String name, SDVariable layerInput, SDVariable depthWeights, SDVariable pointWeights, SDVariable bias, Conv2DConfig conv2DConfig)
    SDVariable separableConv2d(String name, SDVariable layerInput, SDVariable depthWeights, SDVariable pointWeights, Conv2DConfig conv2DConfig)
    INDArray spaceToBatch(INDArray x, int[] blocks, int[] paddingTop, int[] paddingBottom)
    
    SDVariable spaceToBatch(SDVariable x, int[] blocks, int[] paddingTop, int[] paddingBottom)
    SDVariable spaceToBatch(String name, SDVariable x, int[] blocks, int[] paddingTop, int[] paddingBottom)
    INDArray spaceToDepth(INDArray x, int blockSize, DataFormat dataFormat)
    
    SDVariable spaceToDepth(SDVariable x, int blockSize, DataFormat dataFormat)
    SDVariable spaceToDepth(String name, SDVariable x, int blockSize, DataFormat dataFormat)
    INDArray upsampling2d(INDArray input, int scale)
    
    SDVariable upsampling2d(SDVariable input, int scale)
    SDVariable upsampling2d(String name, SDVariable input, int scale)
    INDArray upsampling2d(INDArray input, int scaleH, int scaleW, boolean nchw)
    
    SDVariable upsampling2d(SDVariable input, int scaleH, int scaleW, boolean nchw)
    SDVariable upsampling2d(String name, SDVariable input, int scaleH, int scaleW, boolean nchw)
    INDArray upsampling3d(INDArray input, boolean ncdhw, int scaleD, int scaleH, int scaleW)
    
    SDVariable upsampling3d(SDVariable input, boolean ncdhw, int scaleD, int scaleH, int scaleW)
    SDVariable upsampling3d(String name, SDVariable input, boolean ncdhw, int scaleD, int scaleH, int scaleW)

    NN

    CReLU

    Concatenates a ReLU which selects only the positive part of the activation with a ReLU which selects only the negative part of the activation. Note that as a result this non-linearity doubles the depth of the activations.

    • x (NUMERIC) - Input variable

    batchNorm

    Neural network batch normalization operation.

    For details, see

    • input (NUMERIC) - Input variable.

    • mean (NUMERIC) - Mean value. For 1d axis, this should match input.size(axis)

    • variance (NUMERIC) - Variance value. For 1d axis, this should match input.size(axis)

    biasAdd

    Bias addition operation: a special case of addition, typically used with CNN 4D activations and a 1D bias vector

    • input (NUMERIC) - 4d input variable

    • bias (NUMERIC) - 1d bias

    • nchw - The format - nchw=true means [minibatch, channels, height, width] format; nchw=false - [minibatch, height, width, channels].

      Unused for 2d inputs

    dotProductAttention

    This operation performs dot product attention on the given timeseries input with the given queries

    out = sum(similarity(k_i, q) * v_i)

    similarity(k, q) = softmax(k q) where x q is the dot product of x and q

    Optionally with normalization step:

    similarity(k, q) = softmax(k * q / sqrt(size(q))

    See also "Attention is all you need" (, p. 4, eq. 1)

    Note: This supports multiple queries at once, if only one query is available the queries vector still has to

    be 3D but can have queryCount = 1

    Note: keys and values usually is the same array. If you want to use it as the same array, simply pass it for

    both.

    Note: Queries, keys and values must either be all rank 3 or all rank 4 arrays. Mixing them doesn't work. The

    output rank will depend on the input rank.

    • queries (NUMERIC) - input 3D array "queries" of shape [batchSize, featureKeys, queryCount]

      or 4D array of shape [batchSize, numHeads, featureKeys, queryCount]

    • keys (NUMERIC) - input 3D array "keys" of shape [batchSize, featureKeys, timesteps]

      or 4D array of shape [batchSize, numHeads, featureKeys, timesteps]

    • values

    dropout

    Dropout operation

    • input (NUMERIC) - Input array

    • inputRetainProbability - Probability of retaining an input (set to 0 with probability 1-p)

    elu

    Element-wise exponential linear unit (ELU) function:

    out = x if x > 0

    out = a * (exp(x) - 1) if x <= 0

    with constant a = 1.0

    See:

    • x (NUMERIC) - Input variable

    gelu

    GELU activation function - Gaussian Error Linear Units

    For more details, see Gaussian Error Linear Units (GELUs) -

    This method uses the sigmoid approximation

    • x (NUMERIC) - Input variable

    hardSigmoid

    Element-wise hard sigmoid function:

    out[i] = 0 if in[i] <= -2.5

    out[1] = 0.2*in[i]+0.5 if -2.5 < in[i] < 2.5

    out[i] = 1 if in[i] >= 2.5

    • x (NUMERIC) - Input variable

    hardTanh

    Element-wise hard tanh function:

    out[i] = -1 if in[i] <= -1

    out[1] = in[i] if -1 < in[i] < 1

    out[i] = 1 if in[i] >= 1

    • x (NUMERIC) - Input variable

    hardTanhDerivative

    Derivative (dOut/dIn) of the element-wise hard Tanh function - hardTanh(INDArray)

    • x (NUMERIC) - Input variable

    layerNorm

    Apply Layer Normalization

    y = gain * standardize(x) + bias

    • input (NUMERIC) - Input variable

    • gain (NUMERIC) - Gain

    • bias (NUMERIC) - Bias

    • channelsFirst - For 2D input - unused. True for NCHW (minibatch, channels, height, width), false for NHWC data

    leakyRelu

    Element-wise leaky ReLU function:

    out = x if x >= 0.0

    out = alpha * x if x < cutoff

    Alpha value is most commonly set to 0.01

    • x (NUMERIC) - Input variable

    • alpha - Cutoff - commonly 0.01

    leakyReluDerivative

    Leaky ReLU derivative: dOut/dIn given input.

    • x (NUMERIC) - Input variable

    • alpha - Cutoff - commonly 0.01

    linear

    Linear layer operation: out = mmul(in,w) + bias

    Note that bias array is optional

    • input (NUMERIC) - Input data

    • weights (NUMERIC) - Weights variable, shape [nIn, nOut]

    • bias (NUMERIC) - Optional bias variable (may be null)

    logSigmoid

    Element-wise sigmoid function: out[i] = log(sigmoid(in[i]))

    • x (NUMERIC) - Input variable

    logSoftmax

    Log softmax activation

    • x (NUMERIC) -

    logSoftmax

    Log softmax activation

    • x (NUMERIC) - Input

    • dimension - Dimension along which to apply log softmax

    multiHeadDotProductAttention

    This performs multi-headed dot product attention on the given timeseries input

    out = concat(head_1, head_2, ..., head_n) * Wo

    head_i = dot_product_attention(Wq_i_q, Wk_i_k, Wv_i*v)

    Optionally with normalization when calculating the attention for each head.

    See also "Attention is all you need" (, pp. 4,5, "3.2.2 Multi-Head Attention")

    This makes use of dot_product_attention OP support for rank 4 inputs.

    see dotProductAttention(INDArray, INDArray, INDArray, INDArray, boolean, boolean)

    • queries (NUMERIC) - input 3D array "queries" of shape [batchSize, featureKeys, queryCount]

    • keys (NUMERIC) - input 3D array "keys" of shape [batchSize, featureKeys, timesteps]

    • values (NUMERIC) - input 3D array "values" of shape [batchSize, featureValues, timesteps]

    pad

    Padding operation

    • input (NUMERIC) - Input tensor

    • padding (NUMERIC) - Padding value

    • PadMode - Padding format - default = CONSTANT

    • constant

    preciseGelu

    GELU activation function - Gaussian Error Linear Units

    For more details, see Gaussian Error Linear Units (GELUs) -

    This method uses the precise method

    • x (NUMERIC) - Input variable

    prelu

    PReLU (Parameterized Rectified Linear Unit) operation. Like LeakyReLU with a learnable alpha:

    out[i] = in[i] if in[i] >= 0

    out[i] = in[i] * alpha[i] otherwise

    sharedAxes allows you to share learnable parameters along axes.

    For example, if the input has shape [batchSize, channels, height, width]

    and you want each channel to have its own cutoff, use sharedAxes = [2, 3] and an

    alpha with shape [channels].

    • input (NUMERIC) - Input data

    • alpha (NUMERIC) - The cutoff variable. Note that the batch dimension (the 0th, whether it is batch or not) should not be part of alpha.

    • sharedAxes - Which axes to share cutoff parameters along. (Size: AtLeast(min=1))

    relu

    Element-wise rectified linear function with specified cutoff:

    out[i] = in[i] if in[i] >= cutoff

    out[i] = 0 otherwise

    • x (NUMERIC) - Input

    • cutoff - Cutoff value for ReLU operation - x > cutoff ? x : 0. Usually 0

    relu6

    Element-wise "rectified linear 6" function with specified cutoff:

    out[i] = min(max(in, cutoff), 6)

    • x (NUMERIC) - Input

    • cutoff - Cutoff value for ReLU operation. Usually 0

    reluLayer

    ReLU (Rectified Linear Unit) layer operation: out = relu(mmul(in,w) + bias)

    Note that bias array is optional

    • input (NUMERIC) - Input data

    • weights (NUMERIC) - Weights variable

    • bias (NUMERIC) - Optional bias variable (may be null)

    selu

    Element-wise SeLU function - Scaled exponential Lineal Unit: see

    out[i] = scale alpha (exp(in[i])-1) if in[i]>0, or 0 if in[i] <= 0

    Uses default scale and alpha values.

    • x (NUMERIC) - Input variable

    sigmoid

    Element-wise sigmoid function: out[i] = 1.0/(1+exp(-in[i]))

    • x (NUMERIC) - Input variable

    sigmoidDerivative

    Element-wise sigmoid function derivative: dL/dIn given input and dL/dOut

    • x (NUMERIC) - Input Variable

    • wrt (NUMERIC) - Gradient at the output - dL/dOut. Must have same shape as the input

    softmax

    Softmax activation, along the specified dimension

    • x (NUMERIC) - Input

    • dimension - Dimension along which to apply softmax - default = -1

    softmaxDerivative

    Softmax derivative function

    • x (NUMERIC) - Softmax input

    • wrt (NUMERIC) - Gradient at output, dL/dx

    • dimension - Softmax dimension

    softplus

    Element-wise softplus function: out = log(exp(x) + 1)

    • x (NUMERIC) - Input variable

    softsign

    Element-wise softsign function: out = x / (abs(x) + 1)

    • x (NUMERIC) - Input variable

    softsignDerivative

    Element-wise derivative (dOut/dIn) of the softsign function softsign(INDArray)

    • x (NUMERIC) - Input variable

    swish

    Element-wise "swish" function: out = x _sigmoid(b_x) with b=1.0

    See:

    • x (NUMERIC) - Input variable

    tanh

    Elementwise tanh (hyperbolic tangent) operation: out = tanh(x)

    • x (NUMERIC) - Input variable

    INDArray CReLU(INDArray x)
    
    SDVariable CReLU(SDVariable x)
    SDVariable CReLU(String name, SDVariable x)
    gamma
    (NUMERIC) - Gamma value. For 1d axis, this should match input.size(axis)
  • beta (NUMERIC) - Beta value. For 1d axis, this should match input.size(axis)

  • epsilon - Epsilon constant for numerical stability (to avoid division by 0)

  • axis - For 2d CNN activations: 1 for NCHW format activations, or 3 for NHWC format activations.

    For 3d CNN activations: 1 for NCDHW format, 4 for NDHWC

    For 1d/RNN activations: 1 for NCW format, 2 for NWC (Size: AtLeast(min=1))

  • (NUMERIC) - input 3D array "values" of shape [batchSize, featureValues, timesteps]

    or 4D array of shape [batchSize, numHeads, featureValues, timesteps]

  • mask (NUMERIC) - OPTIONAL; array that defines which values should be skipped of shape [batchSize, timesteps]

  • scaled - normalization, false -> do not apply normalization, true -> apply normalization

  • dimensions - Dimensions to perform layer norm over - dimension=1 for 2d/MLP data, dimension=1,2,3 for CNNs (Size: AtLeast(min=1))

  • Wq (NUMERIC) - input query projection weights of shape [numHeads, projectedKeys, featureKeys]
  • Wk (NUMERIC) - input key projection weights of shape [numHeads, projectedKeys, featureKeys]

  • Wv (NUMERIC) - input value projection weights of shape [numHeads, projectedValues, featureValues]

  • Wo (NUMERIC) - output projection weights of shape [numHeads * projectedValues, outSize]

  • mask (NUMERIC) - OPTIONAL; array that defines which values should be skipped of shape [batchSize, timesteps]

  • scaled - normalization, false -> do not apply normalization, true -> apply normalization

  • - Padding constant
    https://arxiv.org/abs/1502.03167
    https://arxiv.org/abs/1706.03762
    https://arxiv.org/abs/1511.07289
    https://arxiv.org/abs/1606.08415
    https://arxiv.org/abs/1706.03762
    https://arxiv.org/abs/1606.08415
    Self-Normalizing Neural Networks
    https://arxiv.org/abs/1710.05941
    INDArray batchNorm(INDArray input, INDArray mean, INDArray variance, INDArray gamma, INDArray beta, double epsilon, int[] axis)
    
    SDVariable batchNorm(SDVariable input, SDVariable mean, SDVariable variance, SDVariable gamma, SDVariable beta, double epsilon, int[] axis)
    SDVariable batchNorm(String name, SDVariable input, SDVariable mean, SDVariable variance, SDVariable gamma, SDVariable beta, double epsilon, int[] axis)
    INDArray biasAdd(INDArray input, INDArray bias, boolean nchw)
    
    SDVariable biasAdd(SDVariable input, SDVariable bias, boolean nchw)
    SDVariable biasAdd(String name, SDVariable input, SDVariable bias, boolean nchw)
    INDArray dotProductAttention(INDArray queries, INDArray keys, INDArray values, INDArray mask, boolean scaled)
    
    SDVariable dotProductAttention(SDVariable queries, SDVariable keys, SDVariable values, SDVariable mask, boolean scaled)
    SDVariable dotProductAttention(String name, SDVariable queries, SDVariable keys, SDVariable values, SDVariable mask, boolean scaled)
    INDArray dropout(INDArray input, double inputRetainProbability)
    
    SDVariable dropout(SDVariable input, double inputRetainProbability)
    SDVariable dropout(String name, SDVariable input, double inputRetainProbability)
    INDArray elu(INDArray x)
    
    SDVariable elu(SDVariable x)
    SDVariable elu(String name, SDVariable x)
    INDArray gelu(INDArray x)
    
    SDVariable gelu(SDVariable x)
    SDVariable gelu(String name, SDVariable x)
    INDArray hardSigmoid(INDArray x)
    
    SDVariable hardSigmoid(SDVariable x)
    SDVariable hardSigmoid(String name, SDVariable x)
    INDArray hardTanh(INDArray x)
    
    SDVariable hardTanh(SDVariable x)
    SDVariable hardTanh(String name, SDVariable x)
    INDArray hardTanhDerivative(INDArray x)
    
    SDVariable hardTanhDerivative(SDVariable x)
    SDVariable hardTanhDerivative(String name, SDVariable x)
    INDArray layerNorm(INDArray input, INDArray gain, INDArray bias, boolean channelsFirst, int[] dimensions)
    INDArray layerNorm(INDArray input, INDArray gain, boolean channelsFirst, int[] dimensions)
    
    SDVariable layerNorm(SDVariable input, SDVariable gain, SDVariable bias, boolean channelsFirst, int[] dimensions)
    SDVariable layerNorm(SDVariable input, SDVariable gain, boolean channelsFirst, int[] dimensions)
    SDVariable layerNorm(String name, SDVariable input, SDVariable gain, SDVariable bias, boolean channelsFirst, int[] dimensions)
    SDVariable layerNorm(String name, SDVariable input, SDVariable gain, boolean channelsFirst, int[] dimensions)
    INDArray leakyRelu(INDArray x, double alpha)
    
    SDVariable leakyRelu(SDVariable x, double alpha)
    SDVariable leakyRelu(String name, SDVariable x, double alpha)
    INDArray leakyReluDerivative(INDArray x, double alpha)
    
    SDVariable leakyReluDerivative(SDVariable x, double alpha)
    SDVariable leakyReluDerivative(String name, SDVariable x, double alpha)
    INDArray linear(INDArray input, INDArray weights, INDArray bias)
    
    SDVariable linear(SDVariable input, SDVariable weights, SDVariable bias)
    SDVariable linear(String name, SDVariable input, SDVariable weights, SDVariable bias)
    INDArray logSigmoid(INDArray x)
    
    SDVariable logSigmoid(SDVariable x)
    SDVariable logSigmoid(String name, SDVariable x)
    INDArray logSoftmax(INDArray x)
    
    SDVariable logSoftmax(SDVariable x)
    SDVariable logSoftmax(String name, SDVariable x)
    INDArray logSoftmax(INDArray x, int dimension)
    
    SDVariable logSoftmax(SDVariable x, int dimension)
    SDVariable logSoftmax(String name, SDVariable x, int dimension)
    INDArray multiHeadDotProductAttention(INDArray queries, INDArray keys, INDArray values, INDArray Wq, INDArray Wk, INDArray Wv, INDArray Wo, INDArray mask, boolean scaled)
    
    SDVariable multiHeadDotProductAttention(SDVariable queries, SDVariable keys, SDVariable values, SDVariable Wq, SDVariable Wk, SDVariable Wv, SDVariable Wo, SDVariable mask, boolean scaled)
    SDVariable multiHeadDotProductAttention(String name, SDVariable queries, SDVariable keys, SDVariable values, SDVariable Wq, SDVariable Wk, SDVariable Wv, SDVariable Wo, SDVariable mask, boolean scaled)
    INDArray pad(INDArray input, INDArray padding, PadMode PadMode, double constant)
    INDArray pad(INDArray input, INDArray padding, double constant)
    
    SDVariable pad(SDVariable input, SDVariable padding, PadMode PadMode, double constant)
    SDVariable pad(SDVariable input, SDVariable padding, double constant)
    SDVariable pad(String name, SDVariable input, SDVariable padding, PadMode PadMode, double constant)
    SDVariable pad(String name, SDVariable input, SDVariable padding, double constant)
    INDArray preciseGelu(INDArray x)
    
    SDVariable preciseGelu(SDVariable x)
    SDVariable preciseGelu(String name, SDVariable x)
    INDArray prelu(INDArray input, INDArray alpha, int[] sharedAxes)
    
    SDVariable prelu(SDVariable input, SDVariable alpha, int[] sharedAxes)
    SDVariable prelu(String name, SDVariable input, SDVariable alpha, int[] sharedAxes)
    INDArray relu(INDArray x, double cutoff)
    
    SDVariable relu(SDVariable x, double cutoff)
    SDVariable relu(String name, SDVariable x, double cutoff)
    INDArray relu6(INDArray x, double cutoff)
    
    SDVariable relu6(SDVariable x, double cutoff)
    SDVariable relu6(String name, SDVariable x, double cutoff)
    INDArray reluLayer(INDArray input, INDArray weights, INDArray bias)
    
    SDVariable reluLayer(SDVariable input, SDVariable weights, SDVariable bias)
    SDVariable reluLayer(String name, SDVariable input, SDVariable weights, SDVariable bias)
    INDArray selu(INDArray x)
    
    SDVariable selu(SDVariable x)
    SDVariable selu(String name, SDVariable x)
    INDArray sigmoid(INDArray x)
    
    SDVariable sigmoid(SDVariable x)
    SDVariable sigmoid(String name, SDVariable x)
    INDArray sigmoidDerivative(INDArray x, INDArray wrt)
    
    SDVariable sigmoidDerivative(SDVariable x, SDVariable wrt)
    SDVariable sigmoidDerivative(String name, SDVariable x, SDVariable wrt)
    INDArray softmax(INDArray x, int dimension)
    INDArray softmax(INDArray x)
    
    SDVariable softmax(SDVariable x, int dimension)
    SDVariable softmax(SDVariable x)
    SDVariable softmax(String name, SDVariable x, int dimension)
    SDVariable softmax(String name, SDVariable x)
    INDArray softmaxDerivative(INDArray x, INDArray wrt, int dimension)
    
    SDVariable softmaxDerivative(SDVariable x, SDVariable wrt, int dimension)
    SDVariable softmaxDerivative(String name, SDVariable x, SDVariable wrt, int dimension)
    INDArray softplus(INDArray x)
    
    SDVariable softplus(SDVariable x)
    SDVariable softplus(String name, SDVariable x)
    INDArray softsign(INDArray x)
    
    SDVariable softsign(SDVariable x)
    SDVariable softsign(String name, SDVariable x)
    INDArray softsignDerivative(INDArray x)
    
    SDVariable softsignDerivative(SDVariable x)
    SDVariable softsignDerivative(String name, SDVariable x)
    INDArray swish(INDArray x)
    
    SDVariable swish(SDVariable x)
    SDVariable swish(String name, SDVariable x)
    INDArray tanh(INDArray x)
    
    SDVariable tanh(SDVariable x)
    SDVariable tanh(String name, SDVariable x)

    Base Operations

    These ops are generally available directly on SameDiff instances. Due to an oversight before the release, this ops aren't also available on Nd4j. To use the INDArray variants of these operations, you will have to instantiate a NDBase instance.

    all

    Boolean and array reduction operation, optionally along specified dimensions

    • x (NDARRAY) - Input variable

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    any

    Boolean or array reduction operation, optionally along specified dimensions

    • x (NDARRAY) - Input variable

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    argmax

    Argmax array reduction operation, optionally along specified dimensions.

    Output values are the index of the maximum value of each slice along the specified dimension.

    Note that if keepDims = true, the output variable has the same rank as the input variable,

    with the reduced dimensions having size 1. This can be useful for later broadcast operations (such as subtracting

    the mean along a dimension).

    Example: if input has shape [a,b,c] and dimensions=[1] then output has shape:

    keepDims = true: [a,1,c]

    keepDims = false: [a,c]

    • in (NUMERIC) - Input variable

    • keepDims - If true: keep the dimensions that are reduced on (as size 1). False: remove the reduction dimensions - default = false

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    argmin

    Argmin array reduction operation, optionally along specified dimensions.

    Output values are the index of the minimum value of each slice along the specified dimension.

    Note that if keepDims = true, the output variable has the same rank as the input variable,

    with the reduced dimensions having size 1. This can be useful for later broadcast operations (such as subtracting

    the mean along a dimension).

    Example: if input has shape [a,b,c] and dimensions=[1] then output has shape:

    keepDims = true: [a,1,c]

    keepDims = false: [a,c]

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    • in (NUMERIC) - Input variable

    • keepDims - If true: keep the dimensions that are reduced on (as size 1). False: remove the reduction dimensions - default = false

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    batchMmul

    Matrix multiply a batch of matrices. matricesA and matricesB have to be arrays of same

    length and each pair taken from these sets has to have dimensions (M, N) and (N, K),

    respectively. If transposeA is true, matrices from matricesA will have shape (N, M) instead.

    Likewise, if transposeB is true, matrices from matricesB will have shape (K, N).

    The result of this operation will be a batch of multiplied matrices. The

    result has the same length as both input batches and each output matrix is of shape (M, K).

    • inputsA (NUMERIC) - First array of input matrices, all of shape (M, N) or (N, M)

    • inputsB (NUMERIC) - Second array of input matrices, all of shape (N, K) or (K, N)

    • transposeA - Whether to transpose A arrays or not - default = false

    castTo

    Cast the array to a new datatype - for example, Integer -> Float

    • arg (NDARRAY) - Input variable to cast

    • datatype - Datatype to cast to

    concat

    Concatenate a set of inputs along the specified dimension.

    Note that inputs must have identical rank and identical dimensions, other than the dimension to stack on.

    For example, if 2 inputs have shape [a, x, c] and [a, y, c] and dimension = 1, then the output has shape [a, x+y, c]

    • inputs (NUMERIC) - Input variables

    • dimension - Dimension to concatenate on

    cumprod

    Cumulative product operation.

    For input: [ a, b, c], output is:

    exclusive=false, reverse=false: [a, a_b, a_b*c]

    exclusive=true, reverse=false, [0, a, a*b]

    exclusive=false, reverse=true: [a_b_c, b*c, c]

    exclusive=true, reverse=true: [b*c, c, 0]

    • in (NUMERIC) - Input variable

    • exclusive - If true: exclude the first value - default = false

    • reverse - If true: reverse the direction of the accumulation - default = false

    cumsum

    Cumulative sum operation.

    For input: [ a, b, c], output is:

    exclusive=false, reverse=false: [a, a+b, a+b+c]

    exclusive=true, reverse=false, [0, a, a+b]

    exclusive=false, reverse=true: [a+b+c, b+c, c]

    exclusive=true, reverse=true: [b+c, c, 0]

    • in (NUMERIC) - Input variable

    • exclusive - If true: exclude the first value - default = false

    • reverse - If true: reverse the direction of the accumulation - default = false

    dot

    Pairwise dot product reduction along dimension

    output = sum(i=0 ... size(dim)-1) x[i] * y[i]

    • x (NUMERIC) - first input

    • y (NUMERIC) - second input

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    dynamicPartition

    Dynamically partition the input variable values into the specified number of paritions, using the indices.

    Example:

    • x (NUMERIC) - Input variable

    • partitions (INT) - 1D input with values 0 to numPartitions-1

    • numPartitions - Number of partitions, >= 1

    dynamicStitch

    Dynamically merge the specified input arrays into a single array, using the specified indices

    • indices (INT) - Indices to use when merging. Must be >= 1, same length as input variables

    • x (NUMERIC) - Input variables.

    eq

    Equals operation: elementwise x == y

    Return boolean array with values true where satisfied, or false otherwise.

    • x (NUMERIC) - Input array

    • y - Double value argument to use in operation

    eq

    Equal to operation: elementwise x == y

    If x and y arrays have equal shape, the output shape is the same as these inputs.

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    Return boolean array with values true where satisfied, or false otherwise.

    • x (NUMERIC) - Input 1

    • y (NUMERIC) - Input 2

    expandDims

    Reshape the input by adding a 1 at the specified location.

    For example, if input has shape [a, b], then output shape is:

    axis = 0: [1, a, b]

    axis = 1: [a, 1, b]

    axis = 2: [a, b, 1]

    • x (NDARRAY) - Input variable

    • axis - Axis to expand

    fill

    Generate an output variable with the specified (dynamic) shape with all elements set to the specified value

    • shape (INT) - Shape: must be a 1D array/variable

    • dataType - Datatype of the output array

    • value - Value to set all elements to

    gather

    Gather slices from the input variable where the indices are specified as fixed int[] values.

    Output shape is same as input shape, except for axis dimension, which has size equal to indices.length.

    • df (NUMERIC) - Input variable

    • indices - Indices to get (Size: AtLeast(min=1))

    • axis - Axis that the indices refer to

    gather

    Gather slices from the input variable where the indices are specified as dynamic array values.

    Output shape is same as input shape, except for axis dimension, which has size equal to indices.length.

    • df (NUMERIC) - Input variable

    • indices (INT) - Indices to get slices for. Rank 0 or 1 input

    • axis - Axis that the indices refer to

    gatherNd

    Gather slices from df with shape specified by indices.

    • df (NUMERIC) -

    • indices (NUMERIC) -

    gt

    Greater than operation: elementwise x > y

    Return boolean array with values true where satisfied, or false otherwise.

    • x (NUMERIC) - Input array

    • y - Double value argument to use in operation

    gt

    Greater than operation: elementwise x > y

    If x and y arrays have equal shape, the output shape is the same as these inputs.

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    Return boolean array with values true where satisfied, or false otherwise.

    • x (NUMERIC) - Input 1

    • y (NUMERIC) - Input 2

    gte

    Greater than or equals operation: elementwise x >= y

    Return boolean array with values true where satisfied, or false otherwise.

    • x (NUMERIC) - Input array

    • y - Double value argument to use in operation

    gte

    Greater than or equal to operation: elementwise x >= y

    If x and y arrays have equal shape, the output shape is the same as these inputs.

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    Return boolean array with values true where satisfied, or false otherwise.

    • x (NUMERIC) - Input 1

    • y (NUMERIC) - Input 2

    identity

    Elementwise identity operation: out = x

    • input (NUMERIC) - Input variable

    invertPermutation

    Compute the inverse permutation indices for a permutation operation

    Example: if input is [2, 0, 1] then output is [1, 2, 0]

    The idea is that x.permute(input).permute(invertPermutation(input)) == x

    • input (INT) - 1D indices for permutation

    isNumericTensor

    Is the director a numeric tensor? In the current version of ND4J/SameDiff, this always returns true/1

    • x (NUMERIC) - Input variable

    linspace

    Create a new 1d array with values evenly spaced between values 'start' and 'stop'

    For example, linspace(start=3.0, stop=4.0, number=3) will generate [3.0, 3.5, 4.0]

    • dataType - Data type of the output array

    • start - Start value

    • stop - Stop value

    • number - Number of values to generate

    linspace

    Create a new 1d array with values evenly spaced between values 'start' and 'stop'

    For example, linspace(start=3.0, stop=4.0, number=3) will generate [3.0, 3.5, 4.0]

    • start (NUMERIC) - Start value

    • stop (NUMERIC) - Stop value

    • number (LONG) - Number of values to generate

    • dataType

    lt

    Less than operation: elementwise x < y

    Return boolean array with values true where satisfied, or false otherwise.

    • x (NUMERIC) - Input array

    • y - Double value argument to use in operation

    lt

    Less than operation: elementwise x < y

    If x and y arrays have equal shape, the output shape is the same as these inputs.

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    Return boolean array with values true where satisfied, or false otherwise.

    • x (NUMERIC) - Input 1

    • y (NUMERIC) - Input 2

    lte

    Less than or equals operation: elementwise x <= y

    Return boolean array with values true where satisfied, or false otherwise.

    • x (NUMERIC) - Input array

    • y - Double value argument to use in operation

    lte

    Less than or equal to operation: elementwise x <= y

    If x and y arrays have equal shape, the output shape is the same as these inputs.

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    Return boolean array with values true where satisfied, or false otherwise.

    • x (NUMERIC) - Input 1

    • y (NUMERIC) - Input 2

    matchCondition

    Returns a boolean mask of equal shape to the input, where the condition is satisfied - value 1 where satisfied, 0 otherwise

    • in (NUMERIC) - Input

    • condition - Condition

    matchConditionCount

    Returns a count of the number of elements that satisfy the condition

    • in (NUMERIC) - Input

    • condition - Condition

    matchConditionCount

    Returns a count of the number of elements that satisfy the condition (for each slice along the specified dimensions)

    Note that if keepDims = true, the output variable has the same rank as the input variable,

    with the reduced dimensions having size 1. This can be useful for later broadcast operations (such as subtracting

    the mean along a dimension).

    Example: if input has shape [a,b,c] and dimensions=[1] then output has shape:

    keepDims = true: [a,1,c]

    keepDims = false: [a,c]

    • in (NUMERIC) - Input variable

    • condition - Condition

    • keepDim - If true: keep the dimensions that are reduced on (as size 1). False: remove the reduction dimensions - default = false

    max

    Max array reduction operation, optionally along specified dimensions

    Note that if keepDims = true, the output variable has the same rank as the input variable,

    with the reduced dimensions having size 1. This can be useful for later broadcast operations (such as subtracting

    the mean along a dimension).

    Example: if input has shape [a,b,c] and dimensions=[1] then output has shape:

    keepDims = true: [a,1,c]

    keepDims = false: [a,c]

    • x (NUMERIC) - Input variable

    • keepDims - If true: keep the dimensions that are reduced on (as size 1). False: remove the reduction dimensions - default = false

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    max

    Element-wise maximum operation: out[i] = max(first[i], second[i])

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    • first (NUMERIC) - First input array

    • second (NUMERIC) - Second input array

    mean

    Mean (average) array reduction operation, optionally along specified dimensions

    Note that if keepDims = true, the output variable has the same rank as the input variable,

    with the reduced dimensions having size 1. This can be useful for later broadcast operations (such as subtracting

    the mean along a dimension).

    Example: if input has shape [a,b,c] and dimensions=[1] then output has shape:

    keepDims = true: [a,1,c]

    keepDims = false: [a,c]

    • x (NUMERIC) - Input variable

    • keepDims - If true: keep the dimensions that are reduced on (as size 1). False: remove the reduction dimensions - default = false

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    merge

    The merge operation is a control operation that forwards the either of the inputs to the output, when

    the first of them becomes available. If both are available, the output is undefined (either input could

    be forwarded to the output)

    • x (NUMERIC) - Input variable

    • y (NUMERIC) - Input variable

    min

    Minimum array reduction operation, optionally along specified dimensions. out = min(in)

    Note that if keepDims = true, the output variable has the same rank as the input variable,

    with the reduced dimensions having size 1. This can be useful for later broadcast operations (such as subtracting

    the mean along a dimension).

    Example: if input has shape [a,b,c] and dimensions=[1] then output has shape:

    keepDims = true: [a,1,c]

    keepDims = false: [a,c]

    • x (NUMERIC) - Input variable

    • keepDims - If true: keep the dimensions that are reduced on (as size 1). False: remove the reduction dimensions - default = false

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    min

    Element-wise minimum operation: out[i] = min(first[i], second[i])

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    • first (NUMERIC) - First input array

    • second (NUMERIC) - Second input array

    mmul

    Matrix multiplication: out = mmul(x,y)

    Supports specifying transpose argument to perform operation such as mmul(a^T, b), etc.

    • x (NUMERIC) - First input variable

    • y (NUMERIC) - Second input variable

    • transposeX - Transpose x (first argument) - default = false

    • transposeY

    neq

    Not equals operation: elementwise x != y

    Return boolean array with values true where satisfied, or false otherwise.

    • x (NUMERIC) - Input array

    • y - Double value argument to use in operation

    neq

    Not equal to operation: elementwise x != y

    If x and y arrays have equal shape, the output shape is the same as these inputs.

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    Return boolean array with values true where satisfied, or false otherwise.

    • x (NUMERIC) - Input 1

    • y (NUMERIC) - Input 2

    norm1

    Norm1 (L1 norm) reduction operation: The output contains the L1 norm for each tensor/subset along the specified dimensions:

    out = sum_i abs(x[i])

    Note that if keepDims = true, the output variable has the same rank as the input variable,

    with the reduced dimensions having size 1. This can be useful for later broadcast operations (such as subtracting

    the mean along a dimension).

    Example: if input has shape [a,b,c] and dimensions=[1] then output has shape:

    keepDims = true: [a,1,c]

    keepDims = false: [a,c]

    • x (NUMERIC) - Input variable

    • keepDims - If true: keep the dimensions that are reduced on (as size 1). False: remove the reduction dimensions - default = false

    • dimensions - dimensions to reduce over (Size: AtLeast(min=0))

    norm2

    Norm2 (L2 norm) reduction operation: The output contains the L2 norm for each tensor/subset along the specified dimensions:

    out = sqrt(sum_i x[i]^2)

    Note that if keepDims = true, the output variable has the same rank as the input variable,

    with the reduced dimensions having size 1. This can be useful for later broadcast operations (such as subtracting

    the mean along a dimension).

    Example: if input has shape [a,b,c] and dimensions=[1] then output has shape:

    keepDims = true: [a,1,c]

    keepDims = false: [a,c]

    • x (NUMERIC) - Input variable

    • keepDims - If true: keep the dimensions that are reduced on (as size 1). False: remove the reduction dimensions - default = false

    • dimensions - dimensions dimensions to reduce over (Size: AtLeast(min=0))

    normmax

    Max norm (infinity norm) reduction operation: The output contains the max norm for each tensor/subset along the

    specified dimensions:

    out = max(abs(x[i]))

    Note that if keepDims = true, the output variable has the same rank as the input variable,

    with the reduced dimensions having size 1. This can be useful for later broadcast operations (such as subtracting

    the mean along a dimension).

    Example: if input has shape [a,b,c] and dimensions=[1] then output has shape:

    keepDims = true: [a,1,c]

    keepDims = false: [a,c]

    • x (NUMERIC) - Input variable

    • keepDims - If true: keep the dimensions that are reduced on (as size 1). False: remove the reduction dimensions - default = false

    • dimensions - dimensions to reduce over (Size: AtLeast(min=0))

    oneHot

    Convert the array to a one-hot array with walues and for each entry

    If input has shape [ a, ..., n] then output has shape [ a, ..., n, depth],

    with {out[i, ..., j, in[i,...,j]] with other values being set to

    • indices (NUMERIC) - Indices - value 0 to depth-1

    • depth - Number of classes

    • axis -

    • on -

    oneHot

    Convert the array to a one-hot array with walues 0 and 1 for each entry

    If input has shape [ a, ..., n] then output has shape [ a, ..., n, depth],

    with out[i, ..., j, in[i,...,j]] = 1 with other values being set to 0

    see oneHot(SDVariable, int, int, double, double)

    • indices (NUMERIC) - Indices - value 0 to depth-1

    • depth - Number of classes

    onesLike

    Return a variable of all 1s, with the same shape as the input variable. Note that this is dynamic:

    if the input shape changes in later execution, the returned variable's shape will also be updated

    • input (NUMERIC) - Input INDArray

    onesLike

    As per onesLike(String, SDVariable) but the output datatype may be specified

    • input (NUMERIC) -

    • dataType -

    permute

    Array permutation operation: permute the dimensions according to the specified permutation indices.

    Example: if input has shape [a,b,c] and dimensions = [2,0,1] the output has shape [c,a,b]

    • x (NUMERIC) - Input variable

    • dimensions (INT) - Permute dimensions

    permute

    Array permutation operation: permute the dimensions according to the specified permutation indices.

    Example: if input has shape [a,b,c] and dimensions = [2,0,1] the output has shape [c,a,b]

    • x (NUMERIC) - Input variable

    • dimensions - (Size: AtLeast(min=0))

    prod

    Product array reduction operation, optionally along specified dimensions

    Note that if keepDims = true, the output variable has the same rank as the input variable,

    with the reduced dimensions having size 1. This can be useful for later broadcast operations (such as subtracting

    the mean along a dimension).

    Example: if input has shape [a,b,c] and dimensions=[1] then output has shape:

    keepDims = true: [a,1,c]

    keepDims = false: [a,c]

    • x (NUMERIC) - Input variable

    • keepDims - If true: keep the dimensions that are reduced on (as size 1). False: remove the reduction dimensions - default = false

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    range

    Create a new variable with a 1d array, where the values start at from and increment by step

    up to (but not including) limit.

    For example, range(1.0, 3.0, 0.5) will return [1.0, 1.5, 2.0, 2.5]

    • from - Initial/smallest value

    • to - Largest value (exclusive)

    • step - Step size

    • dataType -

    range

    Create a new variable with a 1d array, where the values start at from and increment by step

    up to (but not including) limit.

    For example, range(1.0, 3.0, 0.5) will return [1.0, 1.5, 2.0, 2.5]

    • from (NUMERIC) - Initial/smallest value

    • to (NUMERIC) - Largest value (exclusive)

    • step (NUMERIC) - Step size

    • dataType

    rank

    Returns the rank (number of dimensions, i.e., length(shape)) of the specified INDArray as a 0D scalar variable

    • in (NUMERIC) - Input variable

    replaceWhere

    Element-wise replace where condition:

    out[i] = from[i] if condition(update[i]) is satisfied, or

    out[i] = update[i] if condition(update[i]) is NOT satisfied

    • update (NUMERIC) - Source array

    • from (NUMERIC) - Replacement values array (used conditionally). Must be same shape as 'update' array

    • condition - Condition to check on update array elements

    replaceWhere

    Element-wise replace where condition:

    out[i] = value if condition(update[i]) is satisfied, or

    out[i] = update[i] if condition(update[i]) is NOT satisfied

    • update (NUMERIC) - Source array

    • value - Value to set at the output, if the condition is satisfied

    • condition - Condition to check on update array elements

    reshape

    Reshape the input variable to the specified (fixed) shape. The output variable will have the same values as the

    input, but with the specified shape.

    Note that prod(shape) must match length(input) == prod(input.shape)

    • x (NUMERIC) - Input variable

    • shape (NUMERIC) - New shape for variable

    reshape

    Reshape the input variable to the specified (fixed) shape. The output variable will have the same values as the

    input, but with the specified shape.

    Note that prod(shape) must match length(input) == prod(input.shape)

    • x (NUMERIC) - Input variable

    • shape - New shape for variable (Size: AtLeast(min=0))

    reverse

    Reverse the values of an array for the specified dimensions

    If input is:

    [ 1, 2, 3]

    [ 4, 5, 6]

    then

    reverse(in, 0):

    [3, 2, 1]

    [6, 5, 4]

    reverse(in, 1):

    [4, 5, 6]

    [1, 2 3]

    • x (NUMERIC) - Input variable

    • dimensions - Input variable (Size: AtLeast(min=0))

    reverseSequence

    Reverse sequence op: for each slice along dimension seqDimension, the first seqLength values are reversed

    • x (NUMERIC) - Input variable

    • seq_lengths (INT) - Length of the sequences

    • seqDim - Sequence dimension - default = -1

    • batchDim

    scalarFloorMod

    Element-wise scalar floor modulus operation: out = floorMod(in, value).

    i.e., returns the remainder after division by 'value'

    • in (NUMERIC) - Input variable

    • value - Scalar value to compare

    scalarMax

    Element-wise scalar maximum operation: out = max(in, value)

    • in (NUMERIC) - Input variable

    • value - Scalar value to compare

    scalarMin

    Element-wise scalar minimum operation: out = min(in, value)

    • in (NUMERIC) - Input variable

    • value - Scalar value to compare

    scalarSet

    Return a variable with equal shape to the input, but all elements set to value 'set'

    • in (NUMERIC) - Input variable

    • set - Value to set

    scatterAdd

    Scatter addition operation.

    If indices is rank 0 (a scalar), then out[index, ...] = out[index, ...] + op(updates[...])

    If indices is rank 1 (a vector), then for each position i, out[indices[i], ...] = out[indices[i], ...] + op(updates[i, ...])

    If indices is rank 2+, then for each position (i,...,k), out[indices[i], ..., indices[k], ...] = out[indices[i], ..., indices[k], ...] + op(updates[i, ..., k, ...])

    Note that if multiple indices refer to the same location, the contributions from each is handled correctly.

    • ref (NUMERIC) - Initial/source variable

    • indices (NUMERIC) - Indices array

    • updates (NUMERIC) - Updates to add to the initial/source array

    scatterDiv

    Scatter division operation.

    If indices is rank 0 (a scalar), then out[index, ...] = out[index, ...] + op(updates[...])

    If indices is rank 1 (a vector), then for each position i, out[indices[i], ...] = out[indices[i], ...] + op(updates[i, ...])

    If indices is rank 2+, then for each position (i,...,k), out[indices[i], ..., indices[k], ...] = out[indices[i], ..., indices[k], ...] + op(updates[i, ..., k, ...])

    Note that if multiple indices refer to the same location, the contributions from each is handled correctly.

    • ref (NUMERIC) - Initial/source variable

    • indices (NUMERIC) - Indices array

    • updates (NUMERIC) - Updates to add to the initial/source array

    scatterMax

    Scatter max operation.

    If indices is rank 0 (a scalar), then out[index, ...] = out[index, ...] + op(updates[...])

    If indices is rank 1 (a vector), then for each position i, out[indices[i], ...] = out[indices[i], ...] + op(updates[i, ...])

    If indices is rank 2+, then for each position (i,...,k), out[indices[i], ..., indices[k], ...] = out[indices[i], ..., indices[k], ...] + op(updates[i, ..., k, ...])

    Note that if multiple indices refer to the same location, the contributions from each is handled correctly.

    • ref (NUMERIC) - Initial/source variable

    • indices (NUMERIC) - Indices array

    • updates (NUMERIC) - Updates to add to the initial/source array

    scatterMin

    Scatter min operation.

    If indices is rank 0 (a scalar), then out[index, ...] = out[index, ...] + op(updates[...])

    If indices is rank 1 (a vector), then for each position i, out[indices[i], ...] = out[indices[i], ...] + op(updates[i, ...])

    If indices is rank 2+, then for each position (i,...,k), out[indices[i], ..., indices[k], ...] = out[indices[i], ..., indices[k], ...] + op(updates[i, ..., k, ...])

    Note that if multiple indices refer to the same location, the contributions from each is handled correctly.

    • ref (NUMERIC) - Initial/source variable

    • indices (NUMERIC) - Indices array

    • updates (NUMERIC) - Updates to add to the initial/source array

    scatterMul

    Scatter multiplication operation.

    If indices is rank 0 (a scalar), then out[index, ...] = out[index, ...] + op(updates[...])

    If indices is rank 1 (a vector), then for each position i, out[indices[i], ...] = out[indices[i], ...] + op(updates[i, ...])

    If indices is rank 2+, then for each position (i,...,k), out[indices[i], ..., indices[k], ...] = out[indices[i], ..., indices[k], ...] + op(updates[i, ..., k, ...])

    Note that if multiple indices refer to the same location, the contributions from each is handled correctly.

    • ref (NUMERIC) - Initial/source variable

    • indices (NUMERIC) - Indices array

    • updates (NUMERIC) - Updates to add to the initial/source array

    scatterSub

    Scatter subtraction operation.

    If indices is rank 0 (a scalar), then out[index, ...] = out[index, ...] + op(updates[...])

    If indices is rank 1 (a vector), then for each position i, out[indices[i], ...] = out[indices[i], ...] + op(updates[i, ...])

    If indices is rank 2+, then for each position (i,...,k), out[indices[i], ..., indices[k], ...] = out[indices[i], ..., indices[k], ...] + op(updates[i, ..., k, ...])

    Note that if multiple indices refer to the same location, the contributions from each is handled correctly.

    • ref (NUMERIC) - Initial/source variable

    • indices (NUMERIC) - Indices array

    • updates (NUMERIC) - Updates to add to the initial/source array

    scatterUpdate

    Scatter update operation.

    If indices is rank 0 (a scalar), then out[index, ...] = out[index, ...] + op(updates[...])

    If indices is rank 1 (a vector), then for each position i, out[indices[i], ...] = out[indices[i], ...] + op(updates[i, ...])

    If indices is rank 2+, then for each position (i,...,k), out[indices[i], ..., indices[k], ...] = out[indices[i], ..., indices[k], ...] + op(updates[i, ..., k, ...])

    Note that if multiple indices refer to the same location, the contributions from each is handled correctly.

    • ref (NUMERIC) - Initial/source variable

    • indices (NUMERIC) - Indices array

    • updates (NUMERIC) - Updates to add to the initial/source array

    segmentMax

    Segment max operation.

    If data = [3, 6, 1, 4, 9, 2, 8]

    segmentIds = [0, 0, 1, 1, 1, 2, 2]

    then output = [6, 9, 8] = [op(3,6), op(1,4,9), op(2,8)]

    Note that the segment IDs must be sorted from smallest to largest segment.

    See {unsortedSegment (String, SDVariable, SDVariable, int) ops

    for the same op without this sorted requirement

    • data (NDARRAY) - Data to perform segment max on

    • segmentIds (NUMERIC) - Variable for the segment IDs

    segmentMean

    Segment mean operation.

    If data = [3, 6, 1, 4, 9, 2, 8]

    segmentIds = [0, 0, 1, 1, 1, 2, 2]

    then output = [6, 9, 8] = [op(3,6), op(1,4,9), op(2,8)]

    Note that the segment IDs must be sorted from smallest to largest segment.

    See {unsortedSegment (String, SDVariable, SDVariable, int) ops

    for the same op without this sorted requirement

    • data (NDARRAY) - Data to perform segment max on

    • segmentIds (NUMERIC) - Variable for the segment IDs

    segmentMin

    Segment min operation.

    If data = [3, 6, 1, 4, 9, 2, 8]

    segmentIds = [0, 0, 1, 1, 1, 2, 2]

    then output = [6, 9, 8] = [op(3,6), op(1,4,9), op(2,8)]

    Note that the segment IDs must be sorted from smallest to largest segment.

    See {unsortedSegment (String, SDVariable, SDVariable, int) ops

    for the same op without this sorted requirement

    • data (NDARRAY) - Data to perform segment max on

    • segmentIds (NUMERIC) - Variable for the segment IDs

    segmentProd

    Segment product operation.

    If data = [3, 6, 1, 4, 9, 2, 8]

    segmentIds = [0, 0, 1, 1, 1, 2, 2]

    then output = [6, 9, 8] = [op(3,6), op(1,4,9), op(2,8)]

    Note that the segment IDs must be sorted from smallest to largest segment.

    See {unsortedSegment (String, SDVariable, SDVariable, int) ops

    for the same op without this sorted requirement

    • data (NDARRAY) - Data to perform segment max on

    • segmentIds (NUMERIC) - Variable for the segment IDs

    segmentSum

    Segment sum operation.

    If data = [3, 6, 1, 4, 9, 2, 8]

    segmentIds = [0, 0, 1, 1, 1, 2, 2]

    then output = [6, 9, 8] = [op(3,6), op(1,4,9), op(2,8)]

    Note that the segment IDs must be sorted from smallest to largest segment.

    See {unsortedSegment (String, SDVariable, SDVariable, int) ops

    for the same op without this sorted requirement

    • data (NDARRAY) - Data to perform segment max on

    • segmentIds (NUMERIC) - Variable for the segment IDs

    sequenceMask

    Generate a sequence mask (with values 0 or 1) based on the specified lengths

    Specifically, out[i, ..., k, j] = (j < lengths[i, ..., k] ? 1.0 : 0.0)

    • lengths (NUMERIC) - Lengths of the sequences

    • maxLen - Maximum sequence length

    • dataType -

    sequenceMask

    Generate a sequence mask (with values 0 or 1) based on the specified lengths

    Specifically, out[i, ..., k, j] = (j < lengths[i, ..., k] ? 1.0 : 0.0)

    • lengths (NUMERIC) - Lengths of the sequences

    • maxLen (INT) - Maximum sequence length

    • dataType -

    sequenceMask

    see sequenceMask(String, SDVariable, SDVariable, DataType)

    • lengths (NUMERIC) -

    • dataType -

    shape

    Returns the shape of the specified INDArray as a 1D INDArray

    • input (NUMERIC) - Input variable

    size

    Returns the size (number of elements, i.e., prod(shape)) of the specified INDArray as a 0D scalar variable

    • in (NUMERIC) - Input variable

    sizeAt

    Returns a rank 0 (scalar) variable for the size of the specified dimension.

    For example, if X has shape [10,20,30] then sizeAt(X,1)=20. Similarly, sizeAt(X,-1)=30

    • in (NUMERIC) - Input variable

    • dimension - Dimension to get size of

    slice

    Get a subset of the specified input, by specifying the first element and the size of the array.

    For example, if input is:

    [a, b, c]

    [d, e, f]

    then slice(input, begin=[0,1], size=[2,1] will return:

    [b]

    [e]

    Note that for each dimension i, begin[i] + size[i] <= input.size(i)

    • input (NUMERIC) - input Variable to get subset of

    • begin - Beginning index. Must be same length as rank of input array (Size: AtLeast(min=1))

    • size - Size of the output array. Must be same length as rank of input array (Size: AtLeast(min=1))

    slice

    Get a subset of the specified input, by specifying the first element and the size of the array.

    For example, if input is:

    [a, b, c]

    [d, e, f]

    then slice(input, begin=[0,1], size=[2,1] will return:

    [b]

    [e]

    Note that for each dimension i, begin[i] + size[i] <= input.size(i)

    • input (NUMERIC) - input Variable to get subset of

    • begin (INT) - Beginning index. Must be same length as rank of input array

    • size (INT) - Size of the output array. Must be same length as rank of input array

    squaredNorm

    Squared L2 norm: see norm2(String, SDVariable, boolean, int...)

    Note that if keepDims = true, the output variable has the same rank as the input variable,

    with the reduced dimensions having size 1. This can be useful for later broadcast operations (such as subtracting

    the mean along a dimension).

    Example: if input has shape [a,b,c] and dimensions=[1] then output has shape:

    keepDims = true: [a,1,c]

    keepDims = false: [a,c]

    • x (NUMERIC) -

    • keepDims - - default = false

    • dimensions - (Size: AtLeast(min=0))

    squeeze

    Remove a single dimension of size 1.

    For example, if input has shape [a,b,1,c] then squeeze(input, 2) returns an array of shape [a,b,c]

    • x (NUMERIC) - Input variable

    • axis - Size 1 dimension to remove

    stack

    Stack a set of N INDArray of rank X into one rank X+1 variable.

    If inputs have shape [a,b,c] then output has shape:

    axis = 0: [N,a,b,c]

    axis = 1: [a,N,b,c]

    axis = 2: [a,b,N,c]

    axis = 3: [a,b,c,N]

    see unstack(String[], SDVariable, int, int)

    • values (NDARRAY) - Input variables to stack. Must have the same shape for all inputs

    • axis - Axis to stack on

    standardDeviation

    Stardard deviation array reduction operation, optionally along specified dimensions

    Note that if keepDims = true, the output variable has the same rank as the input variable,

    with the reduced dimensions having size 1. This can be useful for later broadcast operations (such as subtracting

    the mean along a dimension).

    Example: if input has shape [a,b,c] and dimensions=[1] then output has shape:

    keepDims = true: [a,1,c]

    keepDims = false: [a,c]

    • x (NUMERIC) - Input variable

    • biasCorrected - If true: divide by (N-1) (i.e., sample stdev). If false: divide by N (population stdev)

    • keepDims - If true: keep the dimensions that are reduced on (as size 1). False: remove the reduction dimensions - default = false

    stridedSlice

    Get a subset of the specified input, by specifying the first element, last element, and the strides.

    For example, if input is:

    [a, b, c]

    [d, e, f]

    [g, h, i]

    then stridedSlice(input, begin=[0,1], end=[2,2], strides=[2,1], all masks = 0) will return:

    [b, c]

    [h, i]

    • in (NUMERIC) - Variable to get subset of

    • begin - Beginning index (Size: AtLeast(min=1))

    • end - End index (Size: AtLeast(min=1))

    • strides

    sum

    Sum array reduction operation, optionally along specified dimensions.

    Note that if keepDims = true, the output variable has the same rank as the input variable,

    with the reduced dimensions having size 1. This can be useful for later broadcast operations (such as subtracting

    the mean along a dimension).

    Example: if input has shape [a,b,c] and dimensions=[1] then output has shape:

    keepDims = true: [a,1,c]

    keepDims = false: [a,c]

    • x (NUMERIC) - Input variable

    • keepDims - If true: keep the dimensions that are reduced on (as length 1). False: remove the reduction dimensions - default = false

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    switchOp

    Switch operation

    Predictate - if false, values are output to left (first) branch/output; if true, to right (second) branch/output

    • x (NDARRAY) - Input variable

    • predicate (BOOL) - Predictate - if false, values are output to left (first) branch/output; if true, to right (second) branch/output

    tensorMmul

    //TODO: Ops must be documented.

    • x (NUMERIC) - Input variable x

    • y (NUMERIC) - Input variable y

    • dimensionsX - dimensions for first input array (x) (Size: AtLeast(min=1))

    • dimensionsY

    tile

    Repeat (tile) the input tensor the specified number of times.

    For example, if input is

    [1, 2]

    [3, 4]

    and repeat is [2, 3]

    then output is

    [1, 2, 1, 2, 1, 2]

    [3, 4, 3, 4, 3, 4]

    [1, 2, 1, 2, 1, 2]

    [3, 4, 3, 4, 3, 4]

    • x (NDARRAY) - Input variable

    • repeat (INT) - Number of times to repeat in each axis. Must have length equal to the rank of the input array

    tile

    see tile(String, SDVariable, int...)

    • x (NDARRAY) -

    • repeat - (Size: AtLeast(min=1))

    transpose

    Matrix transpose operation: If input has shape [a,b] output has shape [b,a]

    • x (NDARRAY) - Input variable

    unsortedSegmentMax

    Unsorted segment max operation. As per segmentMax(String, SDVariable, SDVariable) but without

    the requirement for the indices to be sorted.

    If data = [1, 3, 2, 6, 4, 9, 8]

    segmentIds = [1, 0, 2, 0, 1, 1, 2]

    then output = [6, 9, 8] = [max(3,6), max(1,4,9), max(2,8)]

    • data (NUMERIC) - Data (variable) to perform unsorted segment max on

    • segmentIds (NUMERIC) - Variable for the segment IDs

    • numSegments - Number of segments

    unsortedSegmentMean

    Unsorted segment mean operation. As per segmentMean(String, SDVariable, SDVariable) but without

    the requirement for the indices to be sorted.

    If data = [1, 3, 2, 6, 4, 9, 8]

    segmentIds = [1, 0, 2, 0, 1, 1, 2]

    then output = [4.5, 4.666, 5] = [mean(3,6), mean(1,4,9), mean(2,8)]

    • data (NUMERIC) - Data (variable) to perform unsorted segment max on

    • segmentIds (NUMERIC) - Variable for the segment IDs

    • numSegments - Number of segments

    unsortedSegmentMin

    Unsorted segment min operation. As per segmentMin(String, SDVariable, SDVariable) but without

    the requirement for the indices to be sorted.

    If data = [1, 3, 2, 6, 4, 9, 8]

    segmentIds = [1, 0, 2, 0, 1, 1, 2]

    then output = [3, 1, 2] = [min(3,6), min(1,4,9), min(2,8)]

    • data (NUMERIC) - Data (variable) to perform unsorted segment max on

    • segmentIds (NUMERIC) - Variable for the segment IDs

    • numSegments - Number of segments

    unsortedSegmentProd

    Unsorted segment product operation. As per segmentProd(String, SDVariable, SDVariable) but without

    the requirement for the indices to be sorted.

    If data = [1, 3, 2, 6, 4, 9, 8]

    segmentIds = [1, 0, 2, 0, 1, 1, 2]

    then output = [4.5, 4.666, 5] = [mean(3,6), mean(1,4,9), mean(2,8)]

    • data (NUMERIC) - Data (variable) to perform unsorted segment max on

    • segmentIds (NUMERIC) - Variable for the segment IDs

    • numSegments - Number of segments

    unsortedSegmentSqrtN

    Unsorted segment sqrtN operation. Simply returns the sqrt of the count of the number of values in each segment

    If data = [1, 3, 2, 6, 4, 9, 8]

    segmentIds = [1, 0, 2, 0, 1, 1, 2]

    then output = [1.414, 1.732, 1.414] = [sqrt(2), sqrtN(3), sqrtN(2)]

    • data (NUMERIC) - Data (variable) to perform unsorted segment max on

    • segmentIds (NUMERIC) - Variable for the segment IDs

    • numSegments - Number of segments

    unsortedSegmentSum

    Unsorted segment sum operation. As per segmentSum(String, SDVariable, SDVariable) but without

    the requirement for the indices to be sorted.

    If data = [1, 3, 2, 6, 4, 9, 8]

    segmentIds = [1, 0, 2, 0, 1, 1, 2]

    then output = [9, 14, 10] = [sum(3,6), sum(1,4,9), sum(2,8)]

    • data (NUMERIC) - Data (variable) to perform unsorted segment max on

    • segmentIds (NUMERIC) - Variable for the segment IDs

    • numSegments - Number of segments

    unstack

    Unstack a variable of rank X into N rank X-1 variables by taking slices along the specified axis.

    If input has shape [a,b,c] then output has shape:

    axis = 0: [b,c]

    axis = 1: [a,c]

    axis = 2: [a,b]

    • value (NDARRAY) - Input variable to unstack

    • axis - Axis to unstack on

    • num - Number of output variables

    variance

    Variance array reduction operation, optionally along specified dimensions

    Note that if keepDims = true, the output variable has the same rank as the input variable,

    with the reduced dimensions having size 1. This can be useful for later broadcast operations (such as subtracting

    the mean along a dimension).

    Example: if input has shape [a,b,c] and dimensions=[1] then output has shape:

    keepDims = true: [a,1,c]

    keepDims = false: [a,c]

    • x (NUMERIC) - Input variable

    • biasCorrected - If true: divide by (N-1) (i.e., sample variable). If false: divide by N (population variance)

    • keepDims - If true: keep the dimensions that are reduced on (as size 1). False: remove the reduction dimensions - default = false

    zerosLike

    Return a variable of all 0s, with the same shape as the input variable. Note that this is dynamic:

    if the input shape changes in later execution, the returned variable's shape will also be updated

    • input (NUMERIC) - Input

    transposeB - Whether to transpose B arrays or not - default = false
    axis
    - Scalar axis argument for dimension to perform cumululative sum operations along (Size: AtLeast(min=1))
    axis
    - Scalar axis argument for dimension to perform cumululative sum operations along (Size: AtLeast(min=1))
    - Data type of the output array
    dimensions
    - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))
    - Transpose y (second argument) - default = false
  • transposeZ - Transpose result array - default = false

  • off -

  • dataType - Output data type - default = DataType.FLOAT

  • -
    - Batch dimension - default = 0
    dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))
    - Stride ("step size") for each dimension. For example, stride of 2 means take every second element. (Size: AtLeast(min=1))
  • beginMask - Bit mask: If the ith bit is set to 1, then the value in the begin long[] is ignored, and a value of 0 is used instead for the beginning index for that dimension - default = 0

  • endMask - Bit mask: If the ith bit is set to 1, then the value in the end long[] is ignored, and a value of size(i)-1 is used instead for the end index for that dimension - default = 0

  • ellipsisMask - Bit mask: only one non-zero value is allowed here. If a non-zero value is set, then other dimensions are inserted as required at the specified position - default = 0

  • newAxisMask - Bit mask: if the ith bit is set to 1, then the begin/end/stride values are ignored, and a size 1 dimension is inserted at this point - default = 0

  • shrinkAxisMask - Bit mask: if the ith bit is set to 1, then the begin/end/stride values are ignored, and a size 1 dimension is removed at this point. Note that begin/end/stride values must result in a size 1 output for these dimensions - default = 0

  • - dimensions for second input array (y) (Size: AtLeast(min=1))
  • transposeX - Transpose x (first argument) - default = false

  • transposeY - Transpose y (second argument) - default = false

  • transposeZ - Transpose result array - default = false

  • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    INDArray all(INDArray x, int[] dimensions)
    
    SDVariable all(SDVariable x, int[] dimensions)
    SDVariable all(String name, SDVariable x, int[] dimensions)
    INDArray any(INDArray x, int[] dimensions)
    
    SDVariable any(SDVariable x, int[] dimensions)
    SDVariable any(String name, SDVariable x, int[] dimensions)
    INDArray argmax(INDArray in, boolean keepDims, int[] dimensions)
    INDArray argmax(INDArray in, int[] dimensions)
    
    SDVariable argmax(SDVariable in, boolean keepDims, int[] dimensions)
    SDVariable argmax(SDVariable in, int[] dimensions)
    SDVariable argmax(String name, SDVariable in, boolean keepDims, int[] dimensions)
    SDVariable argmax(String name, SDVariable in, int[] dimensions)
    INDArray argmin(INDArray in, boolean keepDims, int[] dimensions)
    INDArray argmin(INDArray in, int[] dimensions)
    
    SDVariable argmin(SDVariable in, boolean keepDims, int[] dimensions)
    SDVariable argmin(SDVariable in, int[] dimensions)
    SDVariable argmin(String name, SDVariable in, boolean keepDims, int[] dimensions)
    SDVariable argmin(String name, SDVariable in, int[] dimensions)
    INDArray batchMmul(INDArray inputsA, INDArray inputsB, boolean transposeA, boolean transposeB)
    INDArray batchMmul(INDArray inputsA, INDArray inputsB)
    
    SDVariable batchMmul(SDVariable inputsA, SDVariable inputsB, boolean transposeA, boolean transposeB)
    SDVariable batchMmul(SDVariable inputsA, SDVariable inputsB)
    SDVariable batchMmul(String name, SDVariable inputsA, SDVariable inputsB, boolean transposeA, boolean transposeB)
    SDVariable batchMmul(String name, SDVariable inputsA, SDVariable inputsB)
    INDArray castTo(INDArray arg, DataType datatype)
    
    SDVariable castTo(SDVariable arg, DataType datatype)
    SDVariable castTo(String name, SDVariable arg, DataType datatype)
    INDArray concat(INDArray inputs, int dimension)
    
    SDVariable concat(SDVariable inputs, int dimension)
    SDVariable concat(String name, SDVariable inputs, int dimension)
    INDArray cumprod(INDArray in, boolean exclusive, boolean reverse, int[] axis)
    INDArray cumprod(INDArray in, int[] axis)
    
    SDVariable cumprod(SDVariable in, boolean exclusive, boolean reverse, int[] axis)
    SDVariable cumprod(SDVariable in, int[] axis)
    SDVariable cumprod(String name, SDVariable in, boolean exclusive, boolean reverse, int[] axis)
    SDVariable cumprod(String name, SDVariable in, int[] axis)
    INDArray cumsum(INDArray in, boolean exclusive, boolean reverse, int[] axis)
    INDArray cumsum(INDArray in, int[] axis)
    
    SDVariable cumsum(SDVariable in, boolean exclusive, boolean reverse, int[] axis)
    SDVariable cumsum(SDVariable in, int[] axis)
    SDVariable cumsum(String name, SDVariable in, boolean exclusive, boolean reverse, int[] axis)
    SDVariable cumsum(String name, SDVariable in, int[] axis)
    INDArray dot(INDArray x, INDArray y, int[] dimensions)
    
    SDVariable dot(SDVariable x, SDVariable y, int[] dimensions)
    SDVariable dot(String name, SDVariable x, SDVariable y, int[] dimensions)
    INDArray dynamicPartition(INDArray x, INDArray partitions, int numPartitions)
    
    SDVariable dynamicPartition(SDVariable x, SDVariable partitions, int numPartitions)
    SDVariable dynamicPartition(String name, SDVariable x, SDVariable partitions, int numPartitions)
    input = [1,2,3,4,5]
    
    numPartitions = 2
    
    partitions = [1,0,0,1,0]
    
    out[0] = [2,3,5]
    
    out[1] = [1,4] `
    INDArray dynamicStitch(INDArray indices, INDArray x)
    
    SDVariable dynamicStitch(SDVariable indices, SDVariable x)
    SDVariable dynamicStitch(String name, SDVariable indices, SDVariable x)
    INDArray eq(INDArray x, double y)
    
    SDVariable eq(SDVariable x, double y)
    SDVariable eq(String name, SDVariable x, double y)
    INDArray eq(INDArray x, INDArray y)
    
    SDVariable eq(SDVariable x, SDVariable y)
    SDVariable eq(String name, SDVariable x, SDVariable y)
    INDArray expandDims(INDArray x, int axis)
    
    SDVariable expandDims(SDVariable x, int axis)
    SDVariable expandDims(String name, SDVariable x, int axis)
    INDArray fill(INDArray shape, DataType dataType, double value)
    
    SDVariable fill(SDVariable shape, DataType dataType, double value)
    SDVariable fill(String name, SDVariable shape, DataType dataType, double value)
    INDArray gather(INDArray df, int[] indices, int axis)
    
    SDVariable gather(SDVariable df, int[] indices, int axis)
    SDVariable gather(String name, SDVariable df, int[] indices, int axis)
    INDArray gather(INDArray df, INDArray indices, int axis)
    
    SDVariable gather(SDVariable df, SDVariable indices, int axis)
    SDVariable gather(String name, SDVariable df, SDVariable indices, int axis)
    INDArray gatherNd(INDArray df, INDArray indices)
    
    SDVariable gatherNd(SDVariable df, SDVariable indices)
    SDVariable gatherNd(String name, SDVariable df, SDVariable indices)
    INDArray gt(INDArray x, double y)
    
    SDVariable gt(SDVariable x, double y)
    SDVariable gt(String name, SDVariable x, double y)
    INDArray gt(INDArray x, INDArray y)
    
    SDVariable gt(SDVariable x, SDVariable y)
    SDVariable gt(String name, SDVariable x, SDVariable y)
    INDArray gte(INDArray x, double y)
    
    SDVariable gte(SDVariable x, double y)
    SDVariable gte(String name, SDVariable x, double y)
    INDArray gte(INDArray x, INDArray y)
    
    SDVariable gte(SDVariable x, SDVariable y)
    SDVariable gte(String name, SDVariable x, SDVariable y)
    INDArray identity(INDArray input)
    
    SDVariable identity(SDVariable input)
    SDVariable identity(String name, SDVariable input)
    INDArray invertPermutation(INDArray input)
    
    SDVariable invertPermutation(SDVariable input)
    SDVariable invertPermutation(String name, SDVariable input)
    INDArray isNumericTensor(INDArray x)
    
    SDVariable isNumericTensor(SDVariable x)
    SDVariable isNumericTensor(String name, SDVariable x)
    INDArray linspace(DataType dataType, double start, double stop, long number)
    
    SDVariable linspace(DataType dataType, double start, double stop, long number)
    SDVariable linspace(String name, DataType dataType, double start, double stop, long number)
    INDArray linspace(INDArray start, INDArray stop, INDArray number, DataType dataType)
    
    SDVariable linspace(SDVariable start, SDVariable stop, SDVariable number, DataType dataType)
    SDVariable linspace(String name, SDVariable start, SDVariable stop, SDVariable number, DataType dataType)
    INDArray lt(INDArray x, double y)
    
    SDVariable lt(SDVariable x, double y)
    SDVariable lt(String name, SDVariable x, double y)
    INDArray lt(INDArray x, INDArray y)
    
    SDVariable lt(SDVariable x, SDVariable y)
    SDVariable lt(String name, SDVariable x, SDVariable y)
    INDArray lte(INDArray x, double y)
    
    SDVariable lte(SDVariable x, double y)
    SDVariable lte(String name, SDVariable x, double y)
    INDArray lte(INDArray x, INDArray y)
    
    SDVariable lte(SDVariable x, SDVariable y)
    SDVariable lte(String name, SDVariable x, SDVariable y)
    INDArray matchCondition(INDArray in, Condition condition)
    
    SDVariable matchCondition(SDVariable in, Condition condition)
    SDVariable matchCondition(String name, SDVariable in, Condition condition)
    INDArray matchConditionCount(INDArray in, Condition condition)
    
    SDVariable matchConditionCount(SDVariable in, Condition condition)
    SDVariable matchConditionCount(String name, SDVariable in, Condition condition)
    INDArray matchConditionCount(INDArray in, Condition condition, boolean keepDim, int[] dimensions)
    INDArray matchConditionCount(INDArray in, Condition condition, int[] dimensions)
    
    SDVariable matchConditionCount(SDVariable in, Condition condition, boolean keepDim, int[] dimensions)
    SDVariable matchConditionCount(SDVariable in, Condition condition, int[] dimensions)
    SDVariable matchConditionCount(String name, SDVariable in, Condition condition, boolean keepDim, int[] dimensions)
    SDVariable matchConditionCount(String name, SDVariable in, Condition condition, int[] dimensions)
    INDArray max(INDArray x, boolean keepDims, int[] dimensions)
    INDArray max(INDArray x, int[] dimensions)
    
    SDVariable max(SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable max(SDVariable x, int[] dimensions)
    SDVariable max(String name, SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable max(String name, SDVariable x, int[] dimensions)
    INDArray max(INDArray first, INDArray second)
    
    SDVariable max(SDVariable first, SDVariable second)
    SDVariable max(String name, SDVariable first, SDVariable second)
    INDArray mean(INDArray x, boolean keepDims, int[] dimensions)
    INDArray mean(INDArray x, int[] dimensions)
    
    SDVariable mean(SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable mean(SDVariable x, int[] dimensions)
    SDVariable mean(String name, SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable mean(String name, SDVariable x, int[] dimensions)
    INDArray merge(INDArray x, INDArray y)
    
    SDVariable merge(SDVariable x, SDVariable y)
    SDVariable merge(String name, SDVariable x, SDVariable y)
    INDArray min(INDArray x, boolean keepDims, int[] dimensions)
    INDArray min(INDArray x, int[] dimensions)
    
    SDVariable min(SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable min(SDVariable x, int[] dimensions)
    SDVariable min(String name, SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable min(String name, SDVariable x, int[] dimensions)
    INDArray min(INDArray first, INDArray second)
    
    SDVariable min(SDVariable first, SDVariable second)
    SDVariable min(String name, SDVariable first, SDVariable second)
    INDArray mmul(INDArray x, INDArray y, boolean transposeX, boolean transposeY, boolean transposeZ)
    INDArray mmul(INDArray x, INDArray y)
    
    SDVariable mmul(SDVariable x, SDVariable y, boolean transposeX, boolean transposeY, boolean transposeZ)
    SDVariable mmul(SDVariable x, SDVariable y)
    SDVariable mmul(String name, SDVariable x, SDVariable y, boolean transposeX, boolean transposeY, boolean transposeZ)
    SDVariable mmul(String name, SDVariable x, SDVariable y)
    INDArray neq(INDArray x, double y)
    
    SDVariable neq(SDVariable x, double y)
    SDVariable neq(String name, SDVariable x, double y)
    INDArray neq(INDArray x, INDArray y)
    
    SDVariable neq(SDVariable x, SDVariable y)
    SDVariable neq(String name, SDVariable x, SDVariable y)
    INDArray norm1(INDArray x, boolean keepDims, int[] dimensions)
    INDArray norm1(INDArray x, int[] dimensions)
    
    SDVariable norm1(SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable norm1(SDVariable x, int[] dimensions)
    SDVariable norm1(String name, SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable norm1(String name, SDVariable x, int[] dimensions)
    INDArray norm2(INDArray x, boolean keepDims, int[] dimensions)
    INDArray norm2(INDArray x, int[] dimensions)
    
    SDVariable norm2(SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable norm2(SDVariable x, int[] dimensions)
    SDVariable norm2(String name, SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable norm2(String name, SDVariable x, int[] dimensions)
    INDArray normmax(INDArray x, boolean keepDims, int[] dimensions)
    INDArray normmax(INDArray x, int[] dimensions)
    
    SDVariable normmax(SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable normmax(SDVariable x, int[] dimensions)
    SDVariable normmax(String name, SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable normmax(String name, SDVariable x, int[] dimensions)
    INDArray oneHot(INDArray indices, int depth, int axis, double on, double off, DataType dataType)
    INDArray oneHot(INDArray indices, int depth, int axis, double on, double off)
    
    SDVariable oneHot(SDVariable indices, int depth, int axis, double on, double off, DataType dataType)
    SDVariable oneHot(SDVariable indices, int depth, int axis, double on, double off)
    SDVariable oneHot(String name, SDVariable indices, int depth, int axis, double on, double off, DataType dataType)
    SDVariable oneHot(String name, SDVariable indices, int depth, int axis, double on, double off)
    INDArray oneHot(INDArray indices, int depth)
    
    SDVariable oneHot(SDVariable indices, int depth)
    SDVariable oneHot(String name, SDVariable indices, int depth)
    INDArray onesLike(INDArray input)
    
    SDVariable onesLike(SDVariable input)
    SDVariable onesLike(String name, SDVariable input)
    INDArray onesLike(INDArray input, DataType dataType)
    
    SDVariable onesLike(SDVariable input, DataType dataType)
    SDVariable onesLike(String name, SDVariable input, DataType dataType)
    INDArray permute(INDArray x, INDArray dimensions)
    
    SDVariable permute(SDVariable x, SDVariable dimensions)
    SDVariable permute(String name, SDVariable x, SDVariable dimensions)
    INDArray permute(INDArray x, int[] dimensions)
    
    SDVariable permute(SDVariable x, int[] dimensions)
    SDVariable permute(String name, SDVariable x, int[] dimensions)
    INDArray prod(INDArray x, boolean keepDims, int[] dimensions)
    INDArray prod(INDArray x, int[] dimensions)
    
    SDVariable prod(SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable prod(SDVariable x, int[] dimensions)
    SDVariable prod(String name, SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable prod(String name, SDVariable x, int[] dimensions)
    INDArray range(double from, double to, double step, DataType dataType)
    
    SDVariable range(double from, double to, double step, DataType dataType)
    SDVariable range(String name, double from, double to, double step, DataType dataType)
    INDArray range(INDArray from, INDArray to, INDArray step, DataType dataType)
    
    SDVariable range(SDVariable from, SDVariable to, SDVariable step, DataType dataType)
    SDVariable range(String name, SDVariable from, SDVariable to, SDVariable step, DataType dataType)
    INDArray rank(INDArray in)
    
    SDVariable rank(SDVariable in)
    SDVariable rank(String name, SDVariable in)
    INDArray replaceWhere(INDArray update, INDArray from, Condition condition)
    
    SDVariable replaceWhere(SDVariable update, SDVariable from, Condition condition)
    SDVariable replaceWhere(String name, SDVariable update, SDVariable from, Condition condition)
    INDArray replaceWhere(INDArray update, double value, Condition condition)
    
    SDVariable replaceWhere(SDVariable update, double value, Condition condition)
    SDVariable replaceWhere(String name, SDVariable update, double value, Condition condition)
    INDArray reshape(INDArray x, INDArray shape)
    
    SDVariable reshape(SDVariable x, SDVariable shape)
    SDVariable reshape(String name, SDVariable x, SDVariable shape)
    INDArray reshape(INDArray x, long[] shape)
    
    SDVariable reshape(SDVariable x, long[] shape)
    SDVariable reshape(String name, SDVariable x, long[] shape)
    INDArray reverse(INDArray x, int[] dimensions)
    
    SDVariable reverse(SDVariable x, int[] dimensions)
    SDVariable reverse(String name, SDVariable x, int[] dimensions)
    INDArray reverseSequence(INDArray x, INDArray seq_lengths, int seqDim, int batchDim)
    INDArray reverseSequence(INDArray x, INDArray seq_lengths)
    
    SDVariable reverseSequence(SDVariable x, SDVariable seq_lengths, int seqDim, int batchDim)
    SDVariable reverseSequence(SDVariable x, SDVariable seq_lengths)
    SDVariable reverseSequence(String name, SDVariable x, SDVariable seq_lengths, int seqDim, int batchDim)
    SDVariable reverseSequence(String name, SDVariable x, SDVariable seq_lengths)
    INDArray scalarFloorMod(INDArray in, double value)
    
    SDVariable scalarFloorMod(SDVariable in, double value)
    SDVariable scalarFloorMod(String name, SDVariable in, double value)
    INDArray scalarMax(INDArray in, double value)
    
    SDVariable scalarMax(SDVariable in, double value)
    SDVariable scalarMax(String name, SDVariable in, double value)
    INDArray scalarMin(INDArray in, double value)
    
    SDVariable scalarMin(SDVariable in, double value)
    SDVariable scalarMin(String name, SDVariable in, double value)
    INDArray scalarSet(INDArray in, double set)
    
    SDVariable scalarSet(SDVariable in, double set)
    SDVariable scalarSet(String name, SDVariable in, double set)
    INDArray scatterAdd(INDArray ref, INDArray indices, INDArray updates)
    
    SDVariable scatterAdd(SDVariable ref, SDVariable indices, SDVariable updates)
    SDVariable scatterAdd(String name, SDVariable ref, SDVariable indices, SDVariable updates)
    INDArray scatterDiv(INDArray ref, INDArray indices, INDArray updates)
    
    SDVariable scatterDiv(SDVariable ref, SDVariable indices, SDVariable updates)
    SDVariable scatterDiv(String name, SDVariable ref, SDVariable indices, SDVariable updates)
    INDArray scatterMax(INDArray ref, INDArray indices, INDArray updates)
    
    SDVariable scatterMax(SDVariable ref, SDVariable indices, SDVariable updates)
    SDVariable scatterMax(String name, SDVariable ref, SDVariable indices, SDVariable updates)
    INDArray scatterMin(INDArray ref, INDArray indices, INDArray updates)
    
    SDVariable scatterMin(SDVariable ref, SDVariable indices, SDVariable updates)
    SDVariable scatterMin(String name, SDVariable ref, SDVariable indices, SDVariable updates)
    INDArray scatterMul(INDArray ref, INDArray indices, INDArray updates)
    
    SDVariable scatterMul(SDVariable ref, SDVariable indices, SDVariable updates)
    SDVariable scatterMul(String name, SDVariable ref, SDVariable indices, SDVariable updates)
    INDArray scatterSub(INDArray ref, INDArray indices, INDArray updates)
    
    SDVariable scatterSub(SDVariable ref, SDVariable indices, SDVariable updates)
    SDVariable scatterSub(String name, SDVariable ref, SDVariable indices, SDVariable updates)
    INDArray scatterUpdate(INDArray ref, INDArray indices, INDArray updates)
    
    SDVariable scatterUpdate(SDVariable ref, SDVariable indices, SDVariable updates)
    SDVariable scatterUpdate(String name, SDVariable ref, SDVariable indices, SDVariable updates)
    INDArray segmentMax(INDArray data, INDArray segmentIds)
    
    SDVariable segmentMax(SDVariable data, SDVariable segmentIds)
    SDVariable segmentMax(String name, SDVariable data, SDVariable segmentIds)
    INDArray segmentMean(INDArray data, INDArray segmentIds)
    
    SDVariable segmentMean(SDVariable data, SDVariable segmentIds)
    SDVariable segmentMean(String name, SDVariable data, SDVariable segmentIds)
    INDArray segmentMin(INDArray data, INDArray segmentIds)
    
    SDVariable segmentMin(SDVariable data, SDVariable segmentIds)
    SDVariable segmentMin(String name, SDVariable data, SDVariable segmentIds)
    INDArray segmentProd(INDArray data, INDArray segmentIds)
    
    SDVariable segmentProd(SDVariable data, SDVariable segmentIds)
    SDVariable segmentProd(String name, SDVariable data, SDVariable segmentIds)
    INDArray segmentSum(INDArray data, INDArray segmentIds)
    
    SDVariable segmentSum(SDVariable data, SDVariable segmentIds)
    SDVariable segmentSum(String name, SDVariable data, SDVariable segmentIds)
    INDArray sequenceMask(INDArray lengths, int maxLen, DataType dataType)
    
    SDVariable sequenceMask(SDVariable lengths, int maxLen, DataType dataType)
    SDVariable sequenceMask(String name, SDVariable lengths, int maxLen, DataType dataType)
    INDArray sequenceMask(INDArray lengths, INDArray maxLen, DataType dataType)
    
    SDVariable sequenceMask(SDVariable lengths, SDVariable maxLen, DataType dataType)
    SDVariable sequenceMask(String name, SDVariable lengths, SDVariable maxLen, DataType dataType)
    INDArray sequenceMask(INDArray lengths, DataType dataType)
    
    SDVariable sequenceMask(SDVariable lengths, DataType dataType)
    SDVariable sequenceMask(String name, SDVariable lengths, DataType dataType)
    INDArray shape(INDArray input)
    
    SDVariable shape(SDVariable input)
    SDVariable shape(String name, SDVariable input)
    INDArray size(INDArray in)
    
    SDVariable size(SDVariable in)
    SDVariable size(String name, SDVariable in)
    INDArray sizeAt(INDArray in, int dimension)
    
    SDVariable sizeAt(SDVariable in, int dimension)
    SDVariable sizeAt(String name, SDVariable in, int dimension)
    INDArray slice(INDArray input, int[] begin, int[] size)
    
    SDVariable slice(SDVariable input, int[] begin, int[] size)
    SDVariable slice(String name, SDVariable input, int[] begin, int[] size)
    INDArray slice(INDArray input, INDArray begin, INDArray size)
    
    SDVariable slice(SDVariable input, SDVariable begin, SDVariable size)
    SDVariable slice(String name, SDVariable input, SDVariable begin, SDVariable size)
    INDArray squaredNorm(INDArray x, boolean keepDims, int[] dimensions)
    INDArray squaredNorm(INDArray x, int[] dimensions)
    
    SDVariable squaredNorm(SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable squaredNorm(SDVariable x, int[] dimensions)
    SDVariable squaredNorm(String name, SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable squaredNorm(String name, SDVariable x, int[] dimensions)
    INDArray squeeze(INDArray x, int axis)
    
    SDVariable squeeze(SDVariable x, int axis)
    SDVariable squeeze(String name, SDVariable x, int axis)
    INDArray stack(INDArray values, int axis)
    
    SDVariable stack(SDVariable values, int axis)
    SDVariable stack(String name, SDVariable values, int axis)
    INDArray standardDeviation(INDArray x, boolean biasCorrected, boolean keepDims, int[] dimensions)
    INDArray standardDeviation(INDArray x, boolean biasCorrected, int[] dimensions)
    
    SDVariable standardDeviation(SDVariable x, boolean biasCorrected, boolean keepDims, int[] dimensions)
    SDVariable standardDeviation(SDVariable x, boolean biasCorrected, int[] dimensions)
    SDVariable standardDeviation(String name, SDVariable x, boolean biasCorrected, boolean keepDims, int[] dimensions)
    SDVariable standardDeviation(String name, SDVariable x, boolean biasCorrected, int[] dimensions)
    INDArray stridedSlice(INDArray in, long[] begin, long[] end, long[] strides, int beginMask, int endMask, int ellipsisMask, int newAxisMask, int shrinkAxisMask)
    INDArray stridedSlice(INDArray in, long[] begin, long[] end, long[] strides)
    
    SDVariable stridedSlice(SDVariable in, long[] begin, long[] end, long[] strides, int beginMask, int endMask, int ellipsisMask, int newAxisMask, int shrinkAxisMask)
    SDVariable stridedSlice(SDVariable in, long[] begin, long[] end, long[] strides)
    SDVariable stridedSlice(String name, SDVariable in, long[] begin, long[] end, long[] strides, int beginMask, int endMask, int ellipsisMask, int newAxisMask, int shrinkAxisMask)
    SDVariable stridedSlice(String name, SDVariable in, long[] begin, long[] end, long[] strides)
    INDArray sum(INDArray x, boolean keepDims, int[] dimensions)
    INDArray sum(INDArray x, int[] dimensions)
    
    SDVariable sum(SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable sum(SDVariable x, int[] dimensions)
    SDVariable sum(String name, SDVariable x, boolean keepDims, int[] dimensions)
    SDVariable sum(String name, SDVariable x, int[] dimensions)
    INDArray[] switchOp(INDArray x, INDArray predicate)
    
    SDVariable[] switchOp(SDVariable x, SDVariable predicate)
    SDVariable[] switchOp(String name, SDVariable x, SDVariable predicate)
    INDArray tensorMmul(INDArray x, INDArray y, int[] dimensionsX, int[] dimensionsY, boolean transposeX, boolean transposeY, boolean transposeZ)
    INDArray tensorMmul(INDArray x, INDArray y, int[] dimensionsX, int[] dimensionsY)
    
    SDVariable tensorMmul(SDVariable x, SDVariable y, int[] dimensionsX, int[] dimensionsY, boolean transposeX, boolean transposeY, boolean transposeZ)
    SDVariable tensorMmul(SDVariable x, SDVariable y, int[] dimensionsX, int[] dimensionsY)
    SDVariable tensorMmul(String name, SDVariable x, SDVariable y, int[] dimensionsX, int[] dimensionsY, boolean transposeX, boolean transposeY, boolean transposeZ)
    SDVariable tensorMmul(String name, SDVariable x, SDVariable y, int[] dimensionsX, int[] dimensionsY)
    INDArray tile(INDArray x, INDArray repeat)
    
    SDVariable tile(SDVariable x, SDVariable repeat)
    SDVariable tile(String name, SDVariable x, SDVariable repeat)
    INDArray tile(INDArray x, int[] repeat)
    
    SDVariable tile(SDVariable x, int[] repeat)
    SDVariable tile(String name, SDVariable x, int[] repeat)
    INDArray transpose(INDArray x)
    
    SDVariable transpose(SDVariable x)
    SDVariable transpose(String name, SDVariable x)
    INDArray unsortedSegmentMax(INDArray data, INDArray segmentIds, int numSegments)
    
    SDVariable unsortedSegmentMax(SDVariable data, SDVariable segmentIds, int numSegments)
    SDVariable unsortedSegmentMax(String name, SDVariable data, SDVariable segmentIds, int numSegments)
    INDArray unsortedSegmentMean(INDArray data, INDArray segmentIds, int numSegments)
    
    SDVariable unsortedSegmentMean(SDVariable data, SDVariable segmentIds, int numSegments)
    SDVariable unsortedSegmentMean(String name, SDVariable data, SDVariable segmentIds, int numSegments)
    INDArray unsortedSegmentMin(INDArray data, INDArray segmentIds, int numSegments)
    
    SDVariable unsortedSegmentMin(SDVariable data, SDVariable segmentIds, int numSegments)
    SDVariable unsortedSegmentMin(String name, SDVariable data, SDVariable segmentIds, int numSegments)
    INDArray unsortedSegmentProd(INDArray data, INDArray segmentIds, int numSegments)
    
    SDVariable unsortedSegmentProd(SDVariable data, SDVariable segmentIds, int numSegments)
    SDVariable unsortedSegmentProd(String name, SDVariable data, SDVariable segmentIds, int numSegments)
    INDArray unsortedSegmentSqrtN(INDArray data, INDArray segmentIds, int numSegments)
    
    SDVariable unsortedSegmentSqrtN(SDVariable data, SDVariable segmentIds, int numSegments)
    SDVariable unsortedSegmentSqrtN(String name, SDVariable data, SDVariable segmentIds, int numSegments)
    INDArray unsortedSegmentSum(INDArray data, INDArray segmentIds, int numSegments)
    
    SDVariable unsortedSegmentSum(SDVariable data, SDVariable segmentIds, int numSegments)
    SDVariable unsortedSegmentSum(String name, SDVariable data, SDVariable segmentIds, int numSegments)
    void unstack(INDArray value, int axis, int num)
    
    void unstack(SDVariable value, int axis, int num)
    void unstack(String name, SDVariable value, int axis, int num)
    INDArray variance(INDArray x, boolean biasCorrected, boolean keepDims, int[] dimensions)
    INDArray variance(INDArray x, boolean biasCorrected, int[] dimensions)
    
    SDVariable variance(SDVariable x, boolean biasCorrected, boolean keepDims, int[] dimensions)
    SDVariable variance(SDVariable x, boolean biasCorrected, int[] dimensions)
    SDVariable variance(String name, SDVariable x, boolean biasCorrected, boolean keepDims, int[] dimensions)
    SDVariable variance(String name, SDVariable x, boolean biasCorrected, int[] dimensions)
    INDArray zerosLike(INDArray input)
    
    SDVariable zerosLike(SDVariable input)
    SDVariable zerosLike(String name, SDVariable input)

    Math

    ClipByAvgNorm

    Clips tensor values to a maximum average L2-norm.

    • x (NUMERIC) - Input variable

    • clipValue - Value for clipping

    • dimensions - Dimensions to reduce over (Size: AtLeast(min=0))

    EmbeddingLookup

    Looks up ids in a list of embedding tensors.

    • x (NUMERIC) - Input tensor

    • indices (INT) - A Tensor containing the ids to be looked up.

    • PartitionMode - partition_mode == 0 - i.e. 'mod' , 1 - 'div'

    MergeMaxIndex

    Return array of max elements indices with along tensor dimensions

    • x (NUMERIC) - Input tensor

    • dataType - Data type - default = DataType.INT

    abs

    Elementwise absolute value operation: out = abs(x)

    • x (NUMERIC) - Input variable

    acos

    Elementwise acos (arccosine, inverse cosine) operation: out = arccos(x)

    • x (NUMERIC) - Input variable

    acosh

    Elementwise acosh (inverse hyperbolic cosine) function: out = acosh(x)

    • x (NUMERIC) - Input variable

    add

    Pairwise addition operation, out = x + y

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    • x (NUMERIC) - Input variable

    • y (NUMERIC) - Input variable

    add

    Scalar add operation, out = in + scalar

    • x (NUMERIC) - Input variable

    • value - Scalar value for op

    amax

    Absolute max array reduction operation, optionally along specified dimensions: out = max(abs(x))

    • in (NUMERIC) - Input variable

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    amean

    Absolute mean array reduction operation, optionally along specified dimensions: out = mean(abs(x))

    • in (NUMERIC) - Input variable

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    amin

    Absolute min array reduction operation, optionally along specified dimensions: out = min(abs(x))

    • in (NUMERIC) - Input variable

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    and

    Boolean AND operation: elementwise (x != 0) && (y != 0)

    If x and y arrays have equal shape, the output shape is the same as these inputs.

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    Returns an array with values 1 where condition is satisfied, or value 0 otherwise.

    • x (BOOL) - Input 1

    • y (BOOL) - Input 2

    asin

    Elementwise asin (arcsin, inverse sine) operation: out = arcsin(x)

    • x (NUMERIC) - Input variable

    asinh

    Elementwise asinh (inverse hyperbolic sine) function: out = asinh(x)

    • x (NUMERIC) - Input variable

    asum

    Absolute sum array reduction operation, optionally along specified dimensions: out = sum(abs(x))

    • in (NUMERIC) - Input variable

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    atan

    Elementwise atan (arctangent, inverse tangent) operation: out = arctangent(x)

    • x (NUMERIC) - Input variable

    atan2

    Elementwise atan (arctangent, inverse tangent) operation: out = atan2(x,y).

    Similar to atan(y/x) but sigts of x and y are used to determine the location of the result

    • y (NUMERIC) - Input Y variable

    • x (NUMERIC) - Input X variable

    atanh

    Elementwise atanh (inverse hyperbolic tangent) function: out = atanh(x)

    • x (NUMERIC) - Input variable

    bitShift

    Bit shift operation

    • x (NUMERIC) - input

    • shift (NUMERIC) - shift value

    bitShiftRight

    Right bit shift operation

    • x (NUMERIC) - Input tensor

    • shift (NUMERIC) - shift argument

    bitShiftRotl

    Cyclic bit shift operation

    • x (NUMERIC) - Input tensor

    • shift (NUMERIC) - shift argy=ument

    bitShiftRotr

    Cyclic right shift operation

    • x (NUMERIC) - Input tensor

    • shift (NUMERIC) - Shift argument

    ceil

    Element-wise ceiling function: out = ceil(x).

    Rounds each value up to the nearest integer value (if not already an integer)

    • x (NUMERIC) - Input variable

    clipByNorm

    Clipping by L2 norm, optionally along dimension(s)

    if l2Norm(x,dimension) < clipValue, then input is returned unmodifed

    Otherwise, out[i] = in[i] * clipValue / l2Norm(in, dimensions) where each value is clipped according

    to the corresponding l2Norm along the specified dimensions

    • x (NUMERIC) - Input variable

    • clipValue - Clipping value (maximum l2 norm)

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    clipByValue

    Element-wise clipping function:

    out[i] = in[i] if in[i] >= clipValueMin and in[i] <= clipValueMax

    out[i] = clipValueMin if in[i] < clipValueMin

    out[i] = clipValueMax if in[i] > clipValueMax

    • x (NUMERIC) - Input variable

    • clipValueMin - Minimum value for clipping

    • clipValueMax - Maximum value for clipping

    confusionMatrix

    Compute the 2d confusion matrix of size [numClasses, numClasses] from a pair of labels and predictions, both of

    which are represented as integer values. This version assumes the number of classes is 1 + max(max(labels), max(pred))

    For example, if labels = [0, 1, 1] and predicted = [0, 2, 1] then output is:

    [1, 0, 0]

    [0, 1, 1]

    [0, 0, 0]

    • labels (NUMERIC) - Labels - 1D array of integer values representing label values

    • pred (NUMERIC) - Predictions - 1D array of integer values representing predictions. Same length as labels

    • dataType - Data type

    confusionMatrix

    Compute the 2d confusion matrix of size [numClasses, numClasses] from a pair of labels and predictions, both of

    which are represented as integer values.

    For example, if labels = [0, 1, 1], predicted = [0, 2, 1], and numClasses=4 then output is:

    [1, 0, 0, 0]

    [0, 1, 1, 0]

    [0, 0, 0, 0]

    [0, 0, 0, 0]

    • labels (NUMERIC) - Labels - 1D array of integer values representing label values

    • pred (NUMERIC) - Predictions - 1D array of integer values representing predictions. Same length as labels

    • numClasses - Number of classes

    confusionMatrix

    Compute the 2d confusion matrix of size [numClasses, numClasses] from a pair of labels and predictions, both of

    which are represented as integer values. This version assumes the number of classes is 1 + max(max(labels), max(pred))

    For example, if labels = [0, 1, 1], predicted = [0, 2, 1] and weights = [1, 2, 3]

    [1, 0, 0]

    [0, 3, 2]

    [0, 0, 0]

    • labels (NUMERIC) - Labels - 1D array of integer values representing label values

    • pred (NUMERIC) - Predictions - 1D array of integer values representing predictions. Same length as labels

    • weights (NUMERIC) - Weights - 1D array of values (may be real/decimal) representing the weight/contribution of each prediction. Must be same length as both labels and predictions arrays

    confusionMatrix

    Compute the 2d confusion matrix of size [numClasses, numClasses] from a pair of labels and predictions, both of

    which are represented as integer values.

    For example, if labels = [0, 1, 1], predicted = [0, 2, 1], numClasses = 4, and weights = [1, 2, 3]

    [1, 0, 0, 0]

    [0, 3, 2, 0]

    [0, 0, 0, 0]

    [0, 0, 0, 0]

    • labels (NUMERIC) - Labels - 1D array of integer values representing label values

    • pred (NUMERIC) - Predictions - 1D array of integer values representing predictions. Same length as labels

    • weights (NUMERIC) - Weights - 1D array of values (may be real/decimal) representing the weight/contribution of each prediction. Must be same length as both labels and predictions arrays

    cos

    Elementwise cosine operation: out = cos(x)

    • x (NUMERIC) - Input variable

    cosh

    Elementwise cosh (hyperbolic cosine) operation: out = cosh(x)

    • x (NUMERIC) - Input variable

    cosineDistance

    Cosine distance reduction operation. The output contains the cosine distance for each

    tensor/subset along the specified dimensions:

    out = 1.0 - cosineSimilarity(x,y)

    • x (NUMERIC) - Input variable x

    • y (NUMERIC) - Input variable y

    • dimensions - Dimensions to calculate cosineDistance over (Size: AtLeast(min=0))

    cosineSimilarity

    Cosine similarity pairwise reduction operation. The output contains the cosine similarity for each tensor/subset

    along the specified dimensions:

    out = (sum_i x[i] y[i]) / ( sqrt(sum_i x[i]^2) sqrt(sum_i y[i]^2)

    • x (NUMERIC) - Input variable x

    • y (NUMERIC) - Input variable y

    • dimensions - Dimensions to calculate cosineSimilarity over (Size: AtLeast(min=0))

    countNonZero

    Count non zero array reduction operation, optionally along specified dimensions: out = count(x != 0)

    • in (NUMERIC) - Input variable

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    countZero

    Count zero array reduction operation, optionally along specified dimensions: out = count(x == 0)

    • in (NUMERIC) - Input variable

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    cross

    Returns the pair-wise cross product of equal size arrays a and b: a x b = ||a||x||b|| sin(theta).

    Can take rank 1 or above inputs (of equal shapes), but note that the last dimension must have dimension 3

    • a (NUMERIC) - First input

    • b (NUMERIC) - Second input

    cube

    Element-wise cube function: out = x^3

    • x (NUMERIC) - Input variable

    diag

    Returns an output variable with diagonal values equal to the specified values; off-diagonal values will be set to 0

    For example, if input = [1,2,3], then output is given by:

    [ 1, 0, 0]

    [ 0, 2, 0]

    [ 0, 0, 3]

    Higher input ranks are also supported: if input has shape [a,...,R-1] then output[i,...,k,i,...,k] = input[i,...,k].

    i.e., for input rank R, output has rank 2R

    • x (NUMERIC) - Input variable

    diagPart

    Extract the diagonal part from the input array.

    If input is

    [ 1, 0, 0]

    [ 0, 2, 0]

    [ 0, 0, 3]

    then output is [1, 2, 3].

    Supports higher dimensions: in general, out[i,...,k] = in[i,...,k,i,...,k]

    • x (NUMERIC) - Input variable

    div

    Pairwise division operation, out = x / y

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    • x (NUMERIC) - Input variable

    • y (NUMERIC) - Input variable

    div

    Scalar division operation, out = in / scalar

    • x (NUMERIC) - Input variable

    • value - Scalar value for op

    entropy

    Entropy reduction: -sum(x * log(x))

    • in (NUMERIC) - Input variable

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    erf

    Element-wise Gaussian error function - out = erf(in)

    • x (NUMERIC) - Input variable

    erfc

    Element-wise complementary Gaussian error function - out = erfc(in) = 1 - erf(in)

    • x (NUMERIC) - Input variable

    euclideanDistance

    Euclidean distance (l2 norm, l2 distance) reduction operation. The output contains the Euclidean distance for each

    tensor/subset along the specified dimensions:

    out = sqrt( sum_i (x[i] - y[i])^2 )

    • x (NUMERIC) - Input variable x

    • y (NUMERIC) - Input variable y

    • dimensions - Dimensions to calculate euclideanDistance over (Size: AtLeast(min=0))

    exp

    Elementwise exponent function: out = exp(x) = 2.71828...^x

    • x (NUMERIC) - Input variable

    expm1

    Elementwise 1.0 - exponent function: out = 1.0 - exp(x) = 1.0 - 2.71828...^x

    • x (NUMERIC) - Input variable

    eye

    Generate an identity matrix with the specified number of rows and columns.

    • rows - Number of rows

    eye

    As per eye(String, int, int, DataType) but with the default datatype, Eye.DEFAULT_DTYPE

    • rows - Number of rows

    • cols - Number of columns

    eye

    Generate an identity matrix with the specified number of rows and columns

    Example:

    • rows - Number of rows

    • cols - Number of columns

    • dataType - Data type

    • dimensions - (Size: AtLeast(min=0))

    eye

    As per eye(int, int) bit with the number of rows/columns specified as scalar INDArrays

    • rows (INT) - Number of rows

    • cols (INT) - Number of columns

    eye

    As per eye(String, int) but with the number of rows specified as a scalar INDArray

    • rows (INT) - Number of rows

    firstIndex

    First index reduction operation.

    Returns a variable that contains the index of the first element that matches the specified condition (for each

    slice along the specified dimensions)

    Note that if keepDims = true, the output variable has the same rank as the input variable,

    with the reduced dimensions having size 1. This can be useful for later broadcast operations (such as subtracting

    the mean along a dimension).

    Example: if input has shape [a,b,c] and dimensions=[1] then output has shape:

    keepDims = true: [a,1,c]

    keepDims = false: [a,c]

    • in (NUMERIC) - Input variable

    • condition - Condition to check on input variable

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=1))

    floor

    Element-wise floor function: out = floor(x).

    Rounds each value down to the nearest integer value (if not already an integer)

    • x (NUMERIC) - Input variable

    floorDiv

    Pairwise floor division operation, out = floor(x / y)

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    • x (NUMERIC) - Input variable

    • y (NUMERIC) - Input variable

    floorMod

    Pairwise Modulus division operation

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    • x (NUMERIC) - Input variable

    • y (NUMERIC) - Input variable

    floorMod

    Scalar floor modulus operation

    • x (NUMERIC) - Input variable

    • value - Scalar value for op

    hammingDistance

    Hamming distance reduction operation. The output contains the cosine distance for each

    tensor/subset along the specified dimensions:

    out = count( x[i] != y[i] )

    • x (NUMERIC) - Input variable x

    • y (NUMERIC) - Input variable y

    • dimensions - Dimensions to calculate hammingDistance over (Size: AtLeast(min=0))

    iamax

    Index of the max absolute value: argmax(abs(in))

    see argmax(String, INDArray, boolean, int...)

    • in (NUMERIC) - Input variable

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=1))

    • keepDims - If true: keep the dimensions that are reduced on (as length 1). False: remove the reduction dimensions - default = false

    iamin

    Index of the min absolute value: argmin(abs(in))

    see argmin(String, INDArray, boolean, int...)

    • in (NUMERIC) - Input variable

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=1))

    • keepDims - If true: keep the dimensions that are reduced on (as length 1). False: remove the reduction dimensions - default = false

    isFinite

    Is finite operation: elementwise isFinite(x)

    Returns an array with the same shape/size as the input, with values 1 where condition is satisfied, or

    value 0 otherwise

    • x (NUMERIC) - Input variable

    isInfinite

    Is infinite operation: elementwise isInfinite(x)

    Returns an array with the same shape/size as the input, with values 1 where condition is satisfied, or

    value 0 otherwise

    • x (NUMERIC) - Input variable

    isMax

    Is maximum operation: elementwise x == max(x)

    Returns an array with the same shape/size as the input, with values 1 where condition is satisfied, or

    value 0 otherwise

    • x (NUMERIC) - Input variable

    isNaN

    Is Not a Number operation: elementwise isNaN(x)

    Returns an array with the same shape/size as the input, with values 1 where condition is satisfied, or

    value 0 otherwise

    • x (NUMERIC) - Input variable

    isNonDecreasing

    Is the array non decreasing?

    An array is non-decreasing if for every valid i, x[i] <= x[i+1]. For Rank 2+ arrays, values are compared

    in 'c' (row major) order

    • x (NUMERIC) - Input variable

    isStrictlyIncreasing

    Is the array strictly increasing?

    An array is strictly increasing if for every valid i, x[i] < x[i+1]. For Rank 2+ arrays, values are compared

    in 'c' (row major) order

    • x (NUMERIC) - Input variable

    jaccardDistance

    Jaccard similarity reduction operation. The output contains the Jaccard distance for each

    • x (NUMERIC) - Input variable x

    • y (NUMERIC) - Input variable y

    • dimensions - Dimensions to calculate jaccardDistance over (Size: AtLeast(min=0))

    lastIndex

    Last index reduction operation.

    Returns a variable that contains the index of the last element that matches the specified condition (for each

    slice along the specified dimensions)

    Note that if keepDims = true, the output variable has the same rank as the input variable,

    with the reduced dimensions having size 1. This can be useful for later broadcast operations (such as subtracting

    the mean along a dimension).

    Example: if input has shape [a,b,c] and dimensions=[1] then output has shape:

    keepDims = true: [a,1,c]

    keepDims = false: [a,c]

    • in (NUMERIC) - Input variable

    • condition - Condition to check on input variable

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=1))

    listDiff

    Calculates difference between inputs X and Y.

    • x (NUMERIC) - Input variable X

    • y (NUMERIC) - Input variable Y

    log

    Element-wise logarithm function (base e - natural logarithm): out = log(x)

    • x (NUMERIC) - Input variable

    log

    Element-wise logarithm function (with specified base): out = log_{base`(x)

    • x (NUMERIC) - Input variable

    • base - Logarithm base

    log1p

    Elementwise natural logarithm function: out = log_e (1 + x)

    • x (NUMERIC) - Input variable

    logEntropy

    Log entropy reduction: log(-sum(x * log(x)))

    • in (NUMERIC) - Input variable

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    logSumExp

    Log-sum-exp reduction (optionally along dimension).

    Computes log(sum(exp(x))

    • input (NUMERIC) - Input variable

    • dimensions - Optional dimensions to reduce along (Size: AtLeast(min=0))

    manhattanDistance

    Manhattan distance (l1 norm, l1 distance) reduction operation. The output contains the Manhattan distance for each

    tensor/subset along the specified dimensions:

    out = sum_i abs(x[i]-y[i])

    • x (NUMERIC) - Input variable x

    • y (NUMERIC) - Input variable y

    • dimensions - Dimensions to calculate manhattanDistance over (Size: AtLeast(min=0))

    matrixDeterminant

    Matrix determinant op. For 2D input, this returns the standard matrix determinant.

    For higher dimensional input with shape [..., m, m] the matrix determinant is returned for each

    shape [m,m] sub-matrix.

    • in (NUMERIC) - Input

    matrixInverse

    Matrix inverse op. For 2D input, this returns the standard matrix inverse.

    For higher dimensional input with shape [..., m, m] the matrix inverse is returned for each

    shape [m,m] sub-matrix.

    • in (NUMERIC) - Input

    max

    Pairwise max operation, out = max(x, y)

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    • x (NUMERIC) - First input variable, x

    • y (NUMERIC) - Second input variable, y

    mergeAdd

    Merge add function: merges an arbitrary number of equal shaped arrays using element-wise addition:

    out = sum_i in[i]

    • inputs (NUMERIC) - Input variables

    mergeAvg

    Merge average function: merges an arbitrary number of equal shaped arrays using element-wise mean operation:

    out = mean_i in[i]

    • inputs (NUMERIC) - Input variables

    mergeMax

    Merge max function: merges an arbitrary number of equal shaped arrays using element-wise maximum operation:

    out = max_i in[i]

    • inputs (NUMERIC) - Input variables

    meshgrid

    Broadcasts parameters for evaluation on an N-D grid.

    • inputs (NUMERIC) -

    • cartesian -

    min

    Pairwise max operation, out = min(x, y)

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    • x (NUMERIC) - First input variable, x

    • y (NUMERIC) - Second input variable, y

    mod

    Pairwise modulus (remainder) operation, out = x % y

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    • x (NUMERIC) - Input variable

    • y (NUMERIC) - Input variable

    moments

    Calculate the mean and (population) variance for the input variable, for the specified axis

    • input (NUMERIC) - Input to calculate moments for

    • axes - Dimensions to perform calculation over (Size: AtLeast(min=0))

    mul

    Pairwise multiplication operation, out = x * y

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    • x (NUMERIC) - Input variable

    • y (NUMERIC) - Input variable

    mul

    Scalar multiplication operation, out = in * scalar

    • x (NUMERIC) - Input variable

    • value - Scalar value for op

    neg

    Elementwise negative operation: out = -x

    • x (NUMERIC) - Input variable

    normalizeMoments

    Calculate the mean and variance from the sufficient statistics

    • counts (NUMERIC) - Rank 0 (scalar) value with the total number of values used to calculate the sufficient statistics

    • means (NUMERIC) - Mean-value sufficient statistics: this is the SUM of all data values

    • variances (NUMERIC) - Variaance sufficient statistics: this is the squared sum of all data values

    or

    Boolean OR operation: elementwise (x != 0) || (y != 0)

    If x and y arrays have equal shape, the output shape is the same as these inputs.

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    Returns an array with values 1 where condition is satisfied, or value 0 otherwise.

    • x (BOOL) - Input 1

    • y (BOOL) - Input 2

    pow

    Element-wise power function: out = x^value

    • x (NUMERIC) - Input variable

    • value - Scalar value for op

    pow

    Element-wise (broadcastable) power function: out = x[i]^y[i]

    • x (NUMERIC) - Input variable

    • y (NUMERIC) - Power

    rationalTanh

    Rational Tanh Approximation elementwise function, as described in the paper:

    Compact Convolutional Neural Network Cascade for Face Detection

    This is a faster Tanh approximation

    • x (NUMERIC) - Input variable

    rdiv

    Pairwise reverse division operation, out = y / x

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    • x (NUMERIC) - Input variable

    • y (NUMERIC) - Input variable

    rdiv

    Scalar reverse division operation, out = scalar / in

    • x (NUMERIC) - Input variable

    • value - Scalar value for op

    reciprocal

    Element-wise reciprocal (inverse) function: out[i] = 1 / in[i]

    • x (NUMERIC) - Input variable

    rectifiedTanh

    Rectified tanh operation: max(0, tanh(in))

    • x (NUMERIC) - Input variable

    round

    Element-wise round function: out = round(x).

    Rounds (up or down depending on value) to the nearest integer value.

    • x (NUMERIC) - Input variable

    rsqrt

    Element-wise reciprocal (inverse) of square root: out = 1.0 / sqrt(x)

    • x (NUMERIC) - Input variable

    rsub

    Pairwise reverse subtraction operation, out = y - x

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    • x (NUMERIC) - Input variable

    • y (NUMERIC) - Input variable

    rsub

    Scalar reverse subtraction operation, out = scalar - in

    • x (NUMERIC) - Input variable

    • value - Scalar value for op

    setDiag

    Set the diagonal value to the specified values

    If input is

    [ a, b, c]

    [ d, e, f]

    [ g, h, i]

    and diag = [ 1, 2, 3] then output is

    [ 1, b, c]

    [ d, 2, f]

    [ g, h, 3]

    • in (NUMERIC) - Input variable

    • diag (NUMERIC) - Diagonal

    shannonEntropy

    Shannon Entropy reduction: -sum(x * log2(x))

    • in (NUMERIC) - Input variable

    • dimensions - Dimensions to reduce over. If dimensions are not specified, full array reduction is performed (Size: AtLeast(min=0))

    sign

    Element-wise sign (signum) function:

    out = -1 if in < 0

    out = 0 if in = 0

    out = 1 if in > 0

    • x (NUMERIC) - Input variable

    sin

    Elementwise sine operation: out = sin(x)

    • x (NUMERIC) - Input variable

    sinh

    Elementwise sinh (hyperbolic sine) operation: out = sinh(x)

    • x (NUMERIC) - Input variable

    sqrt

    Element-wise square root function: out = sqrt(x)

    • x (NUMERIC) - Input variable

    square

    Element-wise square function: out = x^2

    • x (NUMERIC) - Input variable

    squaredDifference

    Pairwise squared difference operation.

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    • x (NUMERIC) - Input variable

    • y (NUMERIC) - Input variable

    standardize

    Standardize input variable along given axis

    out = (x - mean) / stdev

    with mean and stdev being calculated along the given dimension.

    For example: given x as a mini batch of the shape [numExamples, exampleLength]:

    • use dimension 1 too use the statistics (mean, stdev) for each example

    • use dimension 0 if you want to use the statistics for each column across all examples

    • use dimensions 0,1 if you want to use the statistics across all columns and examples

    • x (NUMERIC) - Input variable

    step

    Elementwise step function:

    out(x) = 1 if x >= cutoff

    out(x) = 0 otherwise

    • x (NUMERIC) - Input variable

    • value - Scalar value for op

    sub

    Pairwise subtraction operation, out = x - y

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    For example, if X has shape [1,10] and Y has shape [5,10] then op(X,Y) has output shape [5,10]

    Broadcast rules are the same as NumPy:

    • x (NUMERIC) - Input variable

    • y (NUMERIC) - Input variable

    sub

    Scalar subtraction operation, out = in - scalar

    • x (NUMERIC) - Input variable

    • value - Scalar value for op

    tan

    Elementwise tangent operation: out = tan(x)

    • x (NUMERIC) - Input variable

    tanh

    Elementwise tanh (hyperbolic tangent) operation: out = tanh(x)

    • x (NUMERIC) - Input variable

    trace

    Matrix trace operation

    For rank 2 matrices, the output is a scalar vith the trace - i.e., sum of the main diagonal.

    For higher rank inputs, output[a,b,c] = trace(in[a,b,c,:,:])

    • in (NUMERIC) - Input variable

    xor

    Boolean XOR (exclusive OR) operation: elementwise (x != 0) XOR (y != 0)

    If x and y arrays have equal shape, the output shape is the same as these inputs.

    Note: supports broadcasting if x and y have different shapes and are broadcastable.

    Returns an array with values 1 where condition is satisfied, or value 0 otherwise.

    • x (BOOL) - Input 1

    • y (BOOL) - Input 2

    zeroFraction

    Full array zero fraction array reduction operation, optionally along specified dimensions: out = (count(x == 0) / length(x))

    • input (NUMERIC) - Input variable

    INDArray ClipByAvgNorm(INDArray x, double clipValue, int[] dimensions)
    
    SDVariable ClipByAvgNorm(SDVariable x, double clipValue, int[] dimensions)
    SDVariable ClipByAvgNorm(String name, SDVariable x, double clipValue, int[] dimensions)
    numClasses -
    keepDims - If true: keep the dimensions that are reduced on (as length 1). False: remove the reduction dimensions - default = false
    keepDims - If true: keep the dimensions that are reduced on (as length 1). False: remove the reduction dimensions - default = false
    shift - Shift value, possibly 0, used when calculating the sufficient statistics (for numerical stability)
  • dimensions - (Size: AtLeast(min=1))

  • https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html
    INDArray EmbeddingLookup(INDArray x, INDArray indices, PartitionMode PartitionMode)
    
    SDVariable EmbeddingLookup(SDVariable x, SDVariable indices, PartitionMode PartitionMode)
    SDVariable EmbeddingLookup(String name, SDVariable x, SDVariable indices, PartitionMode PartitionMode)