torch.sparse_coo_tensor
函数可以用于创建稀疏矩阵。下面是一个简单的示例,展示如何使用torch.sparse_coo_tensor
函数创建一个大小为4x4的稀疏矩阵,其中只有(0, 0)和(2, 3)两个位置有值:
import torch
# 创建稀疏矩阵的索引对和值
indices = torch.tensor([[0, 0], [2, 3]])
values = torch.tensor([1, 2])
# 创建稀疏矩阵
sparse_matrix = torch.sparse_coo_tensor(indices.t(), values, (4, 4))
# 将稀疏矩阵转换为密集矩阵
dense_matrix = sparse_matrix.to_dense()
print(dense_matrix)
在上述示例中,我们首先创建一个大小为2x2的索引对张量和一个大小为2的值张量。然后,我们使用torch.sparse_coo_tensor
函数将这些张量转换为一个稀疏矩阵。最后,我们使用to_dense
方法将稀疏矩阵转换为密集矩阵,以便输出结果。
需要注意的是,torch.sparse_coo_tensor
函数需要传入稀疏矩阵的索引对和值。索引对是一个大小为[n, d]
的张量,其中n
是稀疏矩阵中非零元素的数量,d
是稀疏矩阵的维度。值是一个大小为[n]
的张量,其中存储了稀疏矩阵中非零元素的值。在示例中,我们使用了t()
方法将索引对张量进行了转置,以符合torch.sparse_coo_tensor
函数的输入要求。