深度学习标量、向量、矩阵、张量之间的区别与联系

文章目录

        • 前言
        • 1、张量
          • **注意**:
        • 2、**标量** (scalar):0阶的张量,0个轴,一个单独的数(整数或实数);
        • 3、**向量**(vector):1阶的张量,也叫矢量,1个轴,一个数组;
        • 4、**矩阵** (matrix):2阶的张量,2个轴通常称为行和列;
        • 5、标量向量矩阵张量之间的联系:

前言

深度学习的表现之所以能够超过传统的机器学习算法离不开神经网络,然而神经网络最基本的数据结构就是 向量矩阵神经网络的输入是向量,然后通过每个矩阵对向量进行线性变换,再经过激活函数的非线性变换,通过层层计算最终使得损失函数的最小化,完成模型的训练。所以要想学好深度学习,对这些基础的数据结构还是要非常了解。

1、张量

学过线性代数的童鞋都知道,矩阵可以进行各种运算,比如:矩阵的加减法,矩阵的转置、矩阵的点乘、矩阵的叉乘,为了方便存储矩阵及进行矩阵之间的运算,大神们抽象出了PyTorch库,PyTorch库中有一个类叫torch.Tensor,这个类存储了一个矩阵变量,并且有一系列方法用于对这个矩阵进行各种运算,上面的这些矩阵运算都可以通过torch.Tensor类的相应方法实现。Tensor 这个单词一般可译作 “张量”,但是上面我们进行的都是矩阵运算,为什么要给这个类型起名字叫张量呢,直接叫矩阵不就行了吗?张量又是什么意思呢?通常我们不但要对矩阵进行运算,还要处理,零维的(单纯的一个数字)、一维矩阵(数组)、二维矩阵(矩阵)、三维的(三维矩阵)、还有多维矩阵,Pytorch为了把这些各种维统一起来,所以起名叫张量。这样,数组就是一阶张量,二维矩阵就是二阶张量,还有三阶张量四阶张量五阶张量六阶张量等。pytorch中的 Tensor支持超过一百种多操作,包括转置、索引、切片、数学运算、线性代数、随机数等等,总之,凡是你能想到的操作,在pytorch里都有对应的方法去完成。
下图是一个三维矩阵:
在这里插入图片描述

注意
  • (dimension)通常用来描述向量,比如:N维向量,128维特征值。这里的张量的轴定义不一样,这种N维向量描述的仍然是向量(即1阶张量)其中的N描述的是数组的元素个数;
  • 由于2阶张量(即矩阵)形似2维平面,3阶张量形似3维空间,而N阶张量又可以用N维数组来表示,导致有时会被拿来形容张量的 ,为了避免混淆,不要用 来描述 张量的阶,阶的数量,代表这个张量有几个轴;

2、标量 (scalar):0阶的张量,0个轴,一个单独的数(整数或实数);

Python中定义一个标量:

x = 1

3、向量(vector):1阶的张量,也叫矢量,1个轴,一个数组;

Python中定义一个向量:(向量在python中表示成一维数组

import numpy as np
#行向量
a = np.array([1,2,3,4])

4、矩阵 (matrix):2阶的张量,2个轴通常称为行和列;

Python中定义一个矩阵:(矩阵在python中表示成二维数组

import numpy as np
#矩阵
a = np.array([[1,2,3],[4,5,6],[7,8,9]])

Python中定义一个三维矩阵3阶的张量(三维矩阵3阶的张量在python中表示成维数组)

import numpy as np
#张量
a = np.array([[[1,2],[3,4]],[[5,6],[7,8]]])

我们以numpy.ndarrry类型的变量 t 的形状(t.shape)来说明:

  • (1,):标量,0阶张量,1维向量,只有1个数值;
  • (3,):矢量,1阶张量,3维向量,有3个数值;
  • (5,):矢量,1阶张量,5维向量,有5个数值;
  • (2, 3):矩阵,2阶张量,有6个数值,t[0]为3维向量;
  • (3, 1):矩阵,2阶张量,有3个值,t[0]为1维向量;
  • (3, 4, 5):3阶张量,有60个数值,t[0,0]为5维向量,t[0]为矩阵;

5、标量向量矩阵张量之间的联系:

标量是 0维空间中的一个点,向量是 一维空间中的一条线,矩阵是 二维空间的一个面,三阶张量 是三维空间中的一个体。也就是说,向量是由标量组成的,矩阵是向量组成的,张量是矩阵组成的

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

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

相关文章

那些你必须知道的4个matlab小技巧(附最新安装包)

文末福利:MATLAB R2022b软件安装包 MATLAB 简介 01 一、MATLAB简介 数学类科技应用软件包括数值计算(Number Crunching)型软件和数学分析(Math Analysis)型软件 数值计算型软件 它们对大批数据具有较强的管理、计…

微信小程序下拉刷新获取数据和触底事件刷新实现

一、下拉刷新 1.json文件 说明:开启下拉刷新,然后设置窗口的背景色,方便观看。 "enablePullDownRefresh": true,"backgroundColor":"#FFC0CB" 2. js文件 说明:重新发起请求,并显示加…

【问题总结】Docker环境下备份和恢复postgresql数据库

目录 文章目录 以从备份恢复forest_resources库为例一、备份数据库二、需要还原的数据库准备1 删除掉远程的库。2 重新创建一个空的库。可以使用sql3 找到数据库存放的路径,并将备份文件上传到对应的路径下 三、 进入docker容器内部,执行数据库恢复附录…

Vue3统计数值(Statistic)

可自定义设置以下属性: 数值的标题(title),类型:string | slot,默认:‘’数值的内容(value),类型:string | number,默认:…

AlphaPose复现配置教程

AlphaPose复现配置教程 AlphaPose介绍 AlphaPose是一种准确的多人姿态估计器,这是第一个在COCO数据集上达到70 mAP (75 mAP)和在MPII数据集上达到80 mAP (82.1 mAP)的开源系统。为了匹配跨帧的同一人的姿态,我们还提供了一种高效的在线姿态跟踪器&…

scala学习手册

1. case class学习 样例类模式匹配 1.1 样例类(case class)适合用于不可变的数据。它是一种特殊的类,能够被优化以用于模式匹配。 case class MetaData(userId: String)case class Book(name: String) {def printBookName(): Unit {printl…

跨网络的通信过程、路由的作用以及默认网关

如下网络拓扑图,交换机0所在的网段为192.168.1.0/24,交换机1所在网段为192.168.2.0/24,且各自有2台主机: 假设PC0(192.168.1.10/32)要跟PC4(192.168.2.11/32)通信,如何实…

函数和控制流

专栏简介:本专栏作为Rust语言的入门级的文章,目的是为了分享关于Rust语言的编程技巧和知识。对于Rust语言,虽然历史没有C、和python历史悠远,但是它的优点可以说是非常的多,既继承了C运行速度,还拥有了Java…

Simulink仿真模块 - Data Store Read

Data Store Read:从数据存储中读取数据 在仿真库中的位置为:Simulink / Signal Routing 模型为: 说明 Data Store Read 模块将指定数据存储中的数据复制到其输出中。多个 Data Store Read 模块可从同一个数据存储读取数据。 用来读取数据的源数据存储由 Data Store Memory 模…

vue+element-ui通用后台管理系统(适合新手)

vueelement-ui通用后台管理系统(适合新手) 1、使用到的技术 使用vue2element-uiaxiosjs-cookielessecharts实现的一个简易的通用后台管理系统,具有很强的可扩展性,修改简单,只要有点前端基础就能看懂; 2…

怎么学习Java数据库连接(JDBC)? - 易智编译EaseEditing

学习Java数据库连接(JDBC)是掌握Java与数据库交互的关键步骤。以下是学习Java JDBC的一些建议: 先掌握Java基础: 在学习JDBC之前,确保你已经掌握了Java的基本语法、面向对象编程和其他核心概念。这将有助于更好地理解…

Spring、SpringBoot、SpringCloud、SpringCloud Alibaba、Elasticsearch版本对应,附下载地址

1、GitHub Alibaba 发布SpringCloud Alibaba和SpringCloud 、SpringBoot版本 Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot2022.0.0.0-RC2Spring Cloud 2022.0.03.02022.0.0.0-RC1Spring Cloud 2022.0.03.0.02021.0.5.0*Spring Cloud 2021.0.52.6.132021.0.4…

基于FPGA的softmax函数优化及实现

文章目录 前言优化方案测试数据产生及Matlab结果处理流程工程说明功耗与面积标准softmax函数功耗与面积总结前言 FPGA异构计算是一个趋势,在AI推理、深度学习中广泛使用FPGA进行加速,减小系统延迟。而AI推理中有一个组件被广泛使用,各种网络模型中都有其身影,那就是激活函…

Ceph 应用

Ceph 应用 一、创建 CephFS 文件系统 MDS 接口 1.服务端操作 1)在管理节点创建 mds 服务 cd /etc/ceph ceph-deploy mds create node01 node02 node032)查看各个节点的 mds 服务 ssh rootnode01 systemctl status ceph-mdsnode01 ssh rootnode02 syst…

人工智能顶会投稿截止时间汇总

一、NeurIPS 1. 会议名称及等级 Annual Conference on Neural Information Processing Systems(CCF-A)https://dblp.uni-trier.de/db/conf/nips/index.html 2. 投稿时间及接收率 https://neurips.cc/Conferences/2023/CallForPapers#OpenReview 一般…

【C++修炼之路】内存管理

👑作者主页:安 度 因 🏠学习社区:StackFrame 📖专栏链接:C修炼之路 文章目录 一、C/C 内存分布二、考题三、C语言动态内存管理方式四、C内存管理方式1、对内置类型2、对自定义类型 五、C对动态管理的升级六…

Html基础知识学习——圣杯布局、margin负值、等高布局(十七)

文章目录 圣杯布局margin负值等高布局 圣杯布局 两边页面固定中间页面宽度随着浏览器大小自适应 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-widt…

mmdetection3.1.0 训练自己的数据集

目录 前言安装mmcv安装mmdetection验证安装数据集转为COCO划分训练集、验证集及测试集安装PaddlePaddle安装PaddleX划分数据集 修改对应文件修改coco.py重新安装修改模型文件 训练测试测试带真值的图像测试不带真值的图像批量测试 错误集锦ValueError: need at least one array…

Kafka

1.定义 Kafka&#xff1a;一个分布式基于发布/订阅模式的消息队列。 发布者发布消息进入队列后&#xff0c;每个订阅者都能在一定时间内获取发布的消息&#xff08;Kafka&#xff1a;消费者通过主动拉取pull队列&#xff09;。 缺点&#xff1a;即使没有消息&#xff0c;消费者…

如何解决VScode远程下载插件不了的问题?如何手动安装插件?

当我们在使用VScode进行远程操作时&#xff0c;在安装我们所需要的一些插件时&#xff0c;可能会出现如下图&#xff0c;一直卡在安装中....明明只有小几十MB&#xff0c;却一连好几个小时都一动不动。像这种情况&#xff0c;就需要我们进行手动安装该插件。 插件网站&#xff…