torch.triu_indices¶
- torch.triu_indices(row, col, offset=0, *, dtype=torch.long, device='cpu', layout=torch.strided) Tensor ¶
返回一个
row
行col
列矩阵上三角部分的索引,以 2 行 N 列的 Tensor 形式返回,其中第一行包含所有索引的行坐标,第二行包含列坐标。索引按行优先,然后按列排序。矩阵的上三角部分定义为对角线及其以上的元素。
参数
offset
控制考虑哪个对角线。如果offset
= 0,则保留对角线及其以上的所有元素。正值会排除与主对角线相同数量的上对角线,同样,负值会包含与主对角线相同数量的下对角线。主对角线是索引集合 ,其中 是矩阵的维度。注意
在 CUDA 上运行时,
row * col
必须小于 ,以防止计算过程中的溢出。- 参数:
行(
int
)- 2-D 矩阵中的行数。列(
int
)- 2-D 矩阵中的列数。偏移量(
int
)- 从主对角线到对角线的偏移量。默认:如果没有提供,则为 0。
- 关键字参数:
数据类型(
torch.dtype
,可选)- 返回张量的期望数据类型。默认:如果None
,torch.long
。device (
torch.device
,可选) – 返回张量的期望设备。默认:如果None
,则使用当前设备用于默认张量类型(见torch.set_default_device()
)。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]])