torch.triu_indices
-
torch.triu_indices(row, col, offset=0, *, dtype=torch.long, device='cpu', layout=torch.strided) → Tensor正确的翻译应该是:torch.triu_indices(row, col, offset=0, *, dtype=torch.long, device='cpu', layout=torch.strided) → Tensor请确认是否需要进一步修改。
-
返回一个
row
行col
列矩阵上三角部分的所有索引在2-by-N张量中的坐标。第一行包含所有索引的行坐标,第二行包含所有索引的列坐标。索引先按照行排序,然后是列。矩阵的上三角部分是指包括对角线及以上的所有元素。
参数
offset
控制要考虑哪条对角线。如果offset
= 0,则保留主对角线及其上方的所有元素。正值会排除主对角线上方相应数量的对角线,负值则包含主对角线下方相应数量的对角线。主对角线上的索引集合是 $\lbrace (i, i) \rbrace$,其中 $i \in [0, \min\{d_{1}, d_{2}\} - 1]$,$d_{1}, d_{2}$ 分别是矩阵的行数和列数。注意
在 CUDA 上运行时,
row * col
必须小于 $2^{59}$ 以防止计算过程中发生溢出。- 参数
-
-
row (
int
) – 表示二维矩阵的行数。 -
col (
int
) - 2D矩阵的列数。 -
offset (
int
) - 偏移量,从主对角线开始计算。默认值:如果没有指定,默认为 0。
-
- 关键字参数
-
-
dtype (
torch.dtype
, 可选) - 返回的张量的数据类型。默认值:如果为None
,则使用torch.long
。 -
device (
torch.device
, 可选) – 返回张量所需的设备。默认情况下,如果未指定None
,则使用当前的默认张量类型设备(参见torch.set_default_device()
)。对于 CPU 张量类型,默认为 CPU 设备;对于 CUDA 张量类型,则为当前的 CUDA 设备。 -
布局 (
torch.layout
,可选) – 当前仅支持torch.strided
。
-
示例:
>>> a = torch.triu_indices(3, 3) >>> a tensor([[0, 0, 0, 1, 1, 2], [0, 1, 2, 1, 2, 2]]) >>> a = torch.triu_indices(4, 3, -1) >>> a tensor([[0, 0, 0, 1, 1, 1, 2, 2, 3], [0, 1, 2, 0, 1, 2, 1, 2, 2]]) >>> a = torch.triu_indices(4, 3, 1) >>> a tensor([[0, 0, 1], [1, 2, 2]])