Transformers.js documentation
utils/tensor
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:
ErrorIf 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