本文簡要介紹python語言中 torch.sparse_coo_tensor
的用法。
用法:
torch.sparse_coo_tensor(indices, values, size=None, *, dtype=None, device=None, requires_grad=False) → Tensor
indices(array_like) -張量的初始數據。可以是列表、元組、NumPy
ndarray
、標量和其他類型。將在內部轉換為torch.LongTensor
。索引是矩陣中非零值的坐標,因此應該是二維的,其中第一維是張量維度的數量,第二維是非零值的數量。values(array_like) -張量的初始值。可以是列表、元組、NumPy
ndarray
、標量和其他類型。size(列表、元組或
torch.Size
, 可選的) -稀疏張量的大小。如果未提供,則大小將被推斷為足以容納所有非零元素的最小大小。
dtype(
torch.dtype
, 可選的) -返回張量的所需數據類型。默認值:如果無,則從values
推斷數據類型。device(
torch.device
, 可選的) -返回張量的所需設備。默認值:如果沒有,則使用當前設備作為默認張量類型(請參閱torch.set_default_tensor_type()
)。對於 CPU 張量類型,device
將是 CPU;對於 CUDA 張量類型,device
將是當前的 CUDA 設備。requires_grad(bool,可選的) -如果 autograd 應該在返回的張量上記錄操作。默認值:
False
。
在給定的
indices
處構造一個具有指定值的 COO(rdinate) 格式的稀疏張量。注意
此函數返回一個未合並的張量。
例子:
>>> i = torch.tensor([[0, 1, 1], ... [2, 0, 2]]) >>> v = torch.tensor([3, 4, 5], dtype=torch.float32) >>> torch.sparse_coo_tensor(i, v, [2, 4]) tensor(indices=tensor([[0, 1, 1], [2, 0, 2]]), values=tensor([3., 4., 5.]), size=(2, 4), nnz=3, layout=torch.sparse_coo) >>> torch.sparse_coo_tensor(i, v) # Shape inference tensor(indices=tensor([[0, 1, 1], [2, 0, 2]]), values=tensor([3., 4., 5.]), size=(2, 3), nnz=3, layout=torch.sparse_coo) >>> torch.sparse_coo_tensor(i, v, [2, 4], ... dtype=torch.float64, ... device=torch.device('cuda:0')) tensor(indices=tensor([[0, 1, 1], [2, 0, 2]]), values=tensor([3., 4., 5.]), device='cuda:0', size=(2, 4), nnz=3, dtype=torch.float64, layout=torch.sparse_coo) # Create an empty sparse tensor with the following invariants: # 1. sparse_dim + dense_dim = len(SparseTensor.shape) # 2. SparseTensor._indices().shape = (sparse_dim, nnz) # 3. SparseTensor._values().shape = (nnz, SparseTensor.shape[sparse_dim:]) # # For instance, to create an empty sparse tensor with nnz = 0, dense_dim = 0 and # sparse_dim = 1 (hence indices is a 2D tensor of shape = (1, 0)) >>> S = torch.sparse_coo_tensor(torch.empty([1, 0]), [], [1]) tensor(indices=tensor([], size=(1, 0)), values=tensor([], size=(0,)), size=(1,), nnz=0, layout=torch.sparse_coo) # and to create an empty sparse tensor with nnz = 0, dense_dim = 1 and # sparse_dim = 1 >>> S = torch.sparse_coo_tensor(torch.empty([1, 0]), torch.empty([0, 2]), [1, 2]) tensor(indices=tensor([], size=(1, 0)), values=tensor([], size=(0, 2)), size=(1, 2), nnz=0, layout=torch.sparse_coo)
參數:
關鍵字參數:
相關用法
- Python PyTorch sparse_csr_tensor用法及代碼示例
- Python PyTorch sparse_用法及代碼示例
- Python PyTorch spectral_norm用法及代碼示例
- Python PyTorch split用法及代碼示例
- Python PyTorch saved_tensors_hooks用法及代碼示例
- Python PyTorch sqrt用法及代碼示例
- Python PyTorch skippable用法及代碼示例
- Python PyTorch squeeze用法及代碼示例
- Python PyTorch square用法及代碼示例
- Python PyTorch save_on_cpu用法及代碼示例
- Python PyTorch scatter_object_list用法及代碼示例
- Python PyTorch skip_init用法及代碼示例
- Python PyTorch simple_space_split用法及代碼示例
- Python PyTorch sum用法及代碼示例
- Python PyTorch sub用法及代碼示例
- Python PyTorch sentencepiece_numericalizer用法及代碼示例
- Python PyTorch symeig用法及代碼示例
- Python PyTorch sinh用法及代碼示例
- Python PyTorch sinc用法及代碼示例
- Python PyTorch std_mean用法及代碼示例
- Python PyTorch slogdet用法及代碼示例
- Python PyTorch symbolic_trace用法及代碼示例
- Python PyTorch shutdown用法及代碼示例
- Python PyTorch sgn用法及代碼示例
- Python PyTorch set_flush_denormal用法及代碼示例
注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torch.sparse_coo_tensor。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。