Transformers.js documentation

utils/tensor

You are viewing main version, which requires installation from source. If you'd like regular npm install, checkout the latest stable version (v3.8.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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.Tensor

Kind: static class of utils/tensor


new Tensor(...args)

Create a new Tensor or copy an existing Tensor.

ParamType
...argsArray | Array

tensor.dims : Array

Dimensions of the tensor.

Kind: instance property of Tensor


tensor.type : DataType

Type of the tensor.

Kind: instance property of Tensor


tensor.data : DataArray

The data stored in the tensor.

Kind: instance property of Tensor


tensor.size : number

The number of elements in the tensor.

Kind: instance property of Tensor


tensor.location : string

The location of the tensor data.

Kind: instance property of Tensor


tensor.Symbol.iterator() β‡’ Iterator. < any >

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.<any> - An iterator object for iterating over the tensor data in row-major order.


tensor._getitem(index) β‡’ Tensor

Index into a Tensor object.

Kind: instance method of Tensor
Returns: Tensor - The data at the specified index.

ParamTypeDescription
indexnumber

The index to access.


tensor.indexOf(item) β‡’ number

Kind: instance method of Tensor
Returns: number - The index of the first occurrence of item in the tensor data.

ParamTypeDescription
itemnumber | bigint

The item to search for in the tensor


tensor._subarray(index, iterSize, iterDims) β‡’ Tensor

Kind: instance method of Tensor

ParamType
indexnumber
iterSizenumber
iterDimsany

tensor.item() β‡’ number | bigint

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() β‡’ Array

Convert tensor data to a n-dimensional JS list

Kind: instance method of Tensor


tensor.sigmoid() β‡’ Tensor

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_() β‡’ Tensor

Applies the sigmoid function to the tensor in place.

Kind: instance method of Tensor
Returns: Tensor - Returns this.


tensor.map(callback) β‡’ Tensor

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.

ParamTypeDescription
callbackfunction

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) β‡’ Tensor

Apply a callback function to each element of the tensor in place.

Kind: instance method of Tensor
Returns: Tensor - Returns this.

ParamTypeDescription
callbackfunction

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) β‡’ Tensor

Return a new Tensor with every element multiplied by a constant.

Kind: instance method of Tensor
Returns: Tensor - The new tensor.

ParamTypeDescription
valnumber

The value to multiply by.


tensor.mul_(val) β‡’ Tensor

Multiply the tensor by a constant in place.

Kind: instance method of Tensor
Returns: Tensor - Returns this.

ParamTypeDescription
valnumber

The value to multiply by.


tensor.div(val) β‡’ Tensor

Return a new Tensor with every element divided by a constant.

Kind: instance method of Tensor
Returns: Tensor - The new tensor.

ParamTypeDescription
valnumber

The value to divide by.


tensor.div_(val) β‡’ Tensor

Divide the tensor by a constant in place.

Kind: instance method of Tensor
Returns: Tensor - Returns this.

ParamTypeDescription
valnumber

The value to divide by.


tensor.add(val) β‡’ Tensor

Return a new Tensor with every element added by a constant.

Kind: instance method of Tensor
Returns: Tensor - The new tensor.

ParamTypeDescription
valnumber

The value to add by.


tensor.add_(val) β‡’ Tensor

Add the tensor by a constant in place.

Kind: instance method of Tensor
Returns: Tensor - Returns this.

ParamTypeDescription
valnumber

The value to add by.


tensor.sub(val) β‡’ Tensor

Return a new Tensor with every element subtracted by a constant.

Kind: instance method of Tensor
Returns: Tensor - The new tensor.

ParamTypeDescription
valnumber

The value to subtract by.


tensor.sub_(val) β‡’ Tensor

Subtract the tensor by a constant in place.

Kind: instance method of Tensor
Returns: Tensor - Returns this.

ParamTypeDescription
valnumber

The value to subtract by.


tensor.clone() β‡’ Tensor

Creates a deep copy of the current Tensor.

Kind: instance method of Tensor
Returns: Tensor - A new Tensor with the same type, data, and dimensions as the original.


tensor.slice(...slices) β‡’ Tensor

Performs a slice operation on the Tensor along specified dimensions.

Consider a Tensor that has a dimension of [4, 7]:

[ 1,  2,  3,  4,  5,  6,  7]
[ 8,  9, 10, 11, 12, 13, 14]
[15, 16, 17, 18, 19, 20, 21]
[22, 23, 24, 25, 26, 27, 28]

We can slice against the two dims of row and column, for instance in this case we can start at the second element, and return to the second last, like this:

tensor.slice([1, -1], [1, -1]);

which would return:

[  9, 10, 11, 12, 13 ]
[ 16, 17, 18, 19, 20 ]

Kind: instance method of Tensor
Returns: Tensor - A new Tensor containing the selected elements.
Throws:

  • Error If the slice input is invalid.
ParamTypeDescription
...slicesnumber | Array | null

The slice specifications for each dimension.

  • If a number is given, then a single element is selected.
  • If an array of two numbers is given, then a range of elements [start, end (exclusive)] is selected.
  • If null is given, then the entire dimension is selected.

tensor.permute(...dims) β‡’ Tensor

Return a permuted version of this Tensor, according to the provided dimensions.

Kind: instance method of Tensor
Returns: Tensor - The permuted tensor.

ParamTypeDescription
...dimsnumber

Dimensions to permute.


tensor.transpose() : Tensor

Kind: instance method of Tensor


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

ParamTypeDefaultDescription
[dim]number | null

The dimension or dimensions to reduce. If null, all dimensions are reduced.

keepdimbooleanfalse

Whether the output tensor has dim retained or not.


tensor.norm([p], [dim], [keepdim]) β‡’ Tensor

Returns the matrix norm or vector norm of a given tensor.

Kind: instance method of Tensor
Returns: Tensor - The norm of the tensor.

ParamTypeDefaultDescription
[p]number | string'fro'

The order of norm

[dim]number | null

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]booleanfalse

Whether the output tensors have dim retained or not.


tensor.normalize_([p], [dim]) β‡’ Tensor

Performs L_p normalization of inputs over specified dimension. Operates in place.

Kind: instance method of Tensor
Returns: Tensor - this for operation chaining.

ParamTypeDefaultDescription
[p]number2

The exponent value in the norm formulation

[dim]number1

The dimension to reduce


tensor.normalize([p], [dim]) β‡’ Tensor

Performs L_p normalization of inputs over specified dimension.

Kind: instance method of Tensor
Returns: Tensor - The normalized tensor.

ParamTypeDefaultDescription
[p]number2

The exponent value in the norm formulation

[dim]number1

The dimension to reduce


tensor.stride() β‡’ Array

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 - The stride of this tensor.


tensor.squeeze([dim]) β‡’ Tensor

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

ParamTypeDefaultDescription
[dim]number | Array | null

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) β‡’ Tensor

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

ParamTypeDescription
dimnumber

The index at which to insert the singleton dimension


tensor.unsqueeze_() : Tensor

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) β‡’ Tensor

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.

ParamTypeDefaultDescription
start_dimnumber0

the first dim to flatten

end_dimnumber

the last dim to flatten


tensor.view(...dims) β‡’ Tensor

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

ParamTypeDescription
...dimsnumber

the desired size


tensor.gt(val) β‡’ Tensor

Computes input > val element-wise.

Kind: instance method of Tensor
Returns: Tensor - A boolean tensor that is true where input is greater than other and false elsewhere.

ParamTypeDescription
valnumber

The value to compare with.


tensor.lt(val) β‡’ Tensor

Computes input < val element-wise.

Kind: instance method of Tensor
Returns: Tensor - A boolean tensor that is true where input is less than other and false elsewhere.

ParamTypeDescription
valnumber

The value to compare with.


tensor.clamp_() : Tensor

In-place version of @see Tensor.clamp

Kind: instance method of Tensor


tensor.clamp(min, max) β‡’ Tensor

Clamps all elements in input into the range [ min, max ]

Kind: instance method of Tensor
Returns: Tensor - the output tensor.

ParamTypeDescription
minnumber

lower-bound of the range to be clamped to

maxnumber

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() β‡’ Tensor

Rounds elements of input to the nearest integer.

Kind: instance method of Tensor
Returns: Tensor - the output tensor.


tensor.repeat(...repeats) β‡’ Tensor

Repeats this tensor along the specified dimensions.

Kind: instance method of Tensor
Returns: Tensor - The repeated tensor.
Throws:

  • Error If the number of repeats is less than the number of dimensions.
ParamTypeDescription
...repeatsnumber

The number of times to repeat this tensor along each dimension.


tensor.tile(...dims) β‡’ Tensor

Constructs a tensor by repeating the elements of input. The dims argument specifies the number of repetitions in each dimension.

Kind: instance method of Tensor
Returns: Tensor - The tiled tensor.

ParamTypeDescription
...dimsnumber

The number of repetitions per dimension.


tensor.to(type) β‡’ Tensor

Performs Tensor dtype conversion.

Kind: instance method of Tensor
Returns: Tensor - The converted tensor.

ParamTypeDescription
typeDataType

The desired data type.


utils/tensor.permute(tensor, axes) β‡’ Tensor

Permutes a tensor according to the provided axes.

Kind: static method of utils/tensor
Returns: Tensor - The permuted tensor.

ParamTypeDescription
tensorany

The input tensor to permute.

axesArray

The axes to permute the tensor along.


utils/tensor.interpolate(input, size, mode, align_corners) β‡’ Tensor

Interpolates an Tensor to the given size.

Kind: static method of utils/tensor
Returns: Tensor - The interpolated tensor.

ParamTypeDescription
inputTensor

The input tensor to interpolate. Data must be channel-first (i.e., [c, h, w])

sizeArray

The output size of the image

modestring

The interpolation mode

align_cornersboolean

Whether to align corners.


utils/tensor.interpolate_4d(input, options) β‡’ Promise. < Tensor >

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.

ParamTypeDefaultDescription
inputTensor

the input tensor

optionsObject

the options for the interpolation

[options.size]Array | Array | Array

output spatial size.

[options.mode]"nearest" | "bilinear" | "bicubic"'bilinear'

algorithm used for upsampling


utils/tensor.matmul(a, b) β‡’ Promise. < Tensor >

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.

ParamTypeDescription
aTensor

the first tensor to be multiplied

bTensor

the second tensor to be multiplied


utils/tensor.rfft(x, a) β‡’ Promise. < Tensor >

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.

ParamTypeDescription
xTensor

the real input tensor

aTensor

The dimension along which to take the one dimensional real FFT.


utils/tensor.topk(x, [k]) β‡’ Promise. < Array >

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: Promise.<Array> - the output tuple of (Tensor, LongTensor) of top-k elements and their indices.

ParamTypeDescription
xTensor

the input tensor

[k]number

the k in "top-k"


utils/tensor.slice(data:, starts:, ends:, axes:, [steps]) β‡’ Promise. < Tensor >

Slice a multidimensional float32 tensor.

Kind: static method of utils/tensor
Returns: Promise.<Tensor> - Sliced data tensor.

ParamTypeDescription
data:Tensor

Tensor of data to extract slices from

starts:Array

1-D array of starting indices of corresponding axis in axes

ends:Array

1-D array of ending indices (exclusive) of corresponding axis in axes

axes:Array

1-D array of axes that starts and ends apply to

[steps]Array

1-D array of slice step of corresponding axis in axes.


utils/tensor.mean_pooling(last_hidden_state, attention_mask) β‡’ Tensor

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].

ParamTypeDescription
last_hidden_stateTensor

Tensor of shape [batchSize, seqLength, embedDim]

attention_maskTensor

Tensor of shape [batchSize, seqLength]


utils/tensor.layer_norm(input, normalized_shape, options) β‡’ Tensor

Apply Layer Normalization for last certain number of dimensions.

Kind: static method of utils/tensor
Returns: Tensor - The normalized tensor.

ParamTypeDefaultDescription
inputTensor

The input tensor

normalized_shapeArray

input shape from an expected input of size

optionsObject

The options for the layer normalization

[options.eps]number1e-5

A value added to the denominator for numerical stability.


utils/tensor.cat(tensors, dim) β‡’ Tensor

Concatenates an array of tensors along a specified dimension.

Kind: static method of utils/tensor
Returns: Tensor - The concatenated tensor.

ParamTypeDescription
tensorsArray

The array of tensors to concatenate.

dimnumber

The dimension to concatenate along.


utils/tensor.stack(tensors, dim) β‡’ Tensor

Stack an array of tensors along a specified dimension.

Kind: static method of utils/tensor
Returns: Tensor - The stacked tensor.

ParamTypeDescription
tensorsArray

The array of tensors to stack.

dimnumber

The dimension to stack along.


utils/tensor.std_mean(input, dim, correction, keepdim) β‡’ Array

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 - A tuple of (std, mean) tensors.

ParamTypeDescription
inputTensor

the input tenso

dimnumber | null

the dimension to reduce. If None, all dimensions are reduced.

correctionnumber

difference between the sample size and sample degrees of freedom. Defaults to Bessel's correction, correction=1.

keepdimboolean

whether the output tensor has dim retained or not.


utils/tensor.mean(input, dim, keepdim) β‡’ Tensor

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.

ParamTypeDescription
inputTensor

the input tensor.

dimnumber | null

the dimension to reduce.

keepdimboolean

whether the output tensor has dim retained or not.


utils/tensor.full(size, fill_value) β‡’ Tensor

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.

ParamTypeDescription
sizeArray

A sequence of integers defining the shape of the output tensor.

fill_valuenumber | bigint | boolean

The value to fill the output tensor with.


utils/tensor.ones(size) β‡’ Tensor

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.

ParamTypeDescription
sizeArray

A sequence of integers defining the shape of the output tensor.


utils/tensor.ones_like(tensor) β‡’ Tensor

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.

ParamTypeDescription
tensorTensor

The size of input will determine size of the output tensor.


utils/tensor.zeros(size) β‡’ Tensor

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.

ParamTypeDescription
sizeArray

A sequence of integers defining the shape of the output tensor.


utils/tensor.zeros_like(tensor) β‡’ Tensor

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.

ParamTypeDescription
tensorTensor

The size of input will determine size of the output tensor.


utils/tensor.rand(size) β‡’ Tensor

Returns a tensor filled with random numbers from a uniform distribution on the interval [0, 1)

Kind: static method of utils/tensor
Returns: Tensor - The random tensor.

ParamTypeDescription
sizeArray

A sequence of integers defining the shape of the output tensor.


utils/tensor.randn(size) β‡’ Tensor

Returns a tensor filled with random numbers from a normal distribution with mean 0 and variance 1 (also called the standard normal distribution).

Kind: static method of utils/tensor
Returns: Tensor - The random tensor.

ParamTypeDescription
sizeArray

A sequence of integers defining the shape of the output tensor.


utils/tensor.quantize_embeddings(tensor, precision) β‡’ Tensor

Quantizes the embeddings tensor to binary or unsigned binary precision.

Kind: static method of utils/tensor
Returns: Tensor - The quantized tensor.

ParamTypeDescription
tensorTensor

The tensor to quantize.

precision'binary' | 'ubinary'

The precision to use for quantization.


utils/tensor~args[0] : ONNXTensor

Kind: inner property of utils/tensor


utils/tensor~reshape(data, dimensions) β‡’ NestArray. < T, DIM >

Reshapes a 1-dimensional array into an n-dimensional array, according to the provided dimensions.

Kind: inner method of utils/tensor
Returns: NestArray.<T, DIM> - The reshaped array.

ParamTypeDescription
dataArray | DataArray

The input array to reshape.

dimensionsDIM

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 : any

Kind: inner property of reshape


utils/tensor~reduce_helper(callbackfn, input, dim, keepdim, [initialValue]) β‡’ Array

Kind: inner method of utils/tensor
Returns: Array - The reduced tensor data.

ParamTypeDefaultDescription
callbackfnfunction
inputTensor

the input tensor.

dimnumber

the dimension to reduce.

keepdimbooleanfalse

whether the output tensor has dim retained or not.

[initialValue]any

the initial value to start the reduction with.


utils/tensor~DataArray : string

Kind: inner typedef of utils/tensor


utils/tensor~NestArray : any

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