当前位置: 首页 > news >正文

深度学习中PyTorch张量的重塑操作

深度学习中PyTorch张量的重塑操作

张量操作类型

在我们深入具体的张量操作之前,让我们先快速浏览一下主要的操作类别,这些类别包括我们将要介绍的操作。我们有以下高级类别的操作:

  1. 重塑操作
  2. 元素级操作
  3. 归约操作
  4. 访问操作

有很多单独的操作,有时候当你刚开始时可能会感到有些吓人,但是将类似的操作根据它们的相似性分组,可以帮助我们更容易地学习张量操作。

展示这些类别的目的是让你在本系列的这一部分结束时,理解所有这四种操作。

在这里插入图片描述

这些关于张量操作的文章的目标不仅是展示常用的特定张量操作,而且还要描述操作的整体情况。了解存在的操作类型比仅仅了解或记忆单个操作能让我们更长久地保持知识。

请记住这一点,在我们探索每个类别时,努力理解这些类别。现在让我们开始重塑操作。

张量的重塑操作

_重塑操作_可能是最重要的张量操作类型。这是因为,正如我们在介绍张量的文章中提到的,张量的形状给我们提供了一些具体的东西,可以用来为我们的张量形成直观的感觉。

张量的类比

假设我们是神经网络程序员,因此我们通常花时间构建神经网络。为了完成我们的工作,我们使用各种工具。

我们使用数学工具,如微积分和线性代数,计算机科学工具,如Python和PyTorch,物理和工程工具,如CPU和GPU,以及机器学习工具,如神经网络、层、激活函数等。

在这里插入图片描述

我们的任务是构建能够转换或映射输入数据到我们寻求的正确输出的神经网络。

我们用来生产产品的主要原料,一个将输入映射到正确输出的函数,是数据。

数据是一个相当抽象的概念,所以当我们想要实际使用数据的概念来实现某事时,我们使用一个可以高效实现在代码中的特定数据结构,称为张量。张量具有数学和其他属性,允许我们完成工作。

张量是神经网络程序员用来生产产品的主要原料,即智能。

这与面包师使用面团生产,比如说,比萨非常相似。面团是用来创建输出的输入,但在生产比萨之前,通常需要对输入进行某种形式的重塑。

在这里插入图片描述

作为神经网络程序员,我们必须对我们的张量做同样的事情,通常塑造和重塑我们的张量是一个频繁的任务。

我们的网络毕竟是建立在张量上的,这就是为什么理解张量的形状和可用的重塑操作非常重要。

我们不是在生产比萨,而是在生产智能!这可能有点俗气,但不管怎样。让我们开始重塑操作。

张量形状回顾

假设我们有以下张量:

> t = torch.tensor([[1,1,1,1],[2,2,2,2],[3,3,3,3]
], dtype=torch.float32)

要确定这个张量的形状,我们首先看行数3​,然后是列数4​,所以这个张量是一个3 x 4​的秩为2​的张量。记住,_秩_是一个常用词,只是指张量内部存在的维度数量。

在PyTorch中,我们有两种方法来获取形状:

> t.size()
torch.Size([3, 4])> t.shape
torch.Size([3, 4])

在PyTorch中,张量的_size_和_shape_意味着同一件事。

通常,在我们了解张量的形状后,我们可以推断出一些东西。首先,我们可以推断出张量的秩。张量的秩等于张量形状的长度。

> len(t.shape)
2

我们还可以推断出张量内部包含的元素数量。张量内部的元素数量(在我们的例子中是12)等于形状的组成部分值的乘积。

> torch.tensor(t.shape).prod()
tensor(12)

在PyTorch中,有一个专门的函数来做这件事:

> t.numel()
12

张量内部包含的元素数量对于重塑很重要,因为重塑必须考虑存在的总元素数量。重塑改变了张量的形状,但没有改变底层数据。我们的张量有12​个元素,所以任何重塑都必须考虑恰好12​个元素。

在PyTorch中重塑张量

现在让我们看看这个张量t​可以如何被重塑而不改变秩:

> t.reshape([1,12])
tensor([[1., 1., 1., 1., 2., 2., 2., 2., 3., 3., 3., 3.]])> t.reshape([2,6])
tensor([[1., 1., 1., 1., 2., 2.],[2., 2., 3., 3., 3., 3.]])> t.reshape([3,4])
tensor([[1., 1., 1., 1.],[2., 2., 2., 2.],[3., 3., 3., 3.]])> t.reshape([4,3])
tensor([[1., 1., 1.],[1., 2., 2.],[2., 2., 3.],[3., 3., 3.]])> t.reshape(6,2)
tensor([[1., 1.],[1., 1.],[2., 2.],[2., 2.],[3., 3.],[3., 3.]])> t.reshape(12, 1)
tensor([[1.],[1.],[1.],[1.],[2.],[2.],[2.],[2.],[3.],[3.],[3.],[3.]])

使用reshape()​函数,我们可以指定我们寻求的行 x 列​形状。注意所有的形状都必须考虑张量中的元素数量。在我们的例子中,这是:

行 * 列 = 12 个元素

当我们处理秩为2​的张量时,我们可以使用直观的词_行_和_列_。对于更高维的张量,底层逻辑是相同的,尽管我们可能无法在更高维空间中使用行和列的直观感觉。例如:

> t.reshape(2,2,3)
tensor(
[[[1., 1., 1.],[1., 2., 2.]],[[2., 2., 3.],[3., 3., 3.]]
])

在这个例子中,我们将秩增加到3​,所以我们失去了_行和列_的概念。然而,形状的组成部分(2​,2​,3​)的乘积仍然必须等于原始张量中的元素数量(12​)。

请注意,PyTorch还有一个你可能看到的函数叫做view()​,它和reshape()​函数做同样的事情,但不要让这些名字迷惑你。无论我们使用哪个深度学习框架,这些概念都将是相同的。

通过压缩和解压改变形状

接下来的改变张量形状的方法是通过压缩(squeezing)和解压(unsqueezing)它们。

  • 压缩张量会移除长度为一的维度或轴。
  • 解压张量会添加一个长度为一的维度。

这些函数允许我们扩展或缩小张量的秩(维度的数量)。让我们看看这在实际操作中的样子。

> print(t.reshape([1,12]))
> print(t.reshape([1,12]).shape)
tensor([[1., 1., 1., 1., 2., 2., 2., 2., 3., 3., 3., 3.]])
torch.Size([1, 12])> print(t.reshape([1,12]).squeeze())
> print(t.reshape([1,12]).squeeze().shape)
tensor([1., 1., 1., 1., 2., 2., 2., 2., 3., 3., 3., 3.])
torch.Size([12])> print(t.reshape([1,12]).squeeze().unsqueeze(dim=0))
> print(t.reshape([1,12]).squeeze().unsqueeze(dim=0).shape)
tensor([[1., 1., 1., 1., 2., 2., 2., 2., 3., 3., 3., 3.]])
torch.Size([1, 12])

注意我们压缩和解压张量时形状的变化。

让我们通过构建一个_扁平化_函数来查看压缩张量的常见用例。

扁平化张量

对张量进行_扁平化_操作会将张量重塑为包含张量中所有元素数量的形状。这与一维数组相同。

_扁平化_张量意味着移除所有维度,只保留一个。

让我们创建一个名为flatten()​的Python函数:

def flatten(t):t = t.reshape(1, -1)t = t.squeeze()return t

flatten()​函数接收一个张量t​作为参数。

由于参数t​可以是任何张量,我们传递-1​作为reshape()​函数的第二个参数。在PyTorch中,-1​告诉reshape()​函数根据张量中包含的元素数量来确定值。记住,形状必须等于形状组成部分值的乘积。这就是PyTorch如何根据第一个参数为1​来确定值的方法。

由于我们的张量t​有12​个元素,reshape()​函数能够确定第二个轴的长度需要是12​。

压缩后,第一个轴(轴-0)被移除,我们得到了期望的结果,一个长度为12​的一维数组。

这里有一个实际操作的例子:

> t = torch.ones(4, 3)
> t
tensor([[1., 1., 1.],[1., 1., 1.],[1., 1., 1.],[1., 1., 1.]])> flatten(t)
tensor([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])

在未来的文章中,当我们开始构建卷积神经网络时,我们将看到flatten()​函数的使用。我们将看到,当从卷积层传递输出张量到线性层时,需要进行_扁平化_操作。

在这些例子中,我们扁平化了整个张量,然而,可以只扁平化张量的特定部分。例如,假设我们有一个形状为[2,1, 28, 28]​的张量,用于CNN。这意味着我们有一批2​个灰度图像,高度和宽度的维度分别为28 x 28​。

在这里,我们可以特别扁平化这两个图像。得到以下形状:[2, 1, 784]​。我们也可以压缩掉通道轴,得到以下形状:[2, 784]​。

连接张量

我们使用cat()​函数连接张量,生成的张量形状取决于两个输入张量的形状。

假设我们有两个张量:

> t1 = torch.tensor([[1,2],[3,4]
])
> t2 = torch.tensor([[5,6],[7,8]
])

我们可以按行(轴0)连接t1​和t2​:

> torch.cat((t1, t2), dim=0)
tensor([[1, 2],[3, 4],[5, 6],[7, 8]])

我们可以按列(轴1)连接它们:

> torch.cat((t1, t2), dim=1)
tensor([[1, 2, 5, 6],[3, 4, 7, 8]])

当我们连接张量时,我们增加了结果张量中包含的元素数量。这导致形状中的组成部分值(轴的长度)调整以考虑额外的元素。

> torch.cat((t1, t2), dim=0).shape
torch.Size([4, 2])> torch.cat((t1, t2), dim=1).shape
torch.Size([2, 4])

关于重塑张量的结论

现在我们应该对重塑张量有了很好的理解。每当我们改变张量的形状时,我们就说是在重塑张量。

记住这个类比。面包师使用面团,神经网络程序员使用张量。尽管塑形的概念相同,但我们不是在制作烘焙食品,而是在创造智能。

相关文章:

深度学习中PyTorch张量的重塑操作

深度学习中PyTorch张量的重塑操作 张量操作类型 在我们深入具体的张量操作之前,让我们先快速浏览一下主要的操作类别,这些类别包括我们将要介绍的操作。我们有以下高级类别的操作: 重塑操作元素级操作归约操作访问操作 有很多单独的操作&…...

lua下标是可以从0开始

故事背景,策划搞了一个功能配置表,我看居然是0开始的,功能也正常。于是测试了下,还真的可以。网上看了资料确实可以,但是也有需要注意的问题 local test {[0] 0} for k,v in pairs(test)doprint(k,v) endhttps://bl…...

从AI原理到模型演进及代码实践 的学习二

参考:全面解析:从AI原理到模型演进及代码实践-CSDN博客 训练过程 Transformer仅一个Encoder模块就可以工作,可以处理信息抽取、识别、主体识别等任务,比如 BERT(Bidirectional Encoder Representations from Transfor…...

计算机组成原理(计算机系统3)--实验二:MIPS64乘法实现实验

一、实验目标: 实际运用WinMIPS64进行试验,以期更了解WinMIPS64的操作; 更加深入地了解MIPS程序的语法; 深入地了解在计算机中乘法的实现以及加法与乘法之间的关系。 二、实验内容 按照实验报告指导,完成相关操作…...

WPS excel使用宏编辑器合并 Sheet工作表

使用excel自带的工具合并Sheet表,我们会发现需要开通WPS会员才能使用合并功能; 那么WPS excel如何使用宏编辑器进行合并 Sheet表呢? 1、首先我们要看excel后缀是 .xlsx 还是 .xls ;如果是.xlsx 那么 我们需要修改为 .xls 注…...

ASP.NET Core - 配置系统之配置添加

ASP.NET Core - 配置系统之配置添加 2. 配置添加 2. 配置添加 配置系统可以读取到配置文件中的信息,那必然有某个地方可以将配置文件添加到配置系统中。之前的文章中讲到 ASP.NET Core 入口文件中,builder(WebApplicationBuilder 对象) 中有一个 Config…...

【Redis】Redis 集群中节点之间如何通信?

【Redis】Redis 集群中节点之间如何通信? 一背景概述二通信协议Gossip 协议 三通信机制Gossip 消息类型(1).Ping消息(2).Pong消息(3).Meet消息(4).Fail消息 消息传播模式(1).反熵(Anti-entropy)(2).谣言传播(Rumor mongering) 四通信过程通信端口通信频率故障检测与…...

iOS - 内存对齐

1. 基本的内存对齐 // 对象内存对齐 struct objc_object {// isa 指针 8 字节对齐isa_t isa __attribute__((aligned(8))); };// 定义对齐常量 #define WORD_MASK 7UL // 字对齐掩码 #define WORD_SHIFT 3UL // 字对齐位移 #define WORD_SIZE 8 …...

RabbitMQ(四)

SpringBoot整合RabbitMQ SpringBoot整合1、生产者工程①创建module②配置POM③YAML④主启动类⑤测试程序 2、消费者工程①创建module②配置POM③YAML文件内配置: ④主启动类⑤监听器 3、RabbitListener注解属性对比①bindings属性②queues属性 SpringBoot整合 1、生…...

unity学习17:unity里的旋转学习,欧拉角,四元数等

目录 1 三维空间里的旋转与欧拉角,四元数 1.1 欧拉角比较符合直观 1.2 四元数 1.3 下面是欧拉角和四元数的一些参考文章 2 关于旋转的这些知识点 2.1 使用euler欧拉角旋转 2.2 使用quaternion四元数,w,x,y,z 2.3 使用quaternion四元数,类 Vector3.zero 这种…...

当PHP遇上区块链:一场奇妙的技术之旅

PHP 与区块链的邂逅 在技术的广袤宇宙中,区块链技术如同一颗耀眼的新星,以其去中心化、不可篡改、透明等特性,掀起了一场席卷全球的变革浪潮。众多开发者怀揣着对新技术的热忱与探索精神,纷纷投身于区块链开发的领域,试…...

Portainer.io安装并配置Docker远程访问及CA证书

Portainer.io安装并配置Docker远程访问及CA证书 文章目录 Portainer.io安装并配置Docker远程访问及CA证书一.安装 Portainer.io2.启动容器 二.docker API远程访问并配置CA安全认证1.配置安全(密钥)访问2.补全CA证书信息3.生成server-key.pem4.创建服务端签名请求证书文件5.创建…...

从漏洞管理到暴露管理:网络安全的新方向

在网络安全的快速发展中,传统的漏洞管理仍然是防御体系的基石。然而,面对日益复杂的威胁和不断增长的漏洞数量,单靠漏洞优先级评分(如VPR)已经无法满足现代安全需求。暴露管理这一全新的思维模式正在引领企业从被动应对…...

GraphRAG如何使用ollama提供的llm model 和Embedding model服务构建本地知识库

使用GraphRAG踩坑无数 在GraphRAG的使用过程中将需要踩的坑都踩了一遍(不得不吐槽下,官方代码有很多遗留问题,他们自己也承认工作重心在算法的优化而不是各种模型和框架的兼容性适配性上),经过了大量的查阅各种资料以…...

HTTP/HTTPS ⑤-CA证书 || 中间人攻击 || SSL/TLS

这里是Themberfue ✨上节课我们聊到了对称加密和非对称加密,实际上,单纯地非对称加密并不能保证数据不被窃取,我们还需要一个更加重要的东西——证书 中间人攻击 通过非对称加密生成私钥priKey和公钥pubKey用来加密对称加密生成的密钥&…...

MYSQL学习笔记(二):基本的SELECT语句使用(基本、条件、聚合函数查询)

前言: 学习和使用数据库可以说是程序员必须具备能力,这里将更新关于MYSQL的使用讲解,大概应该会更新30篇,涵盖入门、进阶、高级(一些原理分析);这一篇是讲解SELECT语句使用,包括基本、条件、聚合函数查询,…...

云原生周刊:Prometheus 3.0 正式发布

开源项目推荐 Achilles-SDK Achilles-SDK 是一个专为构建 Kubernetes 控制器而设计的开源开发工具包。它简化了控制器的开发流程,提供了强大的 API 和高效的抽象层,使开发者能够专注于业务逻辑的实现,而无需处理底层复杂性。Achilles-SDK 支…...

维护数据完整性(三)

立即检查的(IMMEDIATE)或者延迟检查的(DEFERRED) 使用 SET CONSTRAINTS 语句 SET CONSTRAINTS语句可以用来在事务内部改变约束的检查时机。以下是如何使用该语句的示例: SET CONSTRAINTS constraint_name DEFERRED;…...

前后端分离开发心得

前后端分离开发是一种软件开发模式,将前端和后端的开发分离开来,使得前端和后端可以独立开发、测试和部署。具体来说: • 前端:负责展示数据和用户交互,使用 HTML、CSS、JavaScript 等技术实现用户界面和交互逻辑&…...

Redisson发布订阅学习

介绍 Redisson 的消息订阅功能遵循 Redis 的发布/订阅模式,该模式包括以下几个核心概念: 发布者(Publisher):发送消息到特定频道的客户端。在 Redis 中,这通过 PUBLISH 命令实现。 订阅者(Sub…...

【Golang/nacos】nacos配置的增删查改,以及服务注册的golang实例及分析

前言 本文分析的实例来源于nacos在github上的开源仓库 nacos配置的增删查改 先具体来看一段代码,我将逐步分析每一段的作用 package mainimport ("fmt""time""github.com/nacos-group/nacos-sdk-go/clients""github.com/naco…...

[手机Linux] 七,NextCloud优化设置

安装完成后在个人设置里发现很多警告,一一消除。 只能一条一条解决了。 关于您的设置有一些错误。 1,PHP 内存限制低于建议值 512 MB。 设置php配置文件: /usr/local/php/etc/php.ini 把里面的: memory_limit 128M 根据你自…...

浅谈云计算15 | 存储可靠性技术(RAID)

存储可靠性技术 一、存储可靠性需求1.1 数据完整性1.2 数据可用性1.3 故障容错性 二、传统RAID技术剖析2.1 RAID 02.2 RAID 12.3 RAID 52.4 RAID 62.5 RAID 10 三、RAID 2.0技术3.1 RAID 2.0技术原理3.1.1 两层虚拟化管理模式3.1.2 数据分布与重构 3.2 RAID 2.0技术优势3.2.1 自…...

vscode【实用插件】Material Icon Theme 美化文件图标

安装 在 vscode 插件市场的搜索 Material Icon Theme点 安装 效果...

json().get() 和 json[““] 的区别

以下是 json().get() 和 json[“”] 的区别: 使用方法和语法 json[“”]: 这是使用字典的索引操作符 [] 来访问 JSON 数据。假设 json 是一个字典,你可以通过 json[“key”] 的方式来获取对应 key 的值。 示例: python import js…...

商用车电子电气零部件电磁兼容条件和试验—目录

写在前面 本系列文章主要讲解商用车电子/电气零部件或系统的传导抗干扰、传导发射和辐射抗干扰、电场辐射发射以及静电放电等试验内容及要求,高压试验项目内容及要求。 若有相关问题,欢迎评论沟通,共同进步。(*^▽^*) 目录 商用车电子电气零部件电磁兼容条件和试验(1)—…...

【新人系列】Python 入门(二十六):常见设计模式

✍ 个人博客:https://blog.csdn.net/Newin2020?typeblog 📝 专栏地址:https://blog.csdn.net/newin2020/category_12801353.html 📣 专栏定位:为 0 基础刚入门 Python 的小伙伴提供详细的讲解,也欢迎大佬们…...

【跟着官网学技术系列之MySQL】第7天之创建和使用数据库1

前言 在当今信息爆炸的时代,拥有信息检索的能力很重要。 作为一名软件工程师,遇到问题,你会怎么办?带着问题去搜索引擎寻找答案?亦或是去技术官网,技术社区去寻找? 根据个人经验,一…...

Spark任务提交流程

当包含在application master中的spark-driver启动后,会与资源调度平台交互获取其他执行器资源,并通过反向注册通知对应的node节点启动执行容器。此外,还会根据程序的执行规划生成两个非常重要的东西,一个是根据spark任务执行计划生…...

使用python+pytest+requests完成自动化接口测试(包括html报告的生成和日志记录以及层级的封装(包括调用Json文件))

一、API的选择 我们进行接口测试需要API文档和系统,我们选择JSONPlaceholder免费API,因为它是一个非常适合进行接口测试、API 测试和学习的工具。它免费、易于使用、无需认证,能够快速帮助开发者模拟常见的接口操作(增、删、改、…...

Docker的入门

一、安装Docker 本教程参考官网文档,链接如下: CentOS | Docker Docs 这个教程是基于你的虚拟机已经弄好了(虚拟机用的CentOS),并且有SecureCRT或者MobaXterm等等任意一个工具 1.1 卸载旧版 如果系统中存在旧版本的Docker&a…...

机器学习:监督学习与非监督学习

监督学习是利用带有标签的数据进行训练,模型通过学习输入和输出之间的关系来进行预测。也就是说,数据集中既有输入特征,也有对应的输出标签,模型的目标是找到从输入到输出的映射关系。 而无监督学习则使用没有标签的数据进行训练,模型的任务是发现数据中的内在结构或模式…...

神经网络常见操作(卷积)输入输出

卷积 dimd的tensor可以进行torch.nn.Convnd(in_channels,out_channels),其中nd-1,d-2对于torch.nn.Convnd(in_channels,out_channels),改变的是tensor的倒数n1维的大小 全连接 使用torch.nn.Linear(in_features,out_features,bias)实现YXWT b,其中X 的形状为 (ba…...

海云安开发者安全智能助手D10荣膺 “ AI标杆产品 ” 称号,首席科学家齐大伟博士入选2024年度 “ 十大杰出青年 ”

2024年12月27日,粤港澳大湾区AI领袖峰会在深圳成功举办,大会表彰了在人工智能技术创新、应用实践和产业发展等方面取得优异成绩的企业和个人,深圳海云安网络安全技术有限公司开发者安全智能助手D10荣膺“AI标杆产品”称号。同时,公…...

O2O同城系统架构与功能分析

2015工作至今,10年资深全栈工程师,CTO,擅长带团队、攻克各种技术难题、研发各类软件产品,我的代码态度:代码虐我千百遍,我待代码如初恋,我的工作态度:极致,责任&#xff…...

C#,入门教程(27)——应用程序(Application)的基础知识

上一篇: C#,入门教程(26)——数据的基本概念与使用方法https://blog.csdn.net/beijinghorn/article/details/124952589 一、什么是应用程序 Application? 应用程序是编程的结果。一般把代码经过编译(等)过程&#…...

计算机网络(四)——网络层

目录 一、功能 二、IP数据报分片 三、DHCP动态主机配置协议 四、网络地址转换(NAT)技术 五、无分类编址CIDR 六、ARP地址解析协议 七、ICMP网际控制报文协议 八、IPv4和IPv6的区别 九、IPv4向IPv6的两种过渡技术——双栈协议和隧道技术 十、路由…...

VSCode的配置与使用(C/C++)

从0开始教你在vscode调试一个C文件 一.首先是配置你的编译环境,添加到环境变量(默认你是全新的电脑,没有安装vs2019之类的) 原因:因为相比于vs2019,vscode只是个代码编辑器,相当于一个彩色的、…...

《机器学习》——TF-IDF(关键词提取)

文章目录 TF-IDF简介TF-IDF应用场景TF-IDF模型模型参数主要参数 TF-IDF实例实例步骤导入数据和模块处理数据处理文章开头和分卷处理将各卷内容存储到数据帧jieba分词和去停用词处理 计算 TF-IDF 并找出核心关键词 TF-IDF简介 TF - IDF(Term Frequency - Inverse Do…...

金仓Kingbase客户端KStudio报OOM:Java heap space socketTimeout

找到Kingbase\ES\V8\KESRealPro\V008R006C006B0021\ClientTools\guitools\KStudio\KStudio.ini 修改JVM参数: 默认值: -Xms512m -Xmx1024m 改为: -Xms1024m -Xmx2048m -XX:MaxPermSize512m SQL查询报错:An I/O error occurred …...

XML在线格式化 - 加菲工具

XML在线格式化 打开网站 加菲工具 选择“XML 在线格式化” 输入XML,点击左上角的“格式化”按钮 得到格式化后的结果...

thinkphp8.0 likeadmin 框架添加API 文档自动生成工具 apidoc支持

Apidoc 是一个便捷的 API 文档自动生成工具,它能帮助开发者快速生成和管理 API 文档。以下是 Apidoc 的主要特点和功能: 主要特点 开箱即用 安装后,无需繁杂配置,直接按照文档编写注释,即可自动生成 API 文档。 轻松编…...

计算机网络 (44)电子邮件

一、概述 电子邮件(Electronic Mail,简称E-mail)是因特网上最早流行的应用之一,并且至今仍然是因特网上最重要、最实用的应用之一。它利用计算机技术和互联网,实现了信息的快速、便捷传递。与传统的邮政系统相比&#…...

【Idea启动项目报错NegativeArraySizeException】

项目场景: Idea启动项目报错(打包不报错),项目在服务器部署运行没有问题,尝试了重启idea、重启电脑、maven clean/install 都不行 maven-resources-production:sample: java.lang.NegativeArraySizeException: -5833…...

长安“战疫”网络安全公益赛的一些随想

起因 今年刚进入大学,开始带校队,为了培养校队新成员,也就一直计划着和当地的一些高校合作交流,但是由于种种原因一直被搁置下来。正巧学校信息中心和四叶草有一个培训项目的合作,学校的网安协会也算是沾了光成为了培…...

【网络编程】基础知识

目录 网络发展史 局域网和广域网 局域网(LAN) 广域网(Wan) 光猫 路由器 网线 设备通信的要素 IP地址 基本概念 地址划分 特殊地址(后续编程使用) IP地址转换 字节序 网络模型 网络的体系结…...

RK3568平台(音频篇)lineout无声调试

一.声音硬件框架 硬件HP_MUTE已强制拉低。 二.设备树配置 es8388_sound: es8388-sound {status = "okay";compatible = "rockchip,multicodecs-card";rockchip,card-name = "rockchip-es8388";hp-det-gpio = <&gpio1 RK_PD2 GPIO_ACT…...

计算机组成原理(计算机系统3)--实验三:取指和指令译码设计

一、 实验目标&#xff1a; 设计完成一个连续取指令并进行指令译码的电路&#xff0c;从而掌握设计简单数据通路的基本方法。 二、实验内容 本实验完成&#xff1a;1&#xff09;首先完成一个译码器&#xff1b;2&#xff09;接着实现一个寄存器文件&#xff1b;3&#xff0…...

紫光无人机AI飞控平台介绍

随着无人机技术的迅猛发展&#xff0c;无人机飞控平台的智能化需求不断提升。紫光无人机AI飞控平台作为一款创新型产品&#xff0c;为用户提供了从飞行控制到任务管理的一站式解决方案&#xff0c;尤其在AI实时识别和事件分析方面具有显著优势。本文将介绍平台的核心功能、技术…...

基于EMQX+MQTT+ESP32+Openharmony的开发实例

EMQX介绍 EMQ X 是基于 Erlang/OTP 平台开发的 MQTT 消息服务器&#xff0c;是开源社区中最流行的 MQTT 消息服务器。EMQX 是开源百万级分布式 MQTT 消息服务器&#xff08;MQTT Messaging Broker&#xff09;&#xff0c;用于支持各种接入标准 MQTT 协议的设备&#xff0c;实…...