心得
具体了解张量和数组在python中的区别,也学会了如何初步在mindspore中如何去使用各种形式的张量,文档也详细的列举了张量的多种使用方法,当时在稀疏张量中的indptr函数讲解的不是很清晰,我觉得文档应在详细一点。
CSRTensor
CSR
(Compressed Sparse Row)稀疏张量格式有着高效的存储与计算的优势。其中,非零元素的值存储在values
中,非零元素的位置存储在indptr
(行)和indices
(列)中。各参数含义如下:
-
indptr
: 一维整数张量, 表示稀疏数据每一行的非零元素在values
中的起始位置和终止位置, 索引数据类型支持int16、int32、int64。 -
indices
: 一维整数张量,表示稀疏张量非零元素在列中的位置, 与values
长度相等,索引数据类型支持int16、int32、int64。 -
values
: 一维张量,表示CSRTensor
相对应的非零元素的值,与indices
长度相等。 -
shape
: 表示被压缩的稀疏张量的形状,数据类型为Tuple
,目前仅支持二维CSRTensor
。
CSRTensor
的详细文档,请参考mindspore.CSRTensor。
下面给出一些CSRTensor的使用示例:
indptr = Tensor([0, 1, 2])
indices = Tensor([0, 1])
values = Tensor([1, 2], dtype=mindspore.float32)
shape = (2, 4)
# Make a CSRTensor
csr_tensor = CSRTensor(indptr, indices, values, shape)
print(csr_tensor.astype(mindspore.float64).dtype)