Transformers.js文档

utils/tensor

Hugging Face's logo
加入Hugging Face社区

并获得增强文档体验访问权限

以开始使用

utils/tensor

Tensor处理辅助模块。

这些函数和类仅用于内部,意味着最终用户不需要访问此处。


utils/tensor.Tensor

类型utils/tensor的静态类


new Tensor(...args)

创建一个新的张量或复制现有的张量。

参数类型
...args*

tensor.dims : <code> Array. < number > </code>

张量的维度。

类型Tensor的实例属性


tensor.type : <code> DataType </code>

张量的数据类型。

类型Tensor的实例属性


tensor.data : <code> DataArray </code>

张量中存储的数据。

类型Tensor的实例属性


tensor.size : <code> number </code>

张量中元素的数量。

类型Tensor的实例属性


tensor.Symbol.iterator() ⇒ <code> Iterator </code>

返回一个迭代器对象,以行主序迭代张量数据。如果张量有多个维度,则迭代器将产生子数组。

类型: Tensor 实例方法
返回: Iterator - 以行主序迭代张量数据的迭代器对象。


tensor._getitem(index) ⇒ <code> Tensor </code>

在 Tensor 对象中索引。

类型: Tensor 实例方法
返回: Tensor - 指定索引处的数据。

参数类型描述
indexnumber

要访问的索引。


tensor.indexOf(item) ⇒ <code> number </code>

类型: Tensor 实例方法
返回值: number - 在张量数据中找到的第一个出现 item 的索引。

参数类型描述
itemnumber | bigint

要在张量中搜索的项


tensor._subarray(index, iterSize, iterDims) ⇒ <code> Tensor </code>

类型: Tensor 实例方法

参数类型
indexnumber
iterSizenumber
iterDimsany

tensor.item() ⇒ <code> number </code> | <code> bigint </code>

返回此张量的值作为一个标准的 JavaScript Number。这只适用于只有一个元素的张量。对于其他情况,请参阅 Tensor.tolist()

类型: Tensor 实例方法
返回值: number | bigint - 此张量的值作为一个标准的 JavaScript Number。
抛出异常:

  • Error 如果张量包含多个元素。

将张量数据转换为 n 维 JS 列表

类型: Tensor 实例方法


返回一个新张量,应用 sigmoid 函数到每个元素。

类型: Tensor 实例方法
返回值: Tensor - 应用 sigmoid 函数后的张量。


就地应用 sigmoid 函数到张量。

类型: Tensor 实例方法
返回值: Tensor - 返回 this


返回一个新张量,其中每个元素都乘以一个常数。

类型: Tensor 实例方法
返回值: Tensor - 新张量。

参数类型描述
valnumber

要乘以的值。


tensor.mul_(val) ⇒ <code> Tensor </code>

就地乘以常数的张量。

类型: Tensor 实例方法
返回值: Tensor - 返回 this

参数类型描述
valnumber

要乘以的值。


tensor.add(val) ⇒ <code> Tensor </code>

返回每个元素加常数的新的Tensor。

类型: Tensor 实例方法
返回值: Tensor - 新张量。

参数类型描述
valnumber

要加的值。


tensor.add_(val) ⇒ <code> Tensor </code>

就地加常数的张量。

类型: Tensor 实例方法
返回值: Tensor - 返回 this

参数类型描述
valnumber

要加的值。


tensor.permute(...dims) ⇒ <code> Tensor </code>

根据提供的维度返回一个置换版本的Tensor。

类型: Tensor 实例方法
返回: Tensor - 置换的tensor。

参数类型描述
...dimsnumber

置换的维度。


tensor.sum([dim], keepdim) ⇒

返回输入张量在给定维度dim上的每行的总和。

类型: Tensor 实例方法
返回: 求和后的张量

参数类型默认值描述
[dim]number

要减少的维度或维度。如果 null,则所有维度都被减少。

keepdim布尔值false

输出张量是否保留 dim


tensor.norm([p], [dim], [keepdim]) ⇒ <code> Tensor </code>

返回给定张量的矩阵范数或向量范数。

类型: Tensor 实例方法
返回: Tensor - 张量的范数。

参数类型默认值描述
[p]number | string'fro'

范数的阶次

[dim]number

指定要在张量的哪个维度上计算范数。如果 dim 为 None,范数将在输入的所有维度上计算。

[keepdim]布尔值false

输出张量是否保留 dim。


tensor.normalize_([p], [dim]) ⇒ <code> Tensor </code>

按照指定维度对输入执行L_p规范化。原地操作。

类型: Tensor 实例方法
返回: Tensor - this 用于操作链。

参数类型默认值描述
[p]number2

范数公式中的指数值

[dim]number1

要减少的维度


tensor.normalize([p], [dim]) ⇒ <code> Tensor </code>

在指定的维度上执行输入的 L_p 归一化。

类型: Tensor 实例方法
返回值: Tensor - 归一化后的张量。

参数类型默认值描述
[p]number2

范数公式中的指数值

[dim]number1

要减少的维度


tensor.stride() ⇒ <code> Array.< number > </code>

计算并返回此张量的步长。步长是从一个元素跳到下一个元素所需的跳跃。

类型: Tensor 实例方法
返回值: Array.<number> - 此张量的步长。


tensor.squeeze([dim]) ⇒

返回一个去掉所有指定维度大小为 1 的输入的张量。

注意:返回的张量与输入张量共享存储,因此修改一个的任何内容将改变另一个的内容。如果您想要一个副本,请在压缩之前使用 tensor.clone()

类型: Tensor 实例方法
返回值:压缩后的张量

参数类型默认值描述
[dim]number

如果提供,则只在该指定的维度上压缩输入。


tensor.squeeze_()

此函数为 @see Tensor.squeeze 的就地版本

类型: Tensor 实例方法


tensor.unsqueeze(dim) ⇒

返回一个新张量,在指定位置插入大小为1的维度。

注意:返回的张量与此张量共享相同的底层数据。

类型: Tensor 实例方法
返回:未挤压的张量

参数类型默认值描述
dimnumber

插入单维度的索引位置


tensor.unsqueeze_()

此函数为 @see Tensor.unsqueeze 的就地版本

类型: Tensor 实例方法


tensor.flatten_()

此函数为 @see Tensor.flatten 的就地版本

类型: Tensor 实例方法


tensor.flatten(start_dim, end_dim) ⇒

通过重新整形为的一维张量来展平输入。如果传递了start_dimend_dim,则只展平从start_dim开始的维度和以end_dim结束的维度。输入元素的顺序保持不变。

类型: Tensor 实例方法
返回:展开的张量。

参数类型默认值描述
start_dimnumber0

要展平的第一个维度

end_dimnumber

要展平的最后一个维度


tensor.view(...dims) ⇒ <code> Tensor </code>

返回一个新的与当前tensor具有相同数据但不同形状的tensor。

类型: Tensor 实例方法
返回: Tensor - 与当前tensor具有相同数据但不同形状的tensor

参数类型描述
...dimsnumber

所需的大小


tensor.clamp_()

与@see Tensor.clamp的in-place版本

类型: Tensor 实例方法


tensor.clamp(min, max) ⇒

将输入中的所有元素限制在范围 [min, max] 内

类型: Tensor 实例方法
返回值:输出张量。

参数类型描述
minnumber

被限制范围的下界

maxnumber

被限制范围的上界


tensor.round_()

与 @see Tensor.round 的 in-place 版本

类型: Tensor 实例方法


tensor.round() ⇒

将输入中的元素四舍五入到最接近的整数。

类型: Tensor 实例方法
返回值:输出张量。


tensor.to(type) ⇒ <code> Tensor </code>

执行张量数据类型转换。

类型: Tensor 实例方法
返回值Tensor - 转换后的张量。

参数类型描述
typeDataType

所需的数据类型。


utils/tensor.permute(tensor, axes) ⇒ <code> Tensor </code>

根据提供的轴重新排列张量。

类型utils/tensor 的静态方法
返回: Tensor - 置换的tensor。

参数类型描述
tensorany

要重新排列的张量输入。

axes数组

沿着要重新排列张量的轴。


utils/tensor.interpolate(input, size, mode, align_corners) ⇒ <code> Tensor </code>

将 Tensor 插值到给定的尺寸。

类型utils/tensor 的静态方法
返回Tensor - 插值后的张量。

参数类型描述
inputTensor

要插值的输入张量。数据必须是 channel-first 格式(即 [c, h, w])

size数组 <number>

图像的输出尺寸

mode字符串

插值模式

align_corners布尔值

是否对齐角落。


utils/tensor.mean_pooling(last_hidden_state, attention_mask) ⇒ <code> Tensor </code>

执行最后一个隐藏状态的均值池化并跟随一个归一化步骤。

类型utils/tensor 的静态方法
返回Tensor - 返回一个新 Tensor,形状为 [batchSize, embedDim]。

参数类型描述
last_hidden_stateTensor

形状为 [batchSize, seqLength, embedDim] 的 Tensor

attention_maskTensor

形状为 [batchSize, seqLength] 的 Tensor


utils/tensor.layer_norm(input, normalized_shape, options) ⇒ <code> Tensor </code>

对最后一定数量的维度应用层归一化。

类型utils/tensor 的静态方法
返回值: Tensor - 归一化后的张量。

参数类型默认值描述
inputTensor

输入张量

normalized_shape数组 <number>

来自预期输入大小的输入形状

options对象

层归一化的选项

[options.eps]number1e-5

添加到分母的值,用于数字稳定性。


utils/tensor.cat(tensors, dim) ⇒ <code> Tensor </code>

沿指定维度连接张量数组。

类型utils/tensor 的静态方法
返回值: Tensor - 连接后的张量。

参数类型描述
tensors数组.

要连接的张量数组。

dimnumber

要连接的维度。


utils/tensor.stack(tensors, dim) ⇒ <code> Tensor </code>

沿指定维度堆叠张量数组。

类型utils/tensor 的静态方法
返回值: Tensor - 堆叠的张量。

参数类型描述
tensors数组.

要堆叠的张量数组。

dimnumber

要堆叠的维度。


utils/tensor.std_mean(input, dim, correction, keepdim) ⇒ <code> 数组. < 张量 > </code>

计算指定维度的标准差和均值。dim可以是一个维度或者null以在所有维度上降低。

类型utils/tensor 的静态方法
返回: 数组.<张量> - 一个包含(std, mean)张量的元组。

参数类型描述
inputTensor

输入张量

dimnumber | null

要减少的维度。如果为None,则所有维度都会减少。

correctionnumber

样本大小与样本自由度的差异。默认为贝塞尔修正,correction=1。

keepdim布尔值

输出张量是否保留dim。


utils/tensor.mean(input, dim, keepdim) ⇒

返回输入张量中每个行在给定维度dim上的均值。

类型utils/tensor 的静态方法
返回: 沿指定维度取均值的新张量。

参数类型描述
inputTensor

输入张量。

dimnumber | null

要减少的维度。

keepdim布尔值

输出张量是否保留dim。


utils/tensor.dynamicTimeWarping(matrix) ⇒ <code> 数组. < 数组 < number > > </code>

测量两个时间序列之间的相似性(例如,输入音频和输出标记以生成按标记级时间戳的输出标记)。

类型utils/tensor 的静态方法

参数类型
matrixTensor

utils/tensor.ones(size)

返回一个填充了标量值1的张量,其形状由变量参数size定义。

类型utils/tensor 的静态方法

参数类型描述
size数组 <number>

定义输出张量形状的一组整数。


utils/tensor.ones_like(tensor) ⇒

返回一个填充了标量值1的张量,其大小与输入相同。

类型utils/tensor 的静态方法
返回:标量张量

参数类型描述
tensorTensor

输入的大小将决定输出张量的大小。


utils/tensor.quantize_embeddings(tensor, precision) ⇒ <code> Tensor </code>

将嵌入张量二值化或无符号二值精度量化。

类型utils/tensor 的静态方法
返回: Tensor - 量化张量

参数类型描述
tensorTensor

要量化的张量。

precision'binary' | 'ubinary'

用于量化的精度。


utils/tensor~args[0] : <code> 数据类型 </code>

类型utils/tensor 的内部属性


utils/tensor~args[1] : <code> * </code>

类型utils/tensor 的内部属性


utils/tensor~reshape(data, dimensions) ⇒ <code> * </code>

按照提供的维度将一维数组重塑为n维数组。

类型utils/tensor 的内部方法
返回* - 重塑后的数组。

参数类型描述
dataArray | DataArray

要重塑的输入数组。

dimensions维度

目标形状/维度。

示例

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>

类型reshape 的内部属性


utils/tensor~DataArray : <code> * </code>

类型:模块 utils/tensor 的内部自类型定义


utils/tensor~NestArray : <code> * </code>

这创建了一个给定类型和深度的嵌套数组(详见示例)。

类型:模块 utils/tensor 的内部自类型定义
示例

NestArray<string, 1>; // string[]

示例

NestArray<number, 2>; // number[][]

示例

NestArray<string, 3>; // string[][][] etc.

< > 在GitHub上更新