昇思25天学习打卡营第2天 | 张量基础

内容介绍:张量(Tensor)是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。

具体内容:

1. 导包

import numpy as np
import mindspore
from mindspore import ops
from mindspore import Tensor, CSRTensor, COOTensor

2. 创建张量

张量的创建方式有多种,构造张量时,支持传入Tensorfloatintbooltuplelistnumpy.ndarray类型。

a. 根据数据直接生成

data = [1, 0, 1, 0]
x_data = Tensor(data)
print(x_data, x_data.shape, x_data.dtype)

b. 从numpy数组生成

np_array = np.array(data)
x_np = Tensor(np_array)
print(x_np, x_np.shape, x_np.dtype)

c.使用init初始化器构造张量

from mindspore.common.initializer import One, Normaltensor1 = mindspore.Tensor(shape=(2, 2), dtype=mindspore.float32, init=One())tensor2 = mindspore.Tensor(shape=(2, 2), dtype=mindspore.float32, init=Normal())print("tensor1:\n", tensor1)
print("tensor2:\n", tensor2)

d. 继承另一个张量的属性,形成新的张量

from mindspore import opsx_ones = ops.ones_like(x_data)
print(f"Ones Tensor: \n {x_ones} \n")x_zeros = ops.zeros_like(x_data)
print(f"Zeros Tensor: \n {x_zeros} \n")

3. 张量的属性

张量的属性包括形状、数据类型、转置张量、单个元素大小、占用字节数量、维数、元素个数和每一维步长。

  • 形状(shape):Tensor的shape,是一个tuple。

  • 数据类型(dtype):Tensor的dtype,是MindSpore的一个数据类型。

  • 单个元素大小(itemsize): Tensor中每一个元素占用字节数,是一个整数。

  • 占用字节数量(nbytes): Tensor占用的总字节数,是一个整数。

  • 维数(ndim): Tensor的秩,也就是len(tensor.shape),是一个整数。

  • 元素个数(size): Tensor中所有元素的个数,是一个整数。

  • 每一维步长(strides): Tensor每一维所需要的字节数,是一个tuple。

x = Tensor(np.array([[1, 2], [3, 4]]), mindspore.int32)print("x_shape:", x.shape)
print("x_dtype:", x.dtype)
print("x_itemsize:", x.itemsize)
print("x_nbytes:", x.nbytes)
print("x_ndim:", x.ndim)
print("x_size:", x.size)
print("x_strides:", x.strides)

4. 张量索引

tensor = Tensor(np.array([[0, 1], [2, 3]]).astype(np.float32))print("First row: {}".format(tensor[0]))
print("value of bottom right corner: {}".format(tensor[1, 1]))
print("Last column: {}".format(tensor[:, -1]))
print("First column: {}".format(tensor[..., 0]))

5. 张量运算

x = Tensor(np.array([1, 2, 3]), mindspore.float32)
y = Tensor(np.array([4, 5, 6]), mindspore.float32)output_add = x + y
output_sub = x - y
output_mul = x * y
output_div = y / x
output_mod = y % x
output_floordiv = y // xprint("add:", output_add)
print("sub:", output_sub)
print("mul:", output_mul)
print("div:", output_div)
print("mod:", output_mod)
print("floordiv:", output_floordiv)

6. 张量拼接

data1 = Tensor(np.array([[0, 1], [2, 3]]).astype(np.float32))
data2 = Tensor(np.array([[4, 5], [6, 7]]).astype(np.float32))
output = ops.concat((data1, data2), axis=0)print(output)
print("shape:\n", output.shape)# 两种方式data1 = Tensor(np.array([[0, 1], [2, 3]]).astype(np.float32))
data2 = Tensor(np.array([[4, 5], [6, 7]]).astype(np.float32))
output = ops.stack([data1, data2])print(output)
print("shape:\n", output.shape)

7. Tensor与Numpy的转换

t = Tensor([1., 1., 1., 1., 1.])
print(f"t: {t}", type(t))
n = t.asnumpy()
print(f"n: {n}", type(n))n = np.ones(5)
t = Tensor.from_numpy(n)np.add(n, 1, out=n)
print(f"n: {n}", type(n))
print(f"t: {t}", type(t))

MindSpore框架对张量的操作非常丰富和强大。框架提供了大量的张量运算函数和操作符,使得我们能够轻松实现各种复杂的计算任务。从基本的加减乘除到复杂的矩阵运算和卷积操作,MindSpore都提供了高效的实现方式。这种丰富的操作集合,不仅简化了我们的编程工作,也提高了代码的可读性和可维护性。

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

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

相关文章

Android 14 权限等级剖析

Android 14 权限等级剖析 Android 14 引入了新的权限等级,为应用程序访问敏感信息和功能提供了更细粒度的控制。了解这些新的权限等级及其应用场景对于开发人员至关重要。 1. 概述 Android 一直以来都使用权限机制来控制应用程序对系统资源和用户数据的访问。随着…

薅羊毛app小游戏对接广告联盟开发

开发一个薅羊毛app小游戏并对接广告联盟是一个涉及多个方面的复杂过程。以下是一些关键步骤和注意事项,帮助你更好地理解和规划这个过程: 1. 明确目标与定位 目标用户群体:确定你的目标用户是谁,他们的兴趣和需求是什么。游戏类…

[动态规划位运算]表达式的期望值

描述 给定如下表达式&#xff1a; A0O1A1O2A2O3A3… OnAn 其中Ai(0<i<n)代表操作数&#xff0c;Oi(1<i<n)代表算子。有三类算子包括‘&’、‘|’和‘^’&#xff0c;这些算子拥有相同的计算优先级。每个算子Oi以及它后面相邻的操作数Ai&#xff0c;他们可能一…

JDK8和JDK17共存以及切换

1. 下载和安装 1.1下载安装JDK17 下载地址: https://www.oracle.com/cn/java/technologies/downloads/ 1.2安装jdk17 点击下一步 此处可以修改安装的目标位置,修改安装位置后,点击下一步 接下来及安装完成 注意事项 此时通过cmd命令java –version你会发现竟然出现了…

四十八、openlayers地图调色总结——锐化、模糊、浮雕滤镜,调整地图色相、饱和度、亮度

这篇是对滤镜的总结&#xff0c;方便工作中直接使用。 想要调整图层的颜色&#xff0c;有两种方法。 方法一&#xff1a; 加载图层时使用tileLoadFunction函数拿到context添加canvas滤镜效果。 this.imagery new TileLayer({source: new XYZ({url: "https://server.arc…

MeshAnything:艺术家级别的自回归3D网格生成

MeshAnything: Artist-Created Mesh Generation with Autoregressive Transformers &#x1f4dc; 文献卡 MeshAnything: Artist-Created Mesh Generation with Autoregressive Transformers作者: Yiwen Chen; Tong He; Di Huang; Weicai Ye; Sijin Chen; Jiaxiang Tang; Xin…

二进制部署Prometheus

在监控里面Prometheus现在用的还是比较多的&#xff0c;一般我们都是在Kubernetes环境里面部署&#xff0c;然后监控咱们的容器化环境&#xff0c;今天给大家分享一些不一样的&#xff0c;使用二进制的方式在机器上直接部署&#xff0c;并且监控机器上的进程。 说到监控大家通常…

普陀食材配送沪鑫餐饮专业化、标准化、现代化新篇章

在上海普陀这片繁华的土地上&#xff0c;企事业单位如繁星点点&#xff0c;它们不仅推动了区域经济的飞速发展&#xff0c;更在员工福利待遇上不断追求卓越。其中&#xff0c;食材配送作为后勤管理的重要环节&#xff0c;正迎来专业化、标准化、现代化的新篇章。 提及普陀食材配…

短视频开源项目MoneyPrinterTurbo:AI副业搞起来,视频制作更轻松!

目录 引言一、MoneyPrinterTurbo简介二、MoneyPrinterTurbo的核心功能三、MoneyPrinterTurbo的未来发展四、MoneyPrinterTurbo与AI副业五、部署实践1、克隆代码2、创建虚拟环境3、安装依赖4、安装好 ImageMagick5、端口映射6、启动Web界面7、模型配置8、填写主题9、视频生成10、…

OpenSSL 生成 RSA 公钥和私钥

sudo apt-get update sudo apt-get install openssl、 生成私钥 openssl genpkey -algorithm RSA -out private.pem -pkeyopt rsa_keygen_bits:2048 提取公钥 openssl rsa -pubout -in private.pem -out public.pem cat public.pem 将文件导出就行

使用事件日志识别常见 Windows 错误

事件查看器&#xff0c;一个标准的诊断工具&#xff0c;嵌入在Windows操作系统&#xff0c;记录了所有的系统事件&#xff0c;该日志捕获有关硬件问题、软件中断和整体系统行为的详细信息。通过分析这些日志&#xff0c;管理员可以查明系统错误和运行时错误的根本原因。了解如何…

达索系统 PLM:引领创新的数字化解决方案

在当今竞争激烈的商业环境中&#xff0c;企业需要不断提升创新能力和运营效率&#xff0c;以应对快速变化的市场需求。产品生命周期管理&#xff08;PLM&#xff09;系统作为一种综合性的数字化解决方案&#xff0c;正逐渐成为企业实现可持续发展的关键。而达索系统的 PLM 则以…

OpenCV--图像的运算

图像的运算 代码和笔记 代码和笔记 import cv2 import numpy as np""" 图像的运算 """# 读取图片 cat1 cv2.imread(./img/cat.jpeg) cat2 cv2.imread(./img/cat.jpeg)""" 加减乘除 """ # 加法(有点杂交的感觉)…

MySQL的字符集与排序规则

在MySQL数据库中&#xff0c;字符集&#xff08;Character Set&#xff09;和排序规则&#xff08;Collation&#xff09;是两个至关重要的概念&#xff0c;它们共同决定了数据库中字符数据的存储、比较和排序方式。对于涉及多语言、国际化或特殊字符处理的应用来说&#xff0c…

56岁张卫健前任貌突然回春大进化?自曝婚礼前夕流产

现年56岁的江欣燕于1985年以18岁之龄参加第4届新秀歌唱大赛入行&#xff0c;曾拍过多部无线经典电视剧&#xff0c;包括《娱乐插班生》、《同事三分亲》及《女人俱乐部》等。现时甚少作幕前演出的江欣燕日前在社交平台上载分享了新短片&#xff0c;当中更以Deep V上阵&#xff…

大数据集群搭建基础:Hadoop完全分布式搭建学习指南!!

Hadoop完全分布式搭建学习指南 Hadoop版本&#xff1a;Hadoop2.X JDK版本&#xff1a;JDK1.8一、准备工作 设置主机名和IP 在三台CentOS 7.4机器上分别设置主机名和IP&#xff1a; node1: 192.168.14.10node2: 192.168.14.20node3: 192.168.14.30 修改主机名&#xff08;以nod…

从 0 打造私有知识库 RAG Benchmark 完整实践

背景介绍 最近从 0 构建了一个大模型知识库 RAG 服务的自动化 Benchmark 评估服务&#xff0c;可以基于私有知识库对 RAG 服务进行批量自动化测试与评估。本文是对这个过程的详细记录。 本文实际构建的是医疗行业知识库&#xff0c;基于高质量的医学指南和专家共识进行构建。…

前端从视频文件提取画面帧

extractFramesFromVideo方法提取画面帧 // 设定一个异步函数&#xff0c;输入参数为&#xff1a; // videoUrl&#xff08;需要提取画面帧的视频的URL&#xff09; // fps&#xff08;每秒帧率&#xff0c;默认为25帧&#xff09; async function extractFramesFromVideo(vide…

Linux中MySQL的相关配置及命令(Ubuntu22.04)

安装 MySQL apt install mysql-server apt install mysql-client相关配置文件 默认配置文件地址: /etc/mysql/mysql.conf.d 基础配置如下 # 基础配置 [mysqld] # # * Basic Settings # user mysql pid-file /var/run/mysqld/mysqld.pid socket /var/run/mysqld/mysqld.…

uni-app地图组件控制

uni.createMapContext(mapId,this) 创建并返回 map 上下文 mapContext 对象。在自定义组件下&#xff0c;第二个参数传入组件实例this&#xff0c;以操作组件内 <map> 组件。 注意&#xff1a;uni.createMapContext(mapId, this) app-nvue 平台 2.2.5 支持 uni.create…