昇思25天学习打卡营第3天|MindSpore张量

打印 上一主题 下一主题

主题 689|帖子 689|积分 2067

# 打卡


目次
# 打卡

涉及知识点
1. 创建张量的4种方式
运行例子
2. 张量属性和索引
运行例子
3. 张量运算
运行例子
4. Tensor 与 Numpy 转换
5. 稀疏张量:CSR和COO
CSRTensor
运行例子
COOTensor
运行例子
RowTensor






  1. import mindspore
  2. from mindspore import ops
  3. from mindspore import Tensor, CSRTensor, COOTensor
  4. from mindspore.common.initializer import One, Normal
复制代码
阐明:本次打卡因长途notebook无法打卡,当地运行,当地安装都是python3.10以上的环境,安装mindspore时发现没有适配的版本,新建python3.9环境后可正常安装,算是一个版本的问题记录吧。

涉及知识点

1. 创建张量的4种方式

1)用数据支持生成;
2)从numpy数组生成
3)用init初始化器构造(不建议使用,主要用于并行模式下的延后初始化);
4)继续另一个张量的属性

附: 
1)支持的数据类型有Tensor、float、int、bool、tuple、list、numpy.adarray。
3)init支持传入的参数有init, shape, dtype。shape 支持传入 list、tuple、 int。
mindspore.common.initializer — MindSpore master 文档
mindspore.dtype — MindSpore master 文档
4)例如:ops.ones_like、ops.zeros_like

运行例子





2. 张量属性和索引



  • 张量属性:形状shape(tuple)、数据类型dtype(mindspore.xxx)、转置张量()、单个元素巨细(itemsize(int))、占用字节数量(nbytes(int))、维数(ndim(int),=len(tensor.shape))、元素个数(size(int))和每一维步长(strides(tuple))。
  • 索引特性:从0开始;负索引;索引切片( :, ..., 方式)

运行例子




3. 张量运算

算数运算、线性代数、矩阵处理(转置、标引、切片)、采样等。与numpy雷同。
ops.concat 连接指定维度的张量数据,ops.stack 归并张量数据在一个新的维度上。
参考:

mindspore.ops — MindSpore master 文档
mindspore.ops.stack — MindSpore master 文档

运行例子





4. Tensor 与 Numpy 转换

转换为Numpy:mindspore.Tensor.asnumpy — MindSpore master 文档
转换为Tensor:mindspore.Tensor.from_numpy — MindSpore master 文档

5. 稀疏张量:CSR和COO



  • MindSpore 支持的两种稀疏数据格式: CSR(Compressed Sparse Row) 和 COO(Coordinate Format)。
  • 常用稀疏张量的表达形式:<indices:Tensor, values:Tensor, shape:Tensor> 。其中,indices 表示非零下标元素, values 表示非零元素的值,shape表示的是被压缩的稀疏张量的形状。 
  • 三种稀疏张量结构:CSRTensor、COOTensor 和 RowTensor。

CSRTensor

CSR 稀疏张量格式对存储和计算友好。类定义头如下。
  1. class mindspore.CSRTensor(  indptr=None,  ## 行索引
  2.                             indices=None, ## 列索引
  3.                             values=None,  ## 非零值
  4.                             shape=None,   ## 矩阵shape
  5.                             csr_tensor=None
  6.                          )
  7. """ARGS
  8. indptr - shape为 M 的一维整数Tensor,其中 M等于 shape[0] + 1 ,表示每行非零元素的在 values 中存储的起止位置。默认 None 。支持的数据类型为int16,int32和int64。
  9. indices - shape为 N 的一维整数Tensor,其中 N等于非零元素数量,表示每个元素的列索引值。默认None 。支持的数据类型为int16, int32和int64。
  10. values - 一维Tensor,values的零维长度必须与indices的零维长度相等(values.shape[0] == indices.shape[0])。values用来表示索引对应的数值。默认 None 。
  11. shape (tuple(int)) - shape为 ndims 的整数元组,用来指定稀疏矩阵的稠密shape。shape[0] 表示行数,因此必须和 M - 1 值相等。默认 None 。目前仅支持二维 CSRTensor。
  12. csr_tensor (CSRTensor) - CSRTensor对象,用来初始化新的CSRTensor。values的特征维度需要和csr_tensor的特征维度匹配 。默认 None 。
  13. """
复制代码
mindspore.CSRTensor — MindSpore master 文档
运行例子




COOTensor

此种表示方式更直接,但是现在仅仅支持二维矩阵,类定义头如下。
  1. class mindspore.COOTensor( indices=None,  ## 非零元素在矩阵的位置
  2.                            values=None,   ## 非零元素值
  3.                            shape=None,    ## 矩阵shape
  4.                            coo_tensor=None
  5.                          )
  6. """ARGS
  7. indices - shape为 (N,dims) 的二维整数Tensor,其中N和ndims分别表示稀疏Tensor中 values 的数量和 COOTensor维度的数量。目前 ndims 只能为2。请确保indices的值在所给shape范围内。支持的数据类型为int16, int32 和 int64。默认 None 。
  8. values - shape为 (N) 的一维Tensor,用来给 indices 中的每个元素提供数值。默认 None 。
  9. shape (tuple(int)) - shape为 (dims) 的整数元组,用来指定稀疏矩阵的稠密shape。默认值 None 。
  10. coo_tensor (COOTensor) - COOTensor对象,用来初始化新的COOTensor。默认  None 。
  11. """
复制代码
mindspore.COOTensor — MindSpore master 文档
运行例子




RowTensor

注意,这是一个实行性API,后续可能修改或删除。
  1. class mindspore.RowTensor(  indices=None,
  2.                             values=None,
  3.                             shape=None,
  4.                             row_tensor=None
  5.                         )
  6. """ARGS
  7. indices - shape为 d0 的一维整数Tensor。默认 None。
  8. values  - shape为 (d0, d1, ..., dn) 中任意类型的Tensor。默认 None 。
  9. shape (tuple(int)) - 包含相应稠密Tensor shape的整数元组。默认 None 。
  10. row_tensor (RowTensor) - RowTensor对象,用来初始化新的RowTensor。默认 None 。
  11. """
复制代码



mindspore.Tensor — MindSpore master 文档
https://www.mindspore.cn/docs/zh-CN/r2.3/api_python/mindspore/mindspore.Tensor.html


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莫张周刘王

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表