在深度学习中,可以理解为Tensor是一个多维度的矩阵。张量是一个不随参照系的坐标变换(其实就是基向量变化)而变化的东西。
每一个Tensor都有torch.dtype、torch.device、torch.layout
dev = torch.device("cpu") # 使用cpu
print(torch.tensor([1, 2], device=dev)) # 将张量放在cpu上
dev = torch.device("cuda:0") # 使用gpu
print(torch.tensor([1, 2], device=dev)) # 将张量放在gpu上
# 张量的稀疏化
indexs = torch.tensor([[0, 1, 1], [2, 0, 2]]) # 索引
values = torch.tensor([3, 4, 5], dtype=torch.float32) # 值
x = torch.sparse_coo_tensor(indexs, values, [2, 4]) # 稀疏化
print(x)
print(x.to_dense()) # 将稀疏张量转化为稠密张量(含有多个0)
# 输出
tensor([1, 2]) # cpu上的张量
tensor([1, 2], device='cuda:0') # gpu上的张量
tensor(indices=tensor([[0, 1, 1],
[2, 0, 2]]),
values=tensor([3., 4., 5.]),
size=(2, 4), nnz=3, layout=torch.sparse_coo) # 稀疏张量的存储
tensor([[0., 0., 3., 0.], # 稀疏转稠密
[4., 0., 5., 0.]])
本文只用于个人学习与记录,侵权立删