torch.tril_indices¶
- torch.tril_indices(row, col, offset=0, *, dtype=torch.long, device='cpu', layout=torch.strided) Tensor ¶
返回一个
row
-by-col
矩阵下三角部分的索引,以一个 2-by-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.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]])