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

news2025/1/8 5:40:11

# 打卡

目录

# 打卡

涉及知识点

1. 创建张量的4种方式

运行例子

2. 张量属性和索引

运行例子

3. 张量运算

运行例子

4. Tensor 与 Numpy 转换

5. 稀疏张量:CSR和COO

CSRTensor

运行例子

COOTensor

运行例子

RowTensor


import mindspore
from mindspore import ops
from mindspore import Tensor, CSRTensor, COOTensor

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 稀疏张量格式对存储和计算友好。类定义头如下。

class mindspore.CSRTensor(  indptr=None,  ## 行索引
                            indices=None, ## 列索引
                            values=None,  ## 非零值
                            shape=None,   ## 矩阵shape
                            csr_tensor=None 
                         )
 
"""ARGS
indptr - shape为 M 的一维整数Tensor,其中 M等于 shape[0] + 1 ,表示每行非零元素的在 values 中存储的起止位置。默认 None 。支持的数据类型为int16,int32和int64。

indices - shape为 N 的一维整数Tensor,其中 N等于非零元素数量,表示每个元素的列索引值。默认None 。支持的数据类型为int16, int32和int64。

values - 一维Tensor,values的零维长度必须与indices的零维长度相等(values.shape[0] == indices.shape[0])。values用来表示索引对应的数值。默认 None 。

shape (tuple(int)) - shape为 ndims 的整数元组,用来指定稀疏矩阵的稠密shape。shape[0] 表示行数,因此必须和 M - 1 值相等。默认 None 。目前仅支持二维 CSRTensor。

csr_tensor (CSRTensor) - CSRTensor对象,用来初始化新的CSRTensor。values的特征维度需要和csr_tensor的特征维度匹配 。默认 None 。
"""

mindspore.CSRTensor — MindSpore master 文档

运行例子

COOTensor

此种表示方式更直接,但是目前仅仅支持二维矩阵,类定义头如下。

class mindspore.COOTensor( indices=None,  ## 非零元素在矩阵的位置
                           values=None,   ## 非零元素值
                           shape=None,    ## 矩阵shape
                           coo_tensor=None
                         )
"""ARGS
indices - shape为 (N,dims) 的二维整数Tensor,其中N和ndims分别表示稀疏Tensor中 values 的数量和 COOTensor维度的数量。目前 ndims 只能为2。请确保indices的值在所给shape范围内。支持的数据类型为int16, int32 和 int64。默认 None 。

values - shape为 (N) 的一维Tensor,用来给 indices 中的每个元素提供数值。默认 None 。

shape (tuple(int)) - shape为 (dims) 的整数元组,用来指定稀疏矩阵的稠密shape。默认值 None 。

coo_tensor (COOTensor) - COOTensor对象,用来初始化新的COOTensor。默认  None 。

"""

mindspore.COOTensor — MindSpore master 文档

运行例子

RowTensor

注意,这是一个实验性API,后续可能修改或删除。

class mindspore.RowTensor(  indices=None, 
                            values=None, 
                            shape=None, 
                            row_tensor=None
                        )
"""ARGS
indices - shape为 d0 的一维整数Tensor。默认 None。

values  - shape为 (d0, d1, ..., dn) 中任意类型的Tensor。默认 None 。

shape (tuple(int)) - 包含相应稠密Tensor shape的整数元组。默认 None 。

row_tensor (RowTensor) - RowTensor对象,用来初始化新的RowTensor。默认 None 。

"""


mindspore.Tensor — MindSpore master 文档icon-default.png?t=N7T8https://www.mindspore.cn/docs/zh-CN/r2.3/api_python/mindspore/mindspore.Tensor.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1905523.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CMD命令详细介绍 | 超详细版本!

文章目录 启动cmd命令用户启动使用管理员的账号启动 文件夹命令网络命令其他常用命令介绍常用快捷方式程序员相关命令 本文参考了博客园一篇帖子&#xff0c;ULR&#xff1a;cmd常用命令介绍(可收藏) - Mrwhite86 - 博客园 (cnblogs.com) CMD是Windows操作系统自带的命令行解释…

【Linux】打包命令——tar

打包和压缩 虽然打包和压缩都涉及将多个文件组合成单个实体&#xff0c;但它们之间存在重要差异。 打包和压缩的区别&#xff1a; 打包是将多个文件或目录组合在一起&#xff0c;但不对其进行压缩。这意味着打包后的文件大小可能与原始文件相同或更大。此外&#xff0c;打包…

【工具分享】Gophish

文章目录 Gophish安装方式功能简介 Gophish Gophish 是一个开源的网络钓鱼框架&#xff0c;它被设计用于模拟真实世界的钓鱼攻击&#xff0c;以帮助企业和渗透测试人员测试和评估他们的网络钓鱼风险。Gophish 旨在使行业级的网络钓鱼培训对每个人都是可获取的&#xff0c;它易…

文件存储的方法一

文章目录 概念介绍实现方法示例代码 我们在上一章回中介绍了"如何实现本地存储"相关的内容&#xff0c;本章回中将介绍如何实现文件存储.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 我们在上一章回中介绍的本地存储只能存储dart语言中基本类型的数值…

鲨疯了,免费的Viva又能画图,又能做视频,又能......

theme: smartblue 点赞 关注 收藏 学会了 本文简介 众所周知&#xff0c;Midjourney擅长画画&#xff0c;Runway擅长做视频(Sora也说它可以做)。 Viva&#xff1a;我不是针对你&#xff0c;我只想说在座的各位都是乐色&#xff5e; 注意&#xff0c;它叫Viva&#xff0c;不是…

Java引用的4种类型:强、软、弱、虚

在Java中&#xff0c;引用的概念不仅限于强引用&#xff0c;还包括软引用、弱引用和虚引用&#xff08;也称为幻影引用&#xff09;。这些引用类型主要用于不同的内存管理策略&#xff0c;尤其是在垃圾收集过程中。以下是对这四种引用类型的详细解释&#xff1a; 1. 强引用&am…

GD32实战篇-双向数控BUCK-BOOST-BUCK降压理论基础

本文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发 向上代码兼容GD32F450ZGT6中使用 后续项目主要在下面该专栏中发布&#xff1a; https://blog.csdn.net/qq_62316532/category_12608431.html?spm1001.2014.3001.5482 感兴趣的点个关注收藏一下吧! 电机驱动开发可以跳转…

论文解析——FTRANS: Energy-Efficient Acceleration of Transformers using FPGA

作者及发刊详情 Li B , Pandey S , Fang H ,et al.FTRANS: energy-efficient acceleration of transformers using FPGA[J].ACM, 2020.DOI:10.1145/3370748.3406567. 摘要 正文 主要工作贡献 与CPU和GPU在执行Transformer和RoBERTa相比&#xff0c;提出的FTRANS框架获得了…

计算云服务2

第二章 裸金属服务器 什么是裸金属服务器(BMS) 裸金属服务器(Bare Metal Server&#xff0c;BMS)是一款兼具虚拟机弹性和物理机性能的计算类服务为用户以及相关企业提供专属的云上物理服务器&#xff0c;为核心数据库、关键应用系统、高性能计算、大数据等业务提供卓越的计算…

买的Google账号登录,修改辅助邮箱收不到验证码?可能是个简单的错误

这篇文章分享一个案例&#xff0c;购买了谷歌账号以后如何修改辅助邮箱&#xff0c;修改辅助邮箱的一些要点&#xff0c;以及常见的一个错误。 一、案例回放 这个朋友昨天在我的一个视频下面留言说买了谷歌账号以后&#xff0c;想修改辅助邮箱地址&#xff0c;但是输入了辅助…

µCOS-III 任务同步机制-任务信号量

1. 什么是任务信号量 任务信号量是一种用于任务间同步和通信的计数器&#xff0c;通常用于解决任务间的竞争条件和资源共享问题。在C/OS-III中&#xff0c;任务信号量提供了二进制信号量和计数信号量两种类型&#xff1a; 二进制信号量&#xff1a;只能取值0或1&#xff0c;适…

VSCode神仙插件——Codeium (AI编程助手)

1、安装&登录插件 安装过程中会让你登录Codeium账户&#xff0c;可以通过Google账户登录&#xff0c;或者可以注册一个Codeium账户&#xff08;如果没有弹出让你登录账户的界面&#xff0c;可以等安装结束后在右下角找到登录的地方&#xff09; 右下角显示如下图所示&#…

大模型面试题目

1.为什么需要做位置编码 位置编码&#xff08;Positional Encoding&#xff09;在变换器&#xff08;Transformer&#xff09;模型中非常重要&#xff0c;因为变换器架构本身没有内置的顺序信息。变换器使用的是自注意力机制&#xff0c;它能够捕捉输入序列中所有词之间的相关性…

opencv_C++学习笔记(入门30讲)

文章目录 1.配置开发环境2.图像读取与显示3.图像色彩空间转换4.图像对象的创建与赋值5.图像像素的读写操作6.图像像素的算数操作7.滚动条-调整图像亮度8.滚动条-调整对比度和亮度9.键盘响应操作10.图像像素的逻辑操作11.图像的通道分离和合并12.图像色彩空间转换13.图像的像素值…

vue3+antd 实现点击按钮弹出对话框

格式1&#xff1a;确认对话框 按钮&#xff1a; 点击按钮之后&#xff1a; 完整代码&#xff1a; <template><div><a-button click"showConfirm">Confirm</a-button></div> </template> <script setup> import {Mod…

QT滑块图片验证程序

使用QT实现滑块验证程序&#xff0c;原理是画个图片&#xff0c;然后在图片上画个空白区域&#xff0c;再画个滑块图片。 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widg…

python语法及写的工具代码总结

目录 python画图&处理图片python增大图片的大小&#xff08;比如将几百K的照片增加到几mb&#xff09;解决python画图无法显示中文的问题python画折线图 & 一张图上三条折线 & 设置折线marker & chatgpt画折线图的提示词python将png格式的图片转换为jpg格式的图…

Rockstar Games:铸造游戏传奇的不朽征程

在电子游戏的历史长廊中&#xff0c;Rockstar Games&#xff08;R星&#xff09;犹如一座巍峨的丰碑&#xff0c;以其无与伦比的创造力和深刻的社会影响力&#xff0c;成为了游戏界的传奇缔造者。自1998年诞生于纽约的喧嚣中&#xff0c;这家由Houser兄弟掌舵的游戏公司&#x…

每天一道面试题之浅浅讲一下java5中的自动装箱和自动拆箱

自动装箱自动拆箱 我们在java5中引入概念 把基本数据类型自动装箱成包装类 把包装类自动拆箱成基本数据类型 我们可以用javap查看字节码文件 首先我们要通过javac编译.java文件 获取字节码.class文件 然后用javap查看 源码 import java.util.ArrayList; import java.uti…

spRAG框架学习小结

spRAG是什么 spRAG是一个针对非结构化数据的检索引擎。它特别擅长处理对密集文本的复杂查询&#xff0c;比如财务报告、法律文件和学术论文。有两种关键方法用于提高性能&#xff0c;超越了普通的RAG系统&#xff1a; 自动上下文&#xff08;AutoContext&#xff09;&#xff…