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

文章目录

        • 前言
        • 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)通信,如何实…

iptables 命令

清除规则 iptables -D INPUT 2 iptables -D OUTPUT 2 默认规则 iptables -P INPUT DROP iptables -P INPUT ACCEPT iptables -P OUTPUT DROP iptables -P OUTPUT ACCEPT 添加规则 iptables -A INPUT -s 192.168.80.11 -j ACCEPT iptables -A INPUT -s 192.168.80.11 -j D…

k8s 对外服务之 Ingress

//Ingress 简介 service的作用体现在两个方面,对集群内部,它不断跟踪pod的变化,更新endpoint中对应pod的对象,提供了ip不断变化的pod的服务发现机制;对集群外部,他类似负载均衡器,可以在集群内外…

函数和控制流

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

7.运算符优先级

优先级运算符顺序1小括号 &#xff08;&#xff09; 2一元运算符 -- &#xff01; 3算数运算符先* / %后 -4关系运算符> > < <5相等运算符 &#xff01; &#xff01;6逻辑运算符先&&后||7赋值运算符8逗号运算符&#xff0c; 一…

Simulink仿真模块 - Data Store Read

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

Ceph的部署与应用

文章目录 Ceph的部署与应用一.存储基础1.单机存储设备(1)DAS&#xff08;直接附加存储&#xff0c;是直接接到计算机的主板总线上去的存储&#xff09;(2)NAS&#xff08;网络附加存储&#xff0c;是通过网络附加到当前主机文件系统之上的存储&#xff09;(3)SAN&#xff08;存…

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

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

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

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

webpack学习

1.webpack 项目-----》装载器------》插件------》浏览器 loader&#xff1a;将浏览器不能识别的文件转化为html&#xff0c;js&#xff0c;css 插件&#xff1a;对文件进行处理像压缩&#xff0c;合并等 入口&#xff1a; 出口&#xff1a; 创建webpack webpack init -y webp…

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…

js代码优化

感觉有点基础&#xff0c;不过还是记一下&#xff0c;遇到了至少有话说 语言特性 避免全局查找&#xff1a;在JavaScript中&#xff0c;全局变量的查找会比局部变量更耗时。因此&#xff0c;尽量将常用的变量存储为局部变量&#xff0c;以减少作用域链的查找时间。 避免过度使…

蓝桥杯上岸每日N题第三期(一)!!!

大家好 我是寸铁&#x1f4aa; 考前需要刷大量真题,大家一起相互监督&#xff0c;每日做N题&#xff0c;一起上岸吧✌️ ~ 冲刺蓝桥杯省一模板大全来啦 &#x1f4a5; ~ 蓝桥杯4月8号就要开始了 &#x1f64f; ~ 还没背熟模板的伙伴们背起来 &#x1f4aa; &#x1f4aa; &…