utils/tensor
Helper module for Tensor
processing.
These functions and classes are only used internally, meaning an end-user shouldnβt need to access anything here.
- utils/tensor
- static
- .Tensor
new Tensor(...args)
.dims
:Array.<number>
.type
:DataType
.data
:DataArray
.size
:number
.location
:string
.Symbol.iterator()
βIterator
._getitem(index)
βTensor
.indexOf(item)
βnumber
._subarray(index, iterSize, iterDims)
βTensor
.item()
βnumber
|bigint
.tolist()
βArray
.sigmoid()
βTensor
.sigmoid_()
βTensor
.map(callback)
βTensor
.map_(callback)
βTensor
.mul(val)
βTensor
.mul_(val)
βTensor
.div(val)
βTensor
.div_(val)
βTensor
.add(val)
βTensor
.add_(val)
βTensor
.sub(val)
βTensor
.sub_(val)
βTensor
.permute(...dims)
βTensor
.sum([dim], keepdim)
β.norm([p], [dim], [keepdim])
βTensor
.normalize_([p], [dim])
βTensor
.normalize([p], [dim])
βTensor
.stride()
βArray.<number>
.squeeze([dim])
βTensor
.squeeze_()
.unsqueeze(dim)
βTensor
.unsqueeze_()
.flatten_()
.flatten(start_dim, end_dim)
βTensor
.view(...dims)
βTensor
.clamp_()
.clamp(min, max)
βTensor
.round_()
.round()
βTensor
.to(type)
βTensor
.permute(tensor, axes)
βTensor
.interpolate(input, size, mode, align_corners)
βTensor
.interpolate_4d(input, options)
βPromise.<Tensor>
.matmul(a, b)
βPromise.<Tensor>
.rfft(x, a)
βPromise.<Tensor>
.topk(x, k)
β*
.mean_pooling(last_hidden_state, attention_mask)
βTensor
.layer_norm(input, normalized_shape, options)
βTensor
.cat(tensors, dim)
βTensor
.stack(tensors, dim)
βTensor
.std_mean(input, dim, correction, keepdim)
βArray.<Tensor>
.mean(input, dim, keepdim)
βTensor
.full(size, fill_value)
βTensor
.ones(size)
βTensor
.ones_like(tensor)
βTensor
.zeros(size)
βTensor
.zeros_like(tensor)
βTensor
.quantize_embeddings(tensor, precision)
βTensor
- .Tensor
- inner
~args[0]
:ONNXTensor
~reshape(data, dimensions)
β*
~reshapedArray
:any
~DataArray
:*
~NestArray
:*
- static
utils/tensor.Tensor
Kind: static class of utils/tensor
- .Tensor
new Tensor(...args)
.dims
:Array.<number>
.type
:DataType
.data
:DataArray
.size
:number
.location
:string
.Symbol.iterator()
βIterator
._getitem(index)
βTensor
.indexOf(item)
βnumber
._subarray(index, iterSize, iterDims)
βTensor
.item()
βnumber
|bigint
.tolist()
βArray
.sigmoid()
βTensor
.sigmoid_()
βTensor
.map(callback)
βTensor
.map_(callback)
βTensor
.mul(val)
βTensor
.mul_(val)
βTensor
.div(val)
βTensor
.div_(val)
βTensor
.add(val)
βTensor
.add_(val)
βTensor
.sub(val)
βTensor
.sub_(val)
βTensor
.permute(...dims)
βTensor
.sum([dim], keepdim)
β.norm([p], [dim], [keepdim])
βTensor
.normalize_([p], [dim])
βTensor
.normalize([p], [dim])
βTensor
.stride()
βArray.<number>
.squeeze([dim])
βTensor
.squeeze_()
.unsqueeze(dim)
βTensor
.unsqueeze_()
.flatten_()
.flatten(start_dim, end_dim)
βTensor
.view(...dims)
βTensor
.clamp_()
.clamp(min, max)
βTensor
.round_()
.round()
βTensor
.to(type)
βTensor
new Tensor(...args)
Create a new Tensor or copy an existing Tensor.
Param | Type |
---|---|
...args | * |
tensor.dims : <code> Array. < number > </code>
Dimensions of the tensor.
Kind: instance property of Tensor
tensor.type : <code> DataType </code>
Type of the tensor.
Kind: instance property of Tensor
tensor.data : <code> DataArray </code>
The data stored in the tensor.
Kind: instance property of Tensor
tensor.size : <code> number </code>
The number of elements in the tensor.
Kind: instance property of Tensor
tensor.location : <code> string </code>
The location of the tensor data.
Kind: instance property of Tensor
tensor.Symbol.iterator() β <code> Iterator </code>
Returns an iterator object for iterating over the tensor data in row-major order. If the tensor has more than one dimension, the iterator will yield subarrays.
Kind: instance method of Tensor
Returns: Iterator
- An iterator object for iterating over the tensor data in row-major order.
tensor._getitem(index) β <code> Tensor </code>
Index into a Tensor object.
Kind: instance method of Tensor
Returns: Tensor
- The data at the specified index.
Param | Type | Description |
---|---|---|
index | number | The index to access. |
tensor.indexOf(item) β <code> number </code>
Kind: instance method of Tensor
Returns: number
- The index of the first occurrence of item in the tensor data.
Param | Type | Description |
---|---|---|
item | number | bigint | The item to search for in the tensor |
tensor._subarray(index, iterSize, iterDims) β <code> Tensor </code>
Kind: instance method of Tensor
Param | Type |
---|---|
index | number |
iterSize | number |
iterDims | any |
tensor.item() β <code> number </code> | <code> bigint </code>
Returns the value of this tensor as a standard JavaScript Number. This only works
for tensors with one element. For other cases, see Tensor.tolist()
.
Kind: instance method of Tensor
Returns: number
| bigint
- The value of this tensor as a standard JavaScript Number.
Throws:
Error
If the tensor has more than one element.
tensor.tolist() β <code> Array </code>
Convert tensor data to a n-dimensional JS list
Kind: instance method of Tensor
tensor.sigmoid() β <code> Tensor </code>
Return a new Tensor with the sigmoid function applied to each element.
Kind: instance method of Tensor
Returns: Tensor
- The tensor with the sigmoid function applied.
tensor.sigmoid_() β <code> Tensor </code>
Applies the sigmoid function to the tensor in place.
Kind: instance method of Tensor
Returns: Tensor
- Returns this
.
tensor.map(callback) β <code> Tensor </code>
Return a new Tensor with a callback function applied to each element.
Kind: instance method of Tensor
Returns: Tensor
- A new Tensor with the callback function applied to each element.
Param | Type | Description |
---|---|---|
callback | function | The function to apply to each element. It should take three arguments: the current element, its index, and the tensor's data array. |
tensor.map_(callback) β <code> Tensor </code>
Apply a callback function to each element of the tensor in place.
Kind: instance method of Tensor
Returns: Tensor
- Returns this
.
Param | Type | Description |
---|---|---|
callback | function | The function to apply to each element. It should take three arguments: the current element, its index, and the tensor's data array. |
tensor.mul(val) β <code> Tensor </code>
Return a new Tensor with every element multiplied by a constant.
Kind: instance method of Tensor
Returns: Tensor
- The new tensor.
Param | Type | Description |
---|---|---|
val | number | The value to multiply by. |
tensor.mul_(val) β <code> Tensor </code>
Multiply the tensor by a constant in place.
Kind: instance method of Tensor
Returns: Tensor
- Returns this
.
Param | Type | Description |
---|---|---|
val | number | The value to multiply by. |
tensor.div(val) β <code> Tensor </code>
Return a new Tensor with every element divided by a constant.
Kind: instance method of Tensor
Returns: Tensor
- The new tensor.
Param | Type | Description |
---|---|---|
val | number | The value to divide by. |
tensor.div_(val) β <code> Tensor </code>
Divide the tensor by a constant in place.
Kind: instance method of Tensor
Returns: Tensor
- Returns this
.
Param | Type | Description |
---|---|---|
val | number | The value to divide by. |
tensor.add(val) β <code> Tensor </code>
Return a new Tensor with every element added by a constant.
Kind: instance method of Tensor
Returns: Tensor
- The new tensor.
Param | Type | Description |
---|---|---|
val | number | The value to add by. |
tensor.add_(val) β <code> Tensor </code>
Add the tensor by a constant in place.
Kind: instance method of Tensor
Returns: Tensor
- Returns this
.
Param | Type | Description |
---|---|---|
val | number | The value to add by. |
tensor.sub(val) β <code> Tensor </code>
Return a new Tensor with every element subtracted by a constant.
Kind: instance method of Tensor
Returns: Tensor
- The new tensor.
Param | Type | Description |
---|---|---|
val | number | The value to subtract by. |
tensor.sub_(val) β <code> Tensor </code>
Subtract the tensor by a constant in place.
Kind: instance method of Tensor
Returns: Tensor
- Returns this
.
Param | Type | Description |
---|---|---|
val | number | The value to subtract by. |
tensor.permute(...dims) β <code> Tensor </code>
Return a permuted version of this Tensor, according to the provided dimensions.
Kind: instance method of Tensor
Returns: Tensor
- The permuted tensor.
Param | Type | Description |
---|---|---|
...dims | number | Dimensions to permute. |
tensor.sum([dim], keepdim) β
Returns the sum of each row of the input tensor in the given dimension dim.
Kind: instance method of Tensor
Returns: The summed tensor
Param | Type | Default | Description |
---|---|---|---|
[dim] | number |
| The dimension or dimensions to reduce. If |
keepdim | boolean | false | Whether the output tensor has |
tensor.norm([p], [dim], [keepdim]) β <code> Tensor </code>
Returns the matrix norm or vector norm of a given tensor.
Kind: instance method of Tensor
Returns: Tensor
- The norm of the tensor.
Param | Type | Default | Description |
---|---|---|---|
[p] | number | string | 'fro' | The order of norm |
[dim] | number |
| Specifies which dimension of the tensor to calculate the norm across. If dim is None, the norm will be calculated across all dimensions of input. |
[keepdim] | boolean | false | Whether the output tensors have dim retained or not. |
tensor.normalize_([p], [dim]) β <code> Tensor </code>
Performs L_p
normalization of inputs over specified dimension. Operates in place.
Kind: instance method of Tensor
Returns: Tensor
- this
for operation chaining.
Param | Type | Default | Description |
---|---|---|---|
[p] | number | 2 | The exponent value in the norm formulation |
[dim] | number | 1 | The dimension to reduce |
tensor.normalize([p], [dim]) β <code> Tensor </code>
Performs L_p
normalization of inputs over specified dimension.
Kind: instance method of Tensor
Returns: Tensor
- The normalized tensor.
Param | Type | Default | Description |
---|---|---|---|
[p] | number | 2 | The exponent value in the norm formulation |
[dim] | number | 1 | The dimension to reduce |
tensor.stride() β <code> Array. < number > </code>
Compute and return the stride of this tensor. Stride is the jump necessary to go from one element to the next one in the specified dimension dim.
Kind: instance method of Tensor
Returns: Array.<number>
- The stride of this tensor.
tensor.squeeze([dim]) β <code> Tensor </code>
Returns a tensor with all specified dimensions of input of size 1 removed.
NOTE: The returned tensor shares the storage with the input tensor, so changing the contents of one will change the contents of the other.
If you would like a copy, use tensor.clone()
before squeezing.
Kind: instance method of Tensor
Returns: Tensor
- The squeezed tensor
Param | Type | Default | Description |
---|---|---|---|
[dim] | number |
| If given, the input will be squeezed only in the specified dimensions. |
tensor.squeeze_()
In-place version of @see Tensor.squeeze
Kind: instance method of Tensor
tensor.unsqueeze(dim) β <code> Tensor </code>
Returns a new tensor with a dimension of size one inserted at the specified position.
NOTE: The returned tensor shares the same underlying data with this tensor.
Kind: instance method of Tensor
Returns: Tensor
- The unsqueezed tensor
Param | Type | Default | Description |
---|---|---|---|
dim | number |
| The index at which to insert the singleton dimension |
tensor.unsqueeze_()
In-place version of @see Tensor.unsqueeze
Kind: instance method of Tensor
tensor.flatten_()
In-place version of @see Tensor.flatten
Kind: instance method of Tensor
tensor.flatten(start_dim, end_dim) β <code> Tensor </code>
Flattens input by reshaping it into a one-dimensional tensor.
If start_dim
or end_dim
are passed, only dimensions starting with start_dim
and ending with end_dim
are flattened. The order of elements in input is unchanged.
Kind: instance method of Tensor
Returns: Tensor
- The flattened tensor.
Param | Type | Default | Description |
---|---|---|---|
start_dim | number | 0 | the first dim to flatten |
end_dim | number | the last dim to flatten |
tensor.view(...dims) β <code> Tensor </code>
Returns a new tensor with the same data as the self
tensor but of a different shape
.
Kind: instance method of Tensor
Returns: Tensor
- The tensor with the same data but different shape
Param | Type | Description |
---|---|---|
...dims | number | the desired size |
tensor.clamp_()
In-place version of @see Tensor.clamp
Kind: instance method of Tensor
tensor.clamp(min, max) β <code> Tensor </code>
Clamps all elements in input into the range [ min, max ]
Kind: instance method of Tensor
Returns: Tensor
- the output tensor.
Param | Type | Description |
---|---|---|
min | number | lower-bound of the range to be clamped to |
max | number | upper-bound of the range to be clamped to |
tensor.round_()
In-place version of @see Tensor.round
Kind: instance method of Tensor
tensor.round() β <code> Tensor </code>
Rounds elements of input to the nearest integer.
Kind: instance method of Tensor
Returns: Tensor
- the output tensor.
tensor.to(type) β <code> Tensor </code>
Performs Tensor dtype conversion.
Kind: instance method of Tensor
Returns: Tensor
- The converted tensor.
Param | Type | Description |
---|---|---|
type | DataType | The desired data type. |
utils/tensor.permute(tensor, axes) β <code> Tensor </code>
Permutes a tensor according to the provided axes.
Kind: static method of utils/tensor
Returns: Tensor
- The permuted tensor.
Param | Type | Description |
---|---|---|
tensor | any | The input tensor to permute. |
axes | Array | The axes to permute the tensor along. |
utils/tensor.interpolate(input, size, mode, align_corners) β <code> Tensor </code>
Interpolates an Tensor to the given size.
Kind: static method of utils/tensor
Returns: Tensor
- The interpolated tensor.
Param | Type | Description |
---|---|---|
input | Tensor | The input tensor to interpolate. Data must be channel-first (i.e., [c, h, w]) |
size | Array.<number> | The output size of the image |
mode | string | The interpolation mode |
align_corners | boolean | Whether to align corners. |
utils/tensor.interpolate_4d(input, options) β <code> Promise. < Tensor > </code>
Down/up samples the input. Inspired by https://pytorch.org/docs/stable/generated/torch.nn.functional.interpolate.html.
Kind: static method of utils/tensor
Returns: Promise.<Tensor>
- The interpolated tensor.
Param | Type | Default | Description |
---|---|---|---|
input | Tensor | the input tensor | |
options | Object | the options for the interpolation | |
[options.size] | * |
| output spatial size. |
[options.mode] | "bilinear" | "bicubic" | 'bilinear' | algorithm used for upsampling |
utils/tensor.matmul(a, b) β <code> Promise. < Tensor > </code>
Matrix product of two tensors. Inspired by https://pytorch.org/docs/stable/generated/torch.matmul.html
Kind: static method of utils/tensor
Returns: Promise.<Tensor>
- The matrix product of the two tensors.
Param | Type | Description |
---|---|---|
a | Tensor | the first tensor to be multiplied |
b | Tensor | the second tensor to be multiplied |
utils/tensor.rfft(x, a) β <code> Promise. < Tensor > </code>
Computes the one dimensional Fourier transform of real-valued input. Inspired by https://pytorch.org/docs/stable/generated/torch.fft.rfft.html
Kind: static method of utils/tensor
Returns: Promise.<Tensor>
- the output tensor.
Param | Type | Description |
---|---|---|
x | Tensor | the real input tensor |
a | Tensor | The dimension along which to take the one dimensional real FFT. |
utils/tensor.topk(x, k) β <code> * </code>
Returns the k largest elements of the given input tensor. Inspired by https://pytorch.org/docs/stable/generated/torch.topk.html
Kind: static method of utils/tensor
Returns: *
- the output tuple of (Tensor, LongTensor) of top-k elements and their indices.
Param | Type | Description |
---|---|---|
x | Tensor | the input tensor |
k | number | the k in "top-k" |
utils/tensor.mean_pooling(last_hidden_state, attention_mask) β <code> Tensor </code>
Perform mean pooling of the last hidden state followed by a normalization step.
Kind: static method of utils/tensor
Returns: Tensor
- Returns a new Tensor of shape [batchSize, embedDim].
Param | Type | Description |
---|---|---|
last_hidden_state | Tensor | Tensor of shape [batchSize, seqLength, embedDim] |
attention_mask | Tensor | Tensor of shape [batchSize, seqLength] |
utils/tensor.layer_norm(input, normalized_shape, options) β <code> Tensor </code>
Apply Layer Normalization for last certain number of dimensions.
Kind: static method of utils/tensor
Returns: Tensor
- The normalized tensor.
Param | Type | Default | Description |
---|---|---|---|
input | Tensor | The input tensor | |
normalized_shape | Array.<number> | input shape from an expected input of size | |
options | Object | The options for the layer normalization | |
[options.eps] | number | 1e-5 | A value added to the denominator for numerical stability. |
utils/tensor.cat(tensors, dim) β <code> Tensor </code>
Concatenates an array of tensors along a specified dimension.
Kind: static method of utils/tensor
Returns: Tensor
- The concatenated tensor.
Param | Type | Description |
---|---|---|
tensors | Array.<Tensor> | The array of tensors to concatenate. |
dim | number | The dimension to concatenate along. |
utils/tensor.stack(tensors, dim) β <code> Tensor </code>
Stack an array of tensors along a specified dimension.
Kind: static method of utils/tensor
Returns: Tensor
- The stacked tensor.
Param | Type | Description |
---|---|---|
tensors | Array.<Tensor> | The array of tensors to stack. |
dim | number | The dimension to stack along. |
utils/tensor.std_mean(input, dim, correction, keepdim) β <code> Array. < Tensor > </code>
Calculates the standard deviation and mean over the dimensions specified by dim. dim can be a single dimension or null
to reduce over all dimensions.
Kind: static method of utils/tensor
Returns: Array.<Tensor>
- A tuple of (std, mean) tensors.
Param | Type | Description |
---|---|---|
input | Tensor | the input tenso |
dim | number | null | the dimension to reduce. If None, all dimensions are reduced. |
correction | number | difference between the sample size and sample degrees of freedom. Defaults to Bessel's correction, correction=1. |
keepdim | boolean | whether the output tensor has dim retained or not. |
utils/tensor.mean(input, dim, keepdim) β <code> Tensor </code>
Returns the mean value of each row of the input tensor in the given dimension dim.
Kind: static method of utils/tensor
Returns: Tensor
- A new tensor with means taken along the specified dimension.
Param | Type | Description |
---|---|---|
input | Tensor | the input tensor. |
dim | number | null | the dimension to reduce. |
keepdim | boolean | whether the output tensor has dim retained or not. |
utils/tensor.full(size, fill_value) β <code> Tensor </code>
Creates a tensor of size size filled with fill_value. The tensorβs dtype is inferred from fill_value.
Kind: static method of utils/tensor
Returns: Tensor
- The filled tensor.
Param | Type | Description |
---|---|---|
size | Array.<number> | A sequence of integers defining the shape of the output tensor. |
fill_value | number | bigint | The value to fill the output tensor with. |
utils/tensor.ones(size) β <code> Tensor </code>
Returns a tensor filled with the scalar value 1, with the shape defined by the variable argument size.
Kind: static method of utils/tensor
Returns: Tensor
- The ones tensor.
Param | Type | Description |
---|---|---|
size | Array.<number> | A sequence of integers defining the shape of the output tensor. |
utils/tensor.ones_like(tensor) β <code> Tensor </code>
Returns a tensor filled with the scalar value 1, with the same size as input.
Kind: static method of utils/tensor
Returns: Tensor
- The ones tensor.
Param | Type | Description |
---|---|---|
tensor | Tensor | The size of input will determine size of the output tensor. |
utils/tensor.zeros(size) β <code> Tensor </code>
Returns a tensor filled with the scalar value 0, with the shape defined by the variable argument size.
Kind: static method of utils/tensor
Returns: Tensor
- The zeros tensor.
Param | Type | Description |
---|---|---|
size | Array.<number> | A sequence of integers defining the shape of the output tensor. |
utils/tensor.zeros_like(tensor) β <code> Tensor </code>
Returns a tensor filled with the scalar value 0, with the same size as input.
Kind: static method of utils/tensor
Returns: Tensor
- The zeros tensor.
Param | Type | Description |
---|---|---|
tensor | Tensor | The size of input will determine size of the output tensor. |
utils/tensor.quantize_embeddings(tensor, precision) β <code> Tensor </code>
Quantizes the embeddings tensor to binary or unsigned binary precision.
Kind: static method of utils/tensor
Returns: Tensor
- The quantized tensor.
Param | Type | Description |
---|---|---|
tensor | Tensor | The tensor to quantize. |
precision | 'binary' | 'ubinary' | The precision to use for quantization. |
utils/tensor~args[0] : <code> ONNXTensor </code>
Kind: inner property of utils/tensor
utils/tensor~reshape(data, dimensions) β <code> * </code>
Reshapes a 1-dimensional array into an n-dimensional array, according to the provided dimensions.
Kind: inner method of utils/tensor
Returns: *
- The reshaped array.
Param | Type | Description |
---|---|---|
data | Array<T> | DataArray | The input array to reshape. |
dimensions | DIM | The target shape/dimensions. |
Example
reshape([10 ], [1 ]); // Type: number[] Value: [10]
reshape([1, 2, 3, 4 ], [2, 2 ]); // Type: number[][] Value: [[1, 2], [3, 4]]
reshape([1, 2, 3, 4, 5, 6, 7, 8], [2, 2, 2]); // Type: number[][][] Value: [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
reshape([1, 2, 3, 4, 5, 6, 7, 8], [4, 2 ]); // Type: number[][] Value: [[1, 2], [3, 4], [5, 6], [7, 8]]
reshape~reshapedArray : <code> any </code>
Kind: inner property of reshape
utils/tensor~DataArray : <code> * </code>
Kind: inner typedef of utils/tensor
utils/tensor~NestArray : <code> * </code>
This creates a nested array of a given type and depth (see examples).
Kind: inner typedef of utils/tensor
Example
NestArray<string, 1>; // string[]
Example
NestArray<number, 2>; // number[][]
Example
NestArray<string, 3>; // string[][][] etc.
< > Update on GitHub