utils/tensor
Tensor处理辅助模块。
这些函数和类仅用于内部,意味着最终用户不需要访问此处。
- utils/tensor
- 静态
- .Tensor
new Tensor(...args)
.dims
:Array.<number>
.type
:数据类型
.data
:数据数组
.size
:数字
.Symbol.iterator()
⇒迭代器
._getitem(index)
⇒张量
.indexOf(item)
⇒数字
._subarray(index, iterSize, iterDims)
⇒张量
.item()
⇒数字
|大整数
.tolist()
⇒数组
.sigmoid()
⇒张量
.sigmoid_()
⇒张量
.mul(val)
⇒张量
.mul_(val)
⇒张量
.add(val)
⇒张量
.add_(val)
⇒张量
.permute(...dims)
⇒张量
.sum([dim], keepdim)
⇒.norm([p], [dim], [keepdim])
⇒张量
.normalize_([p], [dim])
⇒张量
.normalize([p], [dim])
⇒张量
.stride()
⇒数组.<数字>
.squeeze([dim])
⇒.squeeze_()
.unsqueeze(dim)
⇒.unsqueeze_()
.flatten_()
.flatten(start_dim, end_dim)
⇒.view(...dims)
⇒张量
.clamp_()
.clamp(min, max)
⇒.round_()
.round()
⇒.to(type)
⇒张量
.permute(tensor, axes)
⇒张量
.interpolate(input, size, mode, align_corners)
⇒张量
.mean_pooling(last_hidden_state, attention_mask)
⇒张量
.layer_norm(input, normalized_shape, options)
⇒张量
.cat(tensors, dim)
⇒张量
.stack(tensors, dim)
⇒张量
.std_mean(input, dim, correction, keepdim)
⇒数组.<张量>
.mean(input, dim, keepdim)
⇒.dynamicTimeWarping(matrix)
⇒数组.<数组<数字>>
.ones(size)
.ones_like(tensor)
⇒.quantize_embeddings(tensor, precision)
⇒张量
- .Tensor
- 内部
~args[0]
:数据类型
~args[1]
:*
~reshape(data, dimensions)
⇒*
~reshapedArray
:任意
~DataArray
:*
~NestArray
:*
- 静态
utils/tensor.Tensor
类型:utils/tensor
的静态类
- .Tensor
new Tensor(...args)
.dims
:Array.<number>
.type
:数据类型
.data
:数据数组
.size
:数字
.Symbol.iterator()
⇒迭代器
._getitem(index)
⇒张量
.indexOf(item)
⇒数字
._subarray(index, iterSize, iterDims)
⇒张量
.item()
⇒数字
|大整数
.tolist()
⇒数组
.sigmoid()
⇒张量
.sigmoid_()
⇒张量
.mul(val)
⇒张量
.mul_(val)
⇒张量
.add(val)
⇒张量
.add_(val)
⇒张量
.permute(...dims)
⇒张量
.sum([dim], keepdim)
⇒.norm([p], [dim], [keepdim])
⇒张量
.normalize_([p], [dim])
⇒张量
.normalize([p], [dim])
⇒张量
.stride()
⇒数组.<数字>
.squeeze([dim])
⇒.squeeze_()
.unsqueeze(dim)
⇒.unsqueeze_()
.flatten_()
.flatten(start_dim, end_dim)
⇒.view(...dims)
⇒张量
.clamp_()
.clamp(min, max)
⇒.round_()
.round()
⇒.to(type)
⇒张量
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
- 指定索引处的数据。
参数 | 类型 | 描述 |
---|---|---|
index | number | 要访问的索引。 |
tensor.indexOf(item) ⇒ <code> number </code>
类型: Tensor
实例方法
返回值: number
- 在张量数据中找到的第一个出现 item 的索引。
参数 | 类型 | 描述 |
---|---|---|
item | number | bigint | 要在张量中搜索的项 |
tensor._subarray(index, iterSize, iterDims) ⇒ <code> Tensor </code>
类型: Tensor
实例方法
参数 | 类型 |
---|---|
index | number |
iterSize | number |
iterDims | any |
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
- 新张量。
参数 | 类型 | 描述 |
---|---|---|
val | number | 要乘以的值。 |
tensor.mul_(val) ⇒ <code> Tensor </code>
就地乘以常数的张量。
类型: Tensor
实例方法
返回值: Tensor
- 返回 this
。
参数 | 类型 | 描述 |
---|---|---|
val | number | 要乘以的值。 |
tensor.add(val) ⇒ <code> Tensor </code>
返回每个元素加常数的新的Tensor。
类型: Tensor
实例方法
返回值: Tensor
- 新张量。
参数 | 类型 | 描述 |
---|---|---|
val | number | 要加的值。 |
tensor.add_(val) ⇒ <code> Tensor </code>
就地加常数的张量。
类型: Tensor
实例方法
返回值: Tensor
- 返回 this
。
参数 | 类型 | 描述 |
---|---|---|
val | number | 要加的值。 |
tensor.permute(...dims) ⇒ <code> Tensor </code>
根据提供的维度返回一个置换版本的Tensor。
类型: Tensor
实例方法
返回: Tensor
- 置换的tensor。
参数 | 类型 | 描述 |
---|---|---|
...dims | number | 置换的维度。 |
tensor.sum([dim], keepdim) ⇒
返回输入张量在给定维度dim上的每行的总和。
类型: Tensor
实例方法
返回: 求和后的张量
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
[dim] | number |
| 要减少的维度或维度。如果 |
keepdim | 布尔值 | false | 输出张量是否保留 |
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] | number | 2 | 范数公式中的指数值 |
[dim] | number | 1 | 要减少的维度 |
tensor.normalize([p], [dim]) ⇒ <code> Tensor </code>
在指定的维度上执行输入的 L_p 归一化。
类型: Tensor
实例方法
返回值: Tensor
- 归一化后的张量。
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
[p] | number | 2 | 范数公式中的指数值 |
[dim] | number | 1 | 要减少的维度 |
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
实例方法
返回:未挤压的张量
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
dim | number |
| 插入单维度的索引位置 |
tensor.unsqueeze_()
此函数为 @see Tensor.unsqueeze 的就地版本
类型: Tensor
实例方法
tensor.flatten_()
此函数为 @see Tensor.flatten 的就地版本
类型: Tensor
实例方法
tensor.flatten(start_dim, end_dim) ⇒
通过重新整形为的一维张量来展平输入。如果传递了start_dim
或end_dim
,则只展平从start_dim
开始的维度和以end_dim
结束的维度。输入元素的顺序保持不变。
类型: Tensor
实例方法
返回:展开的张量。
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
start_dim | number | 0 | 要展平的第一个维度 |
end_dim | number | 要展平的最后一个维度 |
tensor.view(...dims) ⇒ <code> Tensor </code>
返回一个新的与当前tensor具有相同数据但不同形状的tensor。
类型: Tensor
实例方法
返回: Tensor
- 与当前tensor具有相同数据但不同形状的tensor
参数 | 类型 | 描述 |
---|---|---|
...dims | number | 所需的大小 |
tensor.clamp_()
与@see Tensor.clamp的in-place版本
类型: Tensor
实例方法
tensor.clamp(min, max) ⇒
将输入中的所有元素限制在范围 [min, max] 内
类型: Tensor
实例方法
返回值:输出张量。
参数 | 类型 | 描述 |
---|---|---|
min | number | 被限制范围的下界 |
max | number | 被限制范围的上界 |
tensor.round_()
与 @see Tensor.round 的 in-place 版本
类型: Tensor
实例方法
tensor.round() ⇒
将输入中的元素四舍五入到最接近的整数。
类型: Tensor
实例方法
返回值:输出张量。
tensor.to(type) ⇒ <code> Tensor </code>
执行张量数据类型转换。
类型: Tensor
实例方法
返回值:Tensor
- 转换后的张量。
参数 | 类型 | 描述 |
---|---|---|
type | DataType | 所需的数据类型。 |
utils/tensor.permute(tensor, axes) ⇒ <code> Tensor </code>
根据提供的轴重新排列张量。
类型: utils/tensor
的静态方法
返回: Tensor
- 置换的tensor。
参数 | 类型 | 描述 |
---|---|---|
tensor | any | 要重新排列的张量输入。 |
axes | 数组 | 沿着要重新排列张量的轴。 |
utils/tensor.interpolate(input, size, mode, align_corners) ⇒ <code> Tensor </code>
将 Tensor 插值到给定的尺寸。
类型: utils/tensor
的静态方法
返回:Tensor
- 插值后的张量。
参数 | 类型 | 描述 |
---|---|---|
input | Tensor | 要插值的输入张量。数据必须是 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_state | Tensor | 形状为 [batchSize, seqLength, embedDim] 的 Tensor |
attention_mask | Tensor | 形状为 [batchSize, seqLength] 的 Tensor |
utils/tensor.layer_norm(input, normalized_shape, options) ⇒ <code> Tensor </code>
对最后一定数量的维度应用层归一化。
类型: utils/tensor
的静态方法
返回值: Tensor
- 归一化后的张量。
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
input | Tensor | 输入张量 | |
normalized_shape | 数组 <number> | 来自预期输入大小的输入形状 | |
options | 对象 | 层归一化的选项 | |
[options.eps] | number | 1e-5 | 添加到分母的值,用于数字稳定性。 |
utils/tensor.cat(tensors, dim) ⇒ <code> Tensor </code>
沿指定维度连接张量数组。
类型: utils/tensor
的静态方法
返回值: Tensor
- 连接后的张量。
参数 | 类型 | 描述 |
---|---|---|
tensors | 数组. | 要连接的张量数组。 |
dim | number | 要连接的维度。 |
utils/tensor.stack(tensors, dim) ⇒ <code> Tensor </code>
沿指定维度堆叠张量数组。
类型: utils/tensor
的静态方法
返回值: Tensor
- 堆叠的张量。
参数 | 类型 | 描述 |
---|---|---|
tensors | 数组. | 要堆叠的张量数组。 |
dim | number | 要堆叠的维度。 |
utils/tensor.std_mean(input, dim, correction, keepdim) ⇒ <code> 数组. < 张量 > </code>
计算指定维度的标准差和均值。dim可以是一个维度或者null
以在所有维度上降低。
类型: utils/tensor
的静态方法
返回: 数组.<张量>
- 一个包含(std, mean)张量的元组。
参数 | 类型 | 描述 |
---|---|---|
input | Tensor | 输入张量 |
dim | number | null | 要减少的维度。如果为None,则所有维度都会减少。 |
correction | number | 样本大小与样本自由度的差异。默认为贝塞尔修正,correction=1。 |
keepdim | 布尔值 | 输出张量是否保留dim。 |
utils/tensor.mean(input, dim, keepdim) ⇒
返回输入张量中每个行在给定维度dim上的均值。
类型: utils/tensor
的静态方法
返回: 沿指定维度取均值的新张量。
参数 | 类型 | 描述 |
---|---|---|
input | Tensor | 输入张量。 |
dim | number | null | 要减少的维度。 |
keepdim | 布尔值 | 输出张量是否保留dim。 |
utils/tensor.dynamicTimeWarping(matrix) ⇒ <code> 数组. < 数组 < number > > </code>
测量两个时间序列之间的相似性(例如,输入音频和输出标记以生成按标记级时间戳的输出标记)。
类型: utils/tensor
的静态方法
参数 | 类型 |
---|---|
matrix | Tensor |
utils/tensor.ones(size)
返回一个填充了标量值1的张量,其形状由变量参数size定义。
类型: utils/tensor
的静态方法
参数 | 类型 | 描述 |
---|---|---|
size | 数组 <number> | 定义输出张量形状的一组整数。 |
utils/tensor.ones_like(tensor) ⇒
返回一个填充了标量值1的张量,其大小与输入相同。
类型: utils/tensor
的静态方法
返回:标量张量
参数 | 类型 | 描述 |
---|---|---|
tensor | Tensor | 输入的大小将决定输出张量的大小。 |
utils/tensor.quantize_embeddings(tensor, precision) ⇒ <code> Tensor </code>
将嵌入张量二值化或无符号二值精度量化。
类型: utils/tensor
的静态方法
返回: Tensor
- 量化张量
参数 | 类型 | 描述 |
---|---|---|
tensor | Tensor | 要量化的张量。 |
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
的内部方法
返回: *
- 重塑后的数组。
参数 | 类型 | 描述 |
---|---|---|
data | Array | 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上更新