昇思25天学习打卡营第03天 | 张量 Tensor

昇思25天学习打卡营第03天 | 张量 Tensor

文章目录

  • 昇思25天学习打卡营第03天 | 张量 Tensor
    • 张量
    • 张量的创建
    • 张量的属性
    • Tensor与NumPy转换
    • 稀疏张量
      • CSRTensor
      • COOTensor
    • 总结
    • 打卡

张量

张量(Tensor)是一种类似于数组和矩阵的特殊数据结构,是神经网络中参与运算的基本结构。
对于 n n n维空间中的一个张量,其具有 n r n^r nr个坐标分量,其中 r r r被称为该张量的秩或阶。

张量的创建

  • 从列表创建
data = [1, 0, 1, 0]
x_data = Tensor(data)
  • 从NumPy数组创建
np_array = np.array(data)
x_np = Tensor(np_array)
  • 使用init初始化器创建,需要传入三个参数,主要用于并行模式下的延后初始化。
    • init:支持initializer的子类,如One()Normal()
    • shape:支持listtupleint
    • dtype:支持mindspore.dtype
tensor1 = mindspore.Tensor(shape=(2, 2), dtype=mindspore.float32, init=One())

# Initialize a tensor from normal distribution
tensor2 = mindspore.Tensor(shape=(2, 2), dtype = mindspore.float32, init=Normal())
  • 从一个张量创建新的张量
from mindspore import ops

x_ones = ops.ones_like(x_data)		# [1 1 1 1]
x_zeros = ops.zeros_like(x_data)	# [0 0 0 0]

张量的属性

MindSpore中一个张量具有下面的属性:

  • shape
  • dtype
  • itemsize:单个元素所占的字节大小
  • nbytes:Tensor所占的总字节数
  • ndim:Tensor的秩
  • size:Tensor中元素的个数
  • strides:Tensor每一维所需要的字节数

Tensor与NumPy转换

  • 使用Tensor.asnumpy()将Tensor转换为Numpy数组。
  • 使用Tensor.from_numpy()将numpy数组转换为Tensor

稀疏张量

在很多场景中,张量中只有少量的非零元素,如果用普通张量进行存储,会引入大量不必要的开销,这时就可以使用稀疏张量来表示。

MindSpore中定了了三种稀疏张量结构:CSRTensorCOOTensorRowTensor

CSRTensor

CSR (Compressed Sparse Row) Tensor 具有高效的存储和计算优势。

  • indptr:一维整数张量,表示非零元素在values中的起始位置和结束位置;
  • indices:一维整数张量,表示非零元素在列中的位置,与values长度相等;
  • values:一维张量,表示非零元素;
  • shape:表示被压缩的张量的形状。
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)

上述代码对应的Tensor为:
[ 1 0 0 0 0 2 0 0 ] \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 2 & 0 & 0 \end{bmatrix} [10020000]

COOTensor

COO (Coordinate Format) Tensor用来表示给定索引上非零元素的集合,其参数为:

  • indices:二维证书张量,每行代表非零元素的下标。
  • values:一维张量,表示非零元素值。
  • shape:表示被压缩的稀疏张量的形状。
indices = Tensor([[0, 1], [1, 2]], dtype=mindspore.int32)
values = Tensor([1, 2], dtype=mindspore.float32)
shape = (3, 4)

# Make a COOTensor
coo_tensor = COOTensor(indices, values, shape)

总结

这一节内容对MindSpore框架中的Tensor进行了较为详细的介绍,包括Tensor的创建、Tensor的索引和简单运算、与NumPy数组之间的转换。此外,还介绍了稀疏矩阵的两种表示方法和创建方法,为之后对张量的操作建立了初步的认识。

打卡

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI智能在Type-C领域的应用

随着科技的飞速发展,Type-C接口凭借其卓越的性能和广泛的应用场景,已成为现代电子设备中不可或缺的一部分。而AI智能技术的兴起,为Type-C领域带来了革命性的变革,推动了其功能的进一步完善和应用领域的拓展。本文将探讨AI智能在Ty…

Redis缓存管理机制

在当今快节奏的数字世界中,性能优化对于提供无缝的用户体验至关重要。缓存在提高应用程序性能方面发挥着至关重要的作用,它通过将经常使用或处理的数据存储在临时高速存储中来减少数据库负载并缩短响应时间,从而减少系统的延迟。Redis 是一种…

基于深度学习的水果蔬菜检测识别系统(Python源码+YOLOv8+Pyqt5界面+数据集+训练代码 MX_004期)

系统演示: 基于深度学习的水果蔬菜检测识别系统 界面图: 技术组成: 深度学习模型(YOLOv8): YOLOv8是基于YOLO系列的目标检测模型,具有较快的检测速度和良好的准确率,适合于实时应用场…

在 Java 中的使用Selenium 测试框架

Selenium 测试框架:在 Java 中的使用 Selenium 测试框架就是这样一个强大的工具,它为 Web 应用的自动化测试提供了全面且高效的解决方案。 一、Selenium 简介 Selenium 是一个开源的自动化测试工具集,专门用于测试 Web 应用程序。它支持多…

聊一聊质量测试框架

质量测试框架的概述: 质量测试框架是一个为测试人员提供指导、工具和技术的系统,用于确保软件满足预定的质量标准和用户需求。它涵盖了测试计划、测试用例设计、测试执行、结果分析和测试报告等多个方面。 质量测试框架相关术语: 外部性质的…

解决OneDrive “拒绝访问文件” 问题

问题描述: 在尝试将其他文件拖入oneDrive或是打开OneDrive中的文件时。出现如下报错: 拒绝访问文件 无法访问XXXXXXX中的文件。可能已移动或删除了此文件,或者受制于文件权限而不能访问。 ERR_ACCESS_DENIED 解决办法: 1. 找到O…

【MySQL备份】Percona XtraBackup实战篇

目录 1. 前言 2.准备工作 2.1.创建备份目录 2.2.配置/etc/my.cnf文件 2.3.授予root用户BACKUP_ADMIN权限 3.全量备份 4.准备备份 5.数据恢复 6.总结 "实战演练:利用Percona XtraBackup执行MySQL全量备份操作详解" 1. 前言 本文将继续上篇【My…

论文笔记:MobilityGPT: Enhanced Human MobilityModeling with a GPT mode

1 intro 1.1 背景 尽管对人类移动轨迹数据集的需求不断增加,但其访问和分发仍面临诸多挑战 首先,这些数据集通常由私人公司或政府机构收集,因此可能因泄露个人敏感生活模式而引发隐私问题其次,公司拥有的数据集可能会暴露专有商…

侯捷C++面向对象高级编程(上)-6-三大函数:拷贝构造、拷贝复制、析构

1. 2.三个特殊函数 3.构造函数和析构函数 4.浅拷贝(系统默认仅把指针拷贝过去) 5.拷贝构造函数(深拷贝,拷贝的内容,重写string函数) 6.拷贝赋值

遇到多语言跨境电商系统源码问题?这里有解决方案!

从手机到电脑,从线下到线上,如今,跨境电商正在打破地域界限,成为全球贸易的新引擎。在这个全球化的背景下,跨境电商平台的运营也面临着一系列的挑战,其中之一就是多语言问题。如果你遇到了多语言跨境电商系…

每日一题-字符串相加

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std;class Solution { public:string addStrings(string num1, string num2) {//11123//从个位开…

基于偏微分方程模型的一维信号降噪(MATLAB)

自然界很多领域如天文、物理、生物、化学等的运动和状态的变化受多个因素影响&#xff0c;而偏微分方程恰好可以描述这种多变量问题&#xff0c;因此被引入科学研究是一种必然。偏微分方程早期的时侯用来描述机械物体和流体的自然运动和物理规律&#xff0c;且其应用领域不断拓…

【收藏】SaaS运营方法论:寻找合适的合作伙伴的四大方法

一、使用关键字研究工具查找您所在行业的相关博客、频道和网站 但是&#xff0c;根据你的业务规模和性质&#xff0c;如果你需要主动出击寻找合适的推广伙伴&#xff0c;而不仅限于让潜在合作伙伴找你&#xff0c;你可以使用关键字研究工具。 实话实说&#xff0c;最好的联盟营…

告别手工录入,企业财务凭证同步迈入智能新时代!

一、客户介绍 某金融租赁股份有限公司作为一家领先的金融租赁企业&#xff0c;一直秉持着创新驱动、服务至上的经营理念。随着业务的快速发展&#xff0c;该公司在财务管理和凭证管理方面遇到了新的挑战。为了更好地提升工作效率&#xff0c;降低运营成本&#xff0c;该公司决…

vue+js实现鼠标右键页面时在鼠标位置出现弹窗

首先是弹窗元素 <div class"tanchuang move-win1"id"tanchuang1"><el-button>111</el-button></div>然后在需要弹窗的地方监听点击事件&#xff0c;可以将这个方法写在页面载入事件中 // 获取弹窗元素 var tanchuang document.…

Open3D Ransac点云配准算法(粗配准)

目录 一、概述 1.1简介 1.2RANSAC在点云粗配准中的应用步骤 二、代码实现 2.1关键函数 2.2完整代码 2.3代码解析 2.3.1计算FPFH 1. 法线估计 2. 计算FPFH特征 2.3.2 全局配准 1.函数&#xff1a;execute_global_registration 2.距离阈值 3.registration_ransac_b…

二维码中的文件如何列表排列?轻松在线做文件活码的简单技巧

现在二维码是常用来展示文件的手段之一&#xff0c;将文件生成二维码之后扫码就能够快速在手机上查看文件内容&#xff0c;减少了下载内存占用及传输的时间&#xff0c;通过这种方式可以更加方便快捷的获取文件内容。怎么把多个文件用列表的方式来扫码展示呢&#xff1f; 多个…

汽车电子行业知识:什么是电子后视镜

文章目录 1.什么是电子后视镜2.有哪些汽车用到了电子后视镜3.电子后视镜的原理及算法4.电子后视镜的优点5.电子后视镜的未来市场将继续增长 1.什么是电子后视镜 电子后视镜是一种集成了电子元件和显示屏的汽车后视镜&#xff0c;用于替代传统的机械后视镜。它通过内置的摄像头捕…

[吃瓜教程]南瓜书第4章决策树

1.决策树的算法原理 从逻辑角度&#xff0c;条件判断语句的组合&#xff1b;从几何角度&#xff0c;根据某种准则划分特征空间&#xff1b; 是一种分治的思想&#xff0c;其最终目的是将样本约分约纯&#xff0c;而划分的核心是在条件的选择或者说是**特征空间的划分标准 ** …