Pytorch中Tensor的属性及稀疏张量
介绍Pytorch中Tensor的属性以及稀疏张量的概念,还有一个小概念——COO风格矩阵。
Tensor的属性
每个Tensor有三个属性
torch.dtype:表示Tensor的类型torch.device:表示Tensor对象在创建后所存储在的设备名称torch.layout:表示Tensor对象的内存布局(稠密或稀疏)
1 | |
第一个参数为Tensor的元素值
1 | |
稀疏张量
定义稀疏张量需要三个参数
- 非零元素的坐标
- 非零元素的值
- Tensor的形状
其中,非零元素的坐标和值需要定义为Tensor
1 | |
利用sparse_coo_tensor()函数定义稀疏张量
1 | |
最后一个参数为Tensor的形状
1 | |
可以转换为稠密张量
1 | |
1 | |
注意非零元素的坐标和值的定义,采用的是COO风格矩阵的表示方法
COO风格矩阵采用三元组表示元素的位置和值,即
(row, col, value)
sparse_coo_tensor()函数中
indices表示非零元素的位置,该参数定义为了含有两个向量的Tensor,第一个向量表示行,第二个向量表示列values表示非零元素的值,该参数定义为了含有一个向量的Tensor,向量的值即为非零元素的值两个参数共同组成了三元组,即COO风格矩阵
当然也可以同时指定Tensor的属性
1 | |
1 | |
Pytorch中Tensor的属性及稀疏张量

