torch.tril_indices¶
- torch.tril_indices(row, col, offset=0, *, dtype=torch.long, device='cpu', layout=torch.strided) Tensor ¶
在 2×N 张量中返回
row
行×col
列矩阵的下三角部分的索引,其中第一行包含所有索引的行坐标,第二行包含列坐标。索引是基于行然后列排序的。矩阵的下三角部分定义为对角线及其下方元素。
参数
offset
控制要考虑的对角线。如果offset
= 0,则保留对角线上及以下的所有元素。正值包括主对角线上方相同数量的对角线,类似地,负值排除主对角线下方相同数量的对角线。主对角线是索引集 for 其中 是矩阵的维数。注意
在 CUDA 上运行时,
row * col
必须小于 ,以防止计算过程中出现溢出。- 参数
row (
int
) – 2 维矩阵的行数。col (
int
) – 2 维矩阵的列数。offset (
int
) – 主对角线的偏移量。默认:如果没有提供,则为 0。
- 关键字参数
dtype (
torch.dtype
, 可选) – 返回张量的所需数据类型。默认:如果为None
,则为torch.long
。device (
torch.device
, 可选) – 返回张量的所需设备。默认:如果为None
,则使用当前设备作为默认张量类型 (参见torch.set_default_device()
)。device
将是 CPU 用于 CPU 张量类型,而当前 CUDA 设备将用于 CUDA 张量类型。layout (
torch.layout
, 可选) – 目前仅支持torch.strided
。
示例
>>> a = torch.tril_indices(3, 3) >>> a tensor([[0, 1, 1, 2, 2, 2], [0, 0, 1, 0, 1, 2]]) >>> a = torch.tril_indices(4, 3, -1) >>> a tensor([[1, 2, 2, 3, 3, 3], [0, 0, 1, 0, 1, 2]]) >>> a = torch.tril_indices(4, 3, 1) >>> a tensor([[0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3], [0, 1, 0, 1, 2, 0, 1, 2, 0, 1, 2]])