torch.tril_indices¶
- torch.tril_indices(row, col, offset=0, *, dtype=torch.long, device='cpu', layout=torch.strided) Tensor ¶
傳回一個 2-by-N Tensor,其中包含一個
row
-by-col
矩陣之下三角部分的索引。Tensor 的第一列包含所有索引的列坐標,第二列包含行坐標。索引的排序方式是先依照列,再依照行。矩陣的下三角部分定義為對角線及其下方的元素。
參數
offset
控制要考慮哪一條對角線。如果offset
= 0,則保留主對角線及其下方的所有元素。正值會包含主對角線上方相同數量的對角線,類似地,負值會排除主對角線下方相同數量的對角線。主對角線是索引的集合 對於 其中 是矩陣的維度。注意
在 CUDA 上運行時,
row * col
必須小於 ,以防止計算期間發生溢位。- 參數
row (
int
) – 2-D 矩陣中的列數。col (
int
) – 2-D 矩陣中的行數。offset (
int
) – 距離主對角線的對角線偏移量。預設值:如果未提供,則為 0。
- 關鍵字參數
dtype (
torch.dtype
, optional) – 傳回 tensor 的期望資料類型。預設值:如果None
,則為torch.long
。device (
torch.device
, optional) – 傳回 tensor 的期望裝置。預設值:如果None
,則使用預設 tensor 類型的目前裝置 (請參閱torch.set_default_device()
)。device
對於 CPU tensor 類型將為 CPU,對於 CUDA tensor 類型將為目前的 CUDA 裝置。layout (
torch.layout
, optional) – 目前僅支援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]])