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的属性及稀疏张量