Tensor at a glance
This page provides an overview of most commonly used tensor functions by category.
For a complete, alphabetical reference of all tensor functions see Tensor<'T> and the device-specific functions in HostTensor and CudaTensor.
Creation functions
Use these functions to create a new tensor.
| Function | Description |
|---|---|
| arange | Creates a new vector filled with equaly spaced values using a specifed increment. |
| counting | Creates a new vector filled with the integers from zero to the specified maximum. |
| empty | Creates a new, empty tensor with the given number of dimensions. |
| falses | Creates a new boolean tensor filled with falses. |
| filled | Creates a new tensor filled with the specified value. |
| identity | Creates a new identity matrix. |
| ones | Creates a new tensor filled with ones (1). |
| onesLike | Creates a new tensor filled with ones using the specified tensor as template. |
| linspace | Creates a new vector of given size filled with equaly spaced values. |
| scalar | Creates a new zero-dimensional (scalar) tensor with the specified value. |
| scalarLike | Creates a new zero-dimensional (scalar) tensor using the specified tensor as template and with the specified value. |
| trues | Creates a new boolean tensor filled with trues. |
| zeros | Creates a new tensor filled with zeros (0). |
| zerosLike | Creates a new tensor filled with zeros using the specified tensor as template. |
Slicing and element access functions
Use these functions to slice tensors or access individual elements of them.
| Function | Description |
|---|---|
| Item | Accesses a slice (part) of the tensor. |
| M | Picks elements from a tensor using one or more boolean mask tensors. |
| Value | Gets the value of a zero-dimensional (scalar) tensor. |
Element-wise operations
These mathematical operations are applied element-wise to each element of the tensor(s).
| Function | Description |
|---|---|
| ( ~- ) | Element-wise negation. |
| ( + ) | Element-wise addition. |
| ( - ) | Element-wise substraction. |
| ( * ) | Element-wise multiplication. |
| ( / ) | Element-wise division. |
| ( % ) | Element-wise remainder of division. |
| Abs | Element-wise absolute value. |
| Acos | Element-wise arccosine (inverse cosine). |
| Asin | Element-wise arcsine (inverse sine). |
| Atan | Element-wise arctanget (inverse tangent). |
| Ceiling | Element-wise ceiling (round towards positive infinity). |
| Cos | Element-wise cosine. |
| Cosh | Element-wise hyperbolic cosine. |
| Exp | Element-wise exponential function. |
| Floor | Element-wise floor (round towards negative infinity). |
| Log | Element-wise natural logarithm. |
| Log10 | Element-wise common logarithm. |
| Pow | Element-wise exponentiation. |
| Round | Element-wise rounding. |
| Sgn | Element-wise sign. |
| Sin | Element-wise sine. |
| Sinh | Element-wise hyperbolic sine. |
| Sqrt | Element-wise square root. |
| Tan | Element-wise tangent. |
| Tanh | Element-wise hyperbolic tangent. |
| Truncate | Element-wise truncation (rounding towards zero). |
Tensor operations
These functions perform various operations on one or more tensors.
| Function | Description |
|---|---|
| concat | Concatenates tensors along an axis. |
| copy | Returns a copy of the tensor. |
| diag | Returns a view of the diagonal of the matrix. |
| diagAxis | Returns a view of the diagonal along the given axes. |
| diagMat | Creates a matrix with the specified diagonal. |
| diagMatAxis | Creates a tensor with the specified diagonal along the given axes. |
| diff | Calculates the difference between adjoining elements of the vector. |
| diffAxis | Calculates the difference between adjoining elements along the specified axes. |
| ofBlocks | Builds a tensor out of tensor blocks. |
| replicate | Repeats the tensor along an axis. |
| T | Transpose of a matrix. |
Linear algebra functions
Use these functions to perform basic linear algebra operations on tensors.
| Function | Description |
|---|---|
| ( .* ) | Computes the (batched) matrix product, (batched) matrix-vector product or scalar product. |
| norm | Calculates the norm of the (flattened) tensor. |
| normAxis | Calculates the norm along the specified axis. |
| invert | (Batch) inverts a matrix. |
| pseudoInvert | Computes the (batched) Moore-Penrose pseudo-inverse of the specified matrix. |
| SVD | Computes the (batched) singular value decomposition (SVD) of the specified matrix. |
| symmetricEigenDecomposition | Computes the (real) eigendecomposition of a symmetric matrix. |
| tensorProduct | Computes the tensor product between two tensors. |
Shape functions
Use these functions to work with the shape and memory layout of a tensor.
| Function | Description |
|---|---|
| atLeastND | Pads the tensor from the left with size-one dimensions until it has at least the specified number of dimensions. |
| broadcastDim | Broadcast a dimension to a specified size. |
| broadcastTo | Broadcasts the specified tensor to the specified shape. |
| broadcastToSame | Broadcasts all specified tensors to have the same shape. |
| broadcastToSameInDims | Broadcasts all specified tensors to have the same size in the specified dimensions. |
| cutLeft | Removes the first dimension. |
| cutRight | Removes the last dimension. |
| flatten | Flattens the tensor into a (one-dimensional) vector. |
| insertAxis | Insert a dimension of size one before the specifed dimension. |
| isBroadcasted | Checks if the specified tensor is broadcasted in at least one dimension. |
| Layout | Memory layout of the tensor. |
| NDims | Dimensionality of the tensor. |
| NElems | Total number of elements within the tensor. |
| padLeft | Insert a dimension of size one as the first dimension. |
| padRight | Append a dimension of size one after the last dimension. |
| padToSame | Pads all specified tensors from the left with dimensions of size one until they have the same dimensionality. |
| permuteAxes | Permutes the axes as specified. |
| reshape | Changes the shape of a tensor. |
| reverseAxis | Reverses the elements in the specified dimension. |
| relayout | Creates a tensor with the specified layout sharing its storage with the original tensor. |
| Shape | Shape of the tensor. |
| swapDim | Swaps the specified dimensions of the tensor. |
Data type functions
Use these functions to query or change the data type of the elements of a tensor.
| Function | Description |
|---|---|
| convert | Convert the elements of a tensor to the specifed type. |
| DataType | Type of data stored within the tensor. |
Device and storage functions
Use these functions to query or change the storage device of a tensor.
| Function | Description |
|---|---|
| Dev | Device the data of tensor is stored on. |
| Storage | The storage object that holds the data of this tensor. |
| transfer | Transfers a tensor to the specifed device. |
Comparison functions
Use these functions to perform comparisons of tensors. The results are mostly boolean tensors.
| Function | Description |
|---|---|
| ( ==== ) | Element-wise equality test. |
| ( <<<< ) | Element-wise less-than test. |
| ( <<== ) | Element-wise less-than-or-equal test. |
| ( >>>> ) | Element-wise greater-than test. |
| ( >>== ) | Element-wise greater-than-or-equal test. |
| ( <<>> ) | Element-wise not-equality test. |
| almostEqual | Checks if two tensors have the same (within machine precision) values in all elements. |
| isClose | Element-wise check if two tensors have same (within machine precision) values. |
| isFinite | Element-wise finity check (not -Inf, Inf or NaN). |
| maxElemwise | Element-wise maximum. |
| minElemwise | Element-wise minimum. |
| allFinite | Checks that all elements of the tensor are finite. |
Logical functions
Use these functions to work with boolean tensors.
| Function | Description |
|---|---|
| ( ~~~~ ) | Element-wise logical negation. |
| ( &&&& ) | Element-wise loigcal and. |
| ( |||| ) | Element-wise loigcal or. |
| ( ^^^^ ) | Element-wise loigcal xor. |
| all | Checks if all elements of the tensor are true. |
| allAxis | Checks if all elements along the specified axis are true. |
| allElems | Gets a sequence of all all elements within the tensor. |
| allTensor | Checks if all elements of the tensor are true returning the result as a tensor. |
| any | Checks if any elements of the tensor are true. |
| anyAxis | Checks if any element along the specified axis is true. |
| anyTensor | Checks if any element of the tensor is true returning the result as a tensor. |
| countTrue | Counts the elements being true. |
| countTrueAxis | Counts the elements being true along the specified axis. |
| ifThenElse | Element-wise choice between two sources depending on a condition. |
Index functions
These functions return tensor of indices or work with them.
| Function | Description |
|---|---|
| allIdx | Gets a sequence of all indices to enumerate all elements within the tensor. |
| argMax | Finds the indicies of the maximum value of the tensor. |
| argMaxAxis | Finds the index of the maximum value along the specified axis. |
| argMin | Finds the indicies of the minimum value of the tensor. |
| argMinAxis | Finds the index of the minimum value along the specified axis. |
| find | Finds the first occurence of the specfied value and returns its indices. |
| findAxis | Finds the first occurence of the specfied value along the specified axis and returns its index. |
| gather | Selects elements from a tensor according to specified indices. |
| scatter | Disperses elements from a source tensor to a new tensor according to the specified indices. |
| trueIdx | Finds the indices of all element that are true. |
Reduction functions
These functions perform operations on tensors that reduce their dimensionality.
| Function | Description |
|---|---|
| max | Calculates the maximum of all elements. |
| maxAxis | Calculates the maximum value of the elements along the specified axis. |
| min | Calculates the minimum of all elements. |
| minAxis | Calculates the minimum value of the elements along the specified axis. |
| mean | Calculates the mean of the tensor. |
| meanAxis | Calculates the mean of the elements along the specified axis. |
| product | Calculates the product of all elements. |
| productAxis | Calculates the product of the elements along the specified axis. |
| std | Calculates the standard deviation of the tensor. |
| stdAxis | Calculates the standard deviation of the elements along the specified axis. |
| sum | Sums all elements. |
| sumAxis | Sums the elements along the specified axis. |
| var | Calculates the variance of the tensor. |
| varAxis | Calculates the variance of the elements along the specified axis. |
| trace | Calculates the trace of the matrix. |
| traceAxis | Calculates the trace along the specified axes. |
Functional operations (host only)
Use these functions to perform operations that are common in functional programming languages. They require the tensor to be stored in host memory.
| Function | Description |
|---|---|
| HostTensor.foldAxis | Applies to specified function to all elements of the tensor, threading an accumulator through the computation. |
| HostTensor.init | Creates a new tensor with values returned by the specified function. |
| HostTensor.map | Applies to specified function to all elements of the tensor. |
| HostTensor.map2 | Applies to specified function to all elements of the two tensors. |
| HostTensor.mapi | Applies to specified indexed function to all elements of the tensor. |
| HostTensor.mapi2 | Applies to specified indexed function to all elements of the two tensors. |
Data exchange (host only)
Use these functions to convert tensors to and from other storage modalities. They require the tensor to be stored in host memory.
| Function | Description |
|---|---|
| HostTensor.ofArray | Creates a one-dimensional tensor copying the specified data. |
| HostTensor.ofList | Creates a one-dimensional tensor from the specified list. |
| HostTensor.ofSeq | Creates a one-dimensional tensor from the specified sequence. |
| HostTensor.read | Reads a tensor from the specified HDF5 object path in an HDF5 file. |
| HostTensor.readUntyped | Reads a tensor with unspecified data type from the specified HDF5 object path in an HDF5 file. |
| HostTensor.toArray | Creates an array from a one-dimensional tensor. |
| HostTensor.toList | Creates a list from a one-dimensional tensor. |
| HostTensor.toSeq | A sequence of all elements contained in the tensor. |
| HostTensor.usingArray | Creates a one-dimensional tensor referencing the specified data. |
| HostTensor.write | Writes the tensor into the HDF5 file under the specfied HDF5 object path. |
Random number generation (host only)
Use these functions to generate tensors filled with random numbers.
| Function | Description |
|---|---|
| HostTensor.randomInt | Creates a tensor filled with random integer numbers from a uniform distribution. |
| HostTensor.randomNormal | Creates a tensor filled with random numbers from a normale distribution. |
| HostTensor.randomUniform | Creates a tensor filled with random floating-point numbers from a uniform distribution. |