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

组会 | DenseNet

目录

    • 1 研究背景
      • 1.1 提出的动机
      • 1.2 同期的模型
    • 2 网络模型
      • 2.1 模型架构
      • 2.2 模块与参数
      • 2.3 瓶颈层和压缩率
      • 2.4 小结
    • 3 实验结果
    • 4 优点与缺点
      • 4.1 DenseNet 的优点
      • 4.2 DenseNet 的缺点


前言:本博客仅为组会总结,如有谬误,请不吝指出!

DenseNet 论文地址:https://arxiv.org/pdf/1608.06993



1 研究背景

1.1 提出的动机

DenseNet 在 2017 年被提出,与 Transformer 处于同一时期

卷积网络在加深的过程会出现两个主要问题:

  • ① 在信息正向传播至更深层网络的过程中,信息会逐渐衰减,导致深层网络未能得到充分的利用;
  • ② 在深层网络中,反向传播的梯度可能会出现消失或爆炸现象,这使得网络训练变得困难,并且难以对深层网络的权重进行有效更新。

简化版:① 信息衰减;② 梯度容易消失或爆炸导致权重更新困难

ResNet (2015) 提出了残差连接机制用于解决上述两个问题:

x l = H l ( x l − 1 ) + x l − 1 \mathrm{x}_{l}=H_{l}(\mathrm{x}_{l-1})+\mathrm{x}_{l-1} xl=Hl(xl1)+xl1

该机制通过建立直接路径,有效缓解了反向传播过程中梯度消失的问题,并且在一定程度上,通过直接引入原始输入,改善了正向传播中信息流失的现象。

继 2015 年 ResNet 被提出后,神经网络的研究重点从加深网络转向提高网络效率。

DenseNet 其实采用的也是残差连接的思想,只是觉得 ResNet 做得不够好。



1.2 同期的模型

ResNet (2015) 表明,通过在卷积网络中靠近输入的层和靠近输出的层之间建立更直接的连接,网络能够实现更深的结构,同时训练过程也变得更加精确和高效。

自 ResNet 提出以来,同期开发的神经网络普遍借鉴了残差连接的概念来加深网络结构,它们都建立了从网络早期层到后期层的直接连接路径,这些网络包括:

  • Highway Network:同样采用了残差连接,只是还应用了门控机制。
  • Stochastic Depth:对 ResNet 实施随机丢弃网络层的方法,加强信息流的传递和反向传播。
  • FractalNet:通过构建多个并行的卷积层序列,按分形结构并行递归组合,不同深度的路径交织在一起,形成了许多从输入到输出的短路径。

好奇 FractalNet 的模型架构:

在这里插入图片描述



2 网络模型

2.1 模型架构

DenseNet 采用密集连接、特征重用的方式来解决神经网络加深过程中遇到的两个问题

在这里插入图片描述
Dense Block:

在这里插入图片描述

  • DenseNet 在具有相同特征图大小的任何两个层之间引入了直接连接;
  • 对于含 L L L 层的传统卷积网络,层之间有 L L L 条连接(算上了用于输出的连接);
  • 对于含 L L L 层的 DenseBlock,层之间有 ( L + 1 ) ∗ L / 2 (L+1)*L/2 (L+1)L/2 条连接(算上了用于输出的连接)。

C L + 1 2 = ( L + 1 ) × L 2 × 1 C_{L+1}^{2}=\frac{(L+1)\times L}{2\times 1} CL+12=2×1(L+1)×L

说明:计算结果中包含了 DenseBlock 到过渡层的连接。



2.2 模块与参数

在这里插入图片描述

  • DenseBlock:包含批量归一化、ReLU 和卷积,以及将之前层的输出拼接到当前的输入中。
  • Transition Layer:过渡层,位于 DenseBlock 之间,包含 1×1 卷积和池化。其中,1×1 卷积用于在保持空间特征的前提下减少特征通道数,池化用于缩小特征图的大小。
  • Growth Rate k:成长率,表示每一层生成的特征图(通道)的数量。之所以叫作成长率,是因为 DenseNet 采用特征拼接的方式,每经过一层网络,输出通道数就会增加 k 层。

和 ResNet 的残差连接机制不同,DenseNet 直接对输入进行拼接而不是相加,这是因为 DenseNet 认为直接相加其实在一定程度上破坏了信息传播中的完整性。

比如,第 l l l 层的输出为:

x l = H l ( [ x 0 , x 1 , . . . , x l − 1 ] ) \mathrm{x}_{l}=H_{l}(\left [ \mathrm{x}_{0},\mathrm{x}_{1},...,\mathrm{x}_{l-1} \right ]) xl=Hl([x0,x1,...,xl1])

由上式可知,第 l l l 层的原始输入为 x l − 1 \mathrm{x}_{l-1} xl1,特征拼接后的输入为 [ x 0 , x 1 , . . . , x l − 1 ] \left [ \mathrm{x}_{0},\mathrm{x}_{1},...,\mathrm{x}_{l-1} \right ] [x0,x1,...,xl1],而第 l l l 层的输出 x l \mathrm{x}_{l} xl 将作为第 l + 1 l+1 l+1 层的原始输入。

更进一步地,第 l l l 层的输入通道数为:

C i n l = C i n l − 1 + k = C i n l − 2 + 2 k = . . . = C i n 0 + ( l − 1 ) × k \begin{alignat}{2} \nonumber \mathrm{Cin}_{l} &=\mathrm{Cin}_{l-1}+k \\ \nonumber &=\mathrm{Cin}_{l-2}+2k \\ \nonumber &= ... \\ \nonumber &=\mathrm{Cin}_{0}+(l-1)\times k \end{alignat}{} Cinl=Cinl1+k=Cinl2+2k=...=Cin0+(l1)×k

其中 C i n l \mathrm{Cin}_{l} Cinl 是指特征拼接后的输入的通道数,而 k k k 是指每层的输出通道数为固定值 k k k,表示的是第 l l l 层的原始输入的通道数。也就是说,当前层的输入(通道数为 C i n l \mathrm{Cin}_{l} Cinl),等于上一层的输入(通道数为 C i n l − 1 \mathrm{Cin}_{l-1} Cinl1)和上一层的输出(通道数为 k k k)的拼接结果。

说明:一个特征图就是一个通道,输出的特征图的个数就是输出的通道的个数。

下图展示了一个 5 层的 DenseBlock,其中成长率设置为 4,即每层的输出通道数为 4:

在这里插入图片描述

说明:之所以图中第一层的通道数为 5,是因为包含了最原始的输入 (Input),其通道数为 1 。

  • 0 0 0 H 0 H_{0} H0 的输入为 I n p u t \mathrm{Input} Input,通道数为 1 1 1,输出为 x 0 \mathrm{x}_{0} x0
  • 1 1 1 H 1 H_{1} H1 的输入为 [ I n p u t , x 0 ] \left [ \mathrm{Input}, \mathrm{x}_{0} \right ] [Input,x0],通道数为 5 5 5,输出为 x 1 \mathrm{x}_{1} x1
  • 2 2 2 H 2 H_{2} H2 的输入为 [ I n p u t , x 0 , x 1 ] \left [ \mathrm{Input}, \mathrm{x}_{0}, \mathrm{x}_{1} \right ] [Input,x0,x1],通道数为 9 9 9,输出为 x 2 \mathrm{x}_{2} x2
  • 3 3 3 H 3 H_{3} H3 的输入为 [ I n p u t , x 0 , x 1 , x 2 ] \left [ \mathrm{Input}, \mathrm{x}_{0}, \mathrm{x}_{1}, \mathrm{x}_{2} \right ] [Input,x0,x1,x2],通道数为 13 13 13,输出为 x 3 \mathrm{x}_{3} x3
  • 4 4 4 H 4 H_{4} H4 的输入为 [ I n p u t , x 0 , x 1 , x 2 , x 3 ] \left [ \mathrm{Input}, \mathrm{x}_{0}, \mathrm{x}_{1}, \mathrm{x}_{2}, \mathrm{x}_{3} \right ] [Input,x0,x1,x2,x3],通道数为 17 17 17,输出为 x 4 \mathrm{x}_{4} x4
  • 过渡层的输入为 [ I n p u t , x 0 , x 1 , x 2 , x 3 , x 4 ] \left [ \mathrm{Input}, \mathrm{x}_{0}, \mathrm{x}_{1}, \mathrm{x}_{2}, \mathrm{x}_{3}, \mathrm{x}_{4} \right ] [Input,x0,x1,x2,x3,x4],通道数为 21 21 21


2.3 瓶颈层和压缩率

  • 瓶颈层:Bottleneck Layer
  • 压缩率:Compression

瓶颈层和压缩率均通过 1×1 卷积来减少特征的通道数

1)瓶颈层

如下图红框所示的是一个瓶颈层:

在这里插入图片描述

  • 处理流程:Input→(1×1) Conv (Reduce Channels)→(3×3) Conv (Extract Features)→Output
  • 降低计算复杂度:1×1 卷积减少了 3×3 卷积的输入通道数,从而减少了计算成本。
  • 提高网络表达能力:3×3 卷积进一步提取了局部特征。

2)压缩率

如下图红框所示的是一个压缩率:

在这里插入图片描述

  • 处理流程:Input→(1×1) Conv (Compression)→(2×2) Avg Pool (Reduce Resolution)→Output
  • 减少模型内存占用:1×1 卷积控制 DenseBlock 输出的通道数量,防止通道数膨胀。
  • 提升参数效率:池化操作用于压缩冗余特征,保留更有用的信息。

后面实验中用到的 DenseNet-BC 是指应用了瓶颈层和 0.5 倍压缩率的 DenseNet 。



2.4 小结

  • 从信息流层面看:通过特征拼接,DenseNet 的每一层都能直接访问之前所有层的输出,每一层都能直接利用之前层提取的特征,避免了特征在传递过程中的丢失,保证了特征的高效复用。
  • 从梯度流层面看:由于密集连接中的短路径,DenseNet 的每一层都直接与损失函数相连,使梯度能直接从损失函数高效传播到网络深层,深层网络每一部分都能接收到强梯度信号。


3 实验结果

实验使用了三个图像分类数据集,分别是:CIFAR、SVHN 和 ImageNet

1)CIFAR 和 SVHN

在这里插入图片描述

可以看出,拿来做对比的都是离 2017 年最近的模型。

2)ImageNet

在这里插入图片描述
相较于 ResNet,DenseNet 通常以更少的参数和较低的计算成本(FLOPS)实现相同或更好的准确率。注意这里 FLOPs 的含义,它是在验证时测量的,也就是说不涉及反向传播(训练)的计算成本。

说明写论文的时候要学会避重就轻。



4 优点与缺点

4.1 DenseNet 的优点

在这里插入图片描述

  • 左图说明:瓶颈层和压缩率能够在保证效果接近的情况下,减少 DenseNet 的参数量;
  • 右图说明:与 ResNet 相比,DenseNet 模型更加紧凑,实现相同效果所需的参数更少。

下图计算结果是 DenseNet 卷积层的平均绝对权重,不同的颜色表示第 l l l 层对之前的第 s s s 层的依赖性大小,即第 l l l 层分配给第 s s s 层的平均绝对权重:

在这里插入图片描述

三个子图中的第一行表示的是每个 DenseBlock 的输入。

上图表明:

  • ① 早期层的特征有被复用,用于提高网络表示能力。
  • ② 过渡层保留了特征,同时存在许多冗余信息,所以 DenseNet-BC 有效。
  • ③ 分类层采用的大多是较高层的信息,而较高层提取的是高级特征。


4.2 DenseNet 的缺点

1)正向传播的内存消耗

  • 对于含 L L L 层的网络,假设每层输出的特征图大小为 F F F,那么 DenseNet 对特征图的存储需求为 O ( F × L ) O(F×L) O(F×L),这是因为 DenseNet 需要使用前面所有层的特征图,而 ResNet 约为 O ( F ) O(F) O(F)
  • 缩小特征图的内存消耗其实是过渡层的主要作用,但论文主要强调的是其去除冗余层的作用。

过渡层的 1×1 卷积减少了通道(特征图)数,从而缩小了特征图的内存消耗。

2)训练时的计算成本

  • 论文计算的是 FLOPs 消耗,即验证推理时的计算消耗,而没有讨论训练时反向传播的计算消耗。然而 DenseNet 的特征复用特点意味着,反向传播时需要考虑其特征图被纳入计算的所有层,很吃运行内存。
  • 本文考虑的是较为简单的图像分类任务,比 ResNet 好的前提是实验环境中的计算资源(如内存)足够支持 DenseNet 的运行。

DenseNet 默认的 k=32,因此 DenseBlock 块中特征图数量的增长其实相当快,比如 24×32,即一个 DenseBlock 块中有 24 层。



相关文章:

组会 | DenseNet

目录 1 研究背景1.1 提出的动机1.2 同期的模型 2 网络模型2.1 模型架构2.2 模块与参数2.3 瓶颈层和压缩率2.4 小结 3 实验结果4 优点与缺点4.1 DenseNet 的优点4.2 DenseNet 的缺点 前言:本博客仅为组会总结,如有谬误,请不吝指出…...

深入解析-正则表达式

学习正则,我们到底要学什么? 正则表达式(RegEx)是一种强大的文本匹配工具,广泛应用于数据验证、文本搜索、替换和解析等领域。学习正则表达式,我们不仅要掌握其语法规则,还需要学会如何高效地利…...

12306分流抢票软件 bypass v1.16.43 绿色版(春节自动抢票工具)

软件介绍 12306Bypass分流抢票软件,易操作强大的12306抢票软件,全程自动抢票,云识别验证码打码,多线程秒单、稳定捡漏,支持抢候补票、抢到票自动付款,支持多天、多车次、多席别、多乘客、短信提醒等功能。…...

Arduino UNO 驱动1.8 TFT屏幕显示中文

背景 最近入手了一块1.8寸的tft屏幕&#xff0c;通过学习文档&#xff0c;已经掌握了接线&#xff0c;显示英文、数字、矩形区域、划线、画点等操作&#xff0c; 但是想显示中文的时候操作比较复杂。 问题 1、arduino uno 驱动这款屏幕目前使的是自带的<TFT.h> 库操作…...

vue路由模式面试题

vue路由模式 1.路由的模式有哪些?有什么区别? history和hash模式 区别: 1.表现的形态不同: 在地址栏url中:hash模式中带有**#**号,history没有 2.请求错误时表现不同: 在hash模式中,对于404地址请求时,不会进行请求 但是在history模式中,对于404请求时,仍然会进行请求…...

计算机的错误计算(二百零一)

摘要 用两个大模型计算 &#xff0c;结果保留 10位有效数字。实验表明&#xff0c;两个大模型的输出均只有1位正确数字&#xff1b;并它们几乎相同&#xff1a;仅最后1位数字不同。 例1. 计算 , 结果保留 10位有效数字。 下面是与一个数学解题器的对话。 以上为与一个数学解…...

WandB使用笔记

最近看代码&#xff0c;发现代码中有wandb有关的内容&#xff0c;搜索了一下发现是一个模型训练工具&#xff0c;然后学习了一下&#xff0c;这里记录一下使用过程&#xff0c;方便以后查阅。 WandB使用笔记 登录WandB 并 创建团队安装 WandB 并 登录模型训练过程跟踪模型版本管…...

TTL 传输中过期问题定位

问题&#xff1a; 工作环境中有一个acap的环境&#xff0c;ac的wan口ip是192.168.186.195/24&#xff0c;ac上lan上有vlan205&#xff0c;其ip子接口地址192.168.205.1/24&#xff0c;ac采用非nat模式&#xff0c;而是路由模式&#xff0c;在上级路由器上有192.168.205.0/24指向…...

spring mvc源码学习笔记之五

pom.xml 内容如下 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…...

Java 数据库连接 - Sqlite

Java 数据库连接 - Sqlite PS: 1. 连接依赖库&#xff1a;[sqlite-jdbc-xxx.jar](https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc)(根据连接的数据库版本选择) 2. 支持一次连接执行多次sql语句&#xff1b; 3. 仅本地连接&#xff1b;使用说明&#xff1a; publ…...

【Rust自学】10.2. 泛型

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 题外话&#xff1a;泛型的概念非常非常非常重要&#xff01;&#xff01;&#xff01;整个第10章全都是Rust的重难点&#xff01;&#xf…...

鸿蒙MPChart图表自定义(六)在图表中绘制游标

在鸿蒙开发中&#xff0c;MPChart 是一个非常强大的图表库&#xff0c;它可以帮助我们创建各种精美的图表。今天&#xff0c;我们将继续探索鸿蒙MPChart的自定义功能&#xff0c;重点介绍如何在图表中绘制游标。 OpenHarmony三方库中心仓 一、效果演示 以下是效果演示图&…...

PHP在做api开发中,RSA加密签名算法如何使用 ?

RSA 加密是什么 RSA&#xff08;Rivest-Shamir-Adleman&#xff09;是最早的公钥密码系统之一&#xff0c;广泛用于安全数据传输。3 位数学家 Rivest、Shamir 和 Adleman 的名字来命名的。 是非对称加密的一种 这种算法非常可靠&#xff0c;密钥越长&#xff0c;它就越难破解。…...

PHP+Redis的基本操作方法

一、Redis连接与认证 二、String操作 三、Hash操作 四、List操作 五、Set操作 六、Zset操作 一、Redis连接与认证 $redis new Redis(); //连接参数&#xff1a;ip、端口、连接超时时间&#xff0c;连接成功返回true&#xff0c;否则返回false $ret $redis->connec…...

非docker方式部署openwebui过程记录

之前一直用docker方式部署openwebui&#xff0c;结果这东西三天两头升级&#xff0c;我这一升级拉取docker镜像硬盘空间嗖嗖的占用&#xff0c;受不了&#xff0c;今天改成了直接部署&#xff0c;以下是部署过程记录。 一、停止及删除没用的docker镜像占用的硬盘空间 docker s…...

豆包ai 生成动态tree 增、删、改以及上移下移 html+jquery

[豆包ai 生成动态tree 增、删、改以及上移下移 htmljquery) 人工Ai 编程 推荐一Kimi https://kimi.moonshot.cn/ 推荐二 豆包https://www.doubao.com/ 实现效果图 html 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF…...

基于STM32环境温湿度监测系统设计(附项目代码zip)

一.介绍 本文详细介绍了一种基于STM32F103C8T6微控制器DS18B20温度传感器DHT11温湿度传感器的环境监测系统。该系统旨在实时监测周围环境的温度与湿度&#xff0c;通过OLED实时显示温湿度值&#xff0c;通过USART串口实时打印温湿度值&#xff0c;并在温湿度超过预设阈值时&am…...

Kafka配置公网或NLB访问(TCP代理)

这套配置适用于TCP代理和公网访问&#xff0c;kafka版本2.8&#xff0c;版本如果不同配置参数会有一些差异&#xff0c;原理一致 分几种场景&#xff0c;正常来说我们直接使用kafka IP地址访问就行&#xff0c;考虑到网络架构和环境安全&#xff0c;需要使用公网或代理访问kaf…...

30分钟学会css

CSS 基本语法 CSS&#xff08;Cascading Style Sheets&#xff09;是一种样式表语言&#xff0c;用于描述 HTML&#xff08;或 XML&#xff09;文档的呈现。它可以控制网页元素的颜色、字体、布局等外观样式&#xff0c;实现内容与表现的分离&#xff0c;让网页设计更加灵活和…...

若依修改超级管理员admin的密码

通过接口方式或者页面 /system/user/resetPwd 需改其他用户的密码 修改其他用户的加密的密码&#xff0c;然后通过数据库将admin更新为这个密码就修改好了...

《柴油遗产-无耻时代》V98375官方版

靠近你所在赛道上的另一名玩家进行攻击或防守&#xff0c;跳到另一条赛道上进行恢复&#xff0c;或闪到对手背后打他个措手不及。与队友合作&#xff0c;充分利用每个角色的独特玩法来控制战斗走向&#xff01; 《柴油遗产-无耻时代》官方版 https://pan.xunlei.com/s/VODW7xDX…...

加固服务器有什么用?

为什么越来越多的企业和个人都在加固他们的服务器&#xff1f;加固服务器不仅可以保护数据安全&#xff0c;还能提升整体系统的稳定性和可靠性。下面是聚名网的一些介绍。 加固服务器的首要目的就是提高安全性。随着网络攻击手段的不断演变&#xff0c;黑客和恶意软件的威胁也…...

Json字符串解析失败

通过第三方服务&#xff0c;拿到响应体的data对象&#xff08;拿到的时候对象是有值的&#xff09; 通过JSON.parseObject方法&#xff0c;拿到的对象&#xff0c;值为null 通过查看对应的json字符串&#xff0c;发现命名不一样... JSONField SeriealizedName注解是用来解析j…...

比较 FreeSWITCH 的 asr 事件和回调函数

用 lua 来描述&#xff0c;是这样的 第一种做法&#xff1a; session:setVariable("fire_asr_events", "true") session:execute("detect_speech", "start-input-timers") 识别到结果之后可以收到 DETECTED_SPEECH 事件 另外一个做法…...

Pytorch 三小时极限入门教程

一、引言 在当今的人工智能领域&#xff0c;深度学习占据了举足轻重的地位。而 Pytorch 作为一款广受欢迎的深度学习框架&#xff0c;以其简洁、灵活的特性&#xff0c;吸引了大量开发者投身其中。无论是科研人员探索前沿的神经网络架构&#xff0c;还是工程师将深度学习技术落…...

125个Docker的常用命令

基本命令命令描述示例docker run创建并启动一个容器docker run -it ubuntu bashdocker ps列出当前运行的容器docker psdocker ps -a列出所有容器&#xff0c;包括未运行的docker ps -adocker stop停止一个运行中的容器docker stop [CONTAINER_ID]docker start启动一个已停止的容…...

C# 设计模式(结构型模式):组合模式

C# 设计模式&#xff08;结构型模式&#xff09;&#xff1a;组合模式 在软件设计中&#xff0c;有时我们需要处理的是一组对象&#xff0c;而这些对象既可以是单独的元素&#xff0c;也可以是由多个子元素组成的复合体。这时&#xff0c;组合模式&#xff08;Composite Patte…...

【HarmonyOS】:DevEco Studio安装与应用工程创建指南

前言 本文旨在为初涉 HarmonyOS 开发的开发者提供一份详尽的入门指南&#xff0c;涵盖从安装最新版 DevEco Studio 到使用该 IDE 创建首个应用工程的具体步骤。通过遵循本指南&#xff0c;您将能够顺利搭建起自己的开发环境&#xff0c;并迈出构建HarmonyOS应用的第一步。 一、…...

【C/C++】手搓项目中常用小工具:日志、sqlit数据库、Split切割、UUID唯一标识

每日激励&#xff1a;“不设限和自我肯定的心态&#xff1a;I can do all things。 — Stephen Curry” 绪论​&#xff1a; 本章将写到一些手搓常用工具&#xff0c;方便在项目中的使用&#xff0c;并且在手搓的过程中一些函数如&#xff1a;日志 宏中的__VA_ARGS__接收可变参…...

【论文阅读】Anchor-based fast spectral ensemble clustering

论文地址&#xff1a;Anchor-based fast spectral ensemble clustering - ScienceDirect 代码地址&#xff1a; 摘要 集成聚类通过融合多个基础聚类方法&#xff0c;可以获得更好且更稳健的结果&#xff0c;因此受到广泛关注。尽管近年来已经出现了许多代表性的算法&#xff…...

asp.net core 发布到iis后,一直500.19,IIS设置没问题,安装了sdk,文件夹权限都有,还是报错

原因就是没有安装ASP.NET Core 9.0 Runtime (v9.0.0) - Windows Hosting Bundle&#xff0c;我是只安装了.net core的sdk&#xff0c;下面介绍下sdk和hosting bundle的关系 在 .NET Core 和 ASP.NET Core 的开发中&#xff0c;SDK&#xff08;Software Development Kit&#x…...

牛客月赛108

目录 A. 小S按按钮 C. 小T数星星 E. 小M种树 A. 小S按按钮 &#xff08;1&#xff09; 二分答案的右边界一定要开大。若 x 等于 0&#xff0c;最多 2 * y 次 &#xff08;2&#xff09;根据是要最小还是最多&#xff0c;调整 if ( check ( mid ) ) 里的是 l 还是 r #include&l…...

QML自定义进度条和单选按钮的样式

1.自定义进度条的样式 1.1代码展示 import QtQuick 2.9 import QtQuick.Window 2.2 import QtQuick.Controls 2.1Window {visible: truewidth: 640height: 480title: qsTr("Hello World")ProgressBar {id: myProgressvalue: 0.5padding: 2anchors.centerIn: parent…...

jetbrain 安装 copilot

问题一&#xff1a;Sign in failed. Reason: Request signInInitiate failed with message: Request to /github.com/login/device/code> timed out after 30000ms, request id: 11, error code: -32603 解决方案&#xff1a; 参考资料&#xff1a;https://github.com/orgs/…...

FPGA 4x4矩阵键盘 实现

1原理 FPGA(现场可编程门阵列)4x4矩阵键盘的实现原理主要基于行列扫描法,通过FPGA对键盘的扫描和识别,实现对键盘输入信号的采集和处理。以下是对FPGA 4x4矩阵键盘实现原理的详细解释: 一、矩阵键盘的基本原理 结构:4x4矩阵键盘由4行和4列组成,共16个按键。每个按键位…...

探索 JMeter While Controller:循环测试的奇妙世界

嘿&#xff0c;宝子们&#xff01;今天咱们就来聊聊 JMeter 里超级厉害的 While 控制器&#xff0c;它就像是一把神奇的钥匙&#xff0c;能帮我们打开循环测试的大门&#xff0c;模拟出各种各样复杂又有趣的场景哦&#xff01; 一、While 控制器初印象 想象一下&#xff0c;你…...

Facebook元宇宙项目中的智能合约应用:提升虚拟空间的自治能力

近年来&#xff0c;Facebook在元宇宙领域的探索引起了广泛关注。元宇宙是一个融合虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;和互联网的沉浸式数字空间。在这个过程中&#xff0c;智能合约技术被认为是提升虚拟空间自治能力的关键工具。通过自动…...

前后端规约

文章目录 引言I 【强制】前后端交互的 API请求内容响应体响应码II 【推荐】MVC响应体III【参考】IV 其他引言 服务器内部重定向必须使用 forward;外部重定向地址必须使用 URL 统一代理模块生成,否则会因线上采用 HTTPS 协议而导致浏览器提示“不安全”,并且还会带来 URL 维护…...

获取 Astro Bot AI 语音来增强您的游戏体验!

有很多用户尝试过Astro Bot&#xff0c;却被Astro Bot可爱的声音所吸引。您是否想知道如何使用 Astro Bot 语音来拨打恶作剧电话或用他的声音说话&#xff1f;如果您有&#xff0c;那么这篇文章适合您。我们将向您展示如何为 Astro Bot 提供逼真的 AI 声音并在在线对话中使用它…...

javaEE-多线程进阶-JUC的常见类

juc:指的是java.util.concurrent包&#xff0c;该包中加载了一些有关的多线程有关的类。 目录 一、Callable接口 FutureTask类 参考代码&#xff1a; 二、ReentrantLock 可重入锁 ReentrantLock和synchronized的区别&#xff1a; 1.ReentantLock还有一个方法&#xff1a…...

nginx配置 - 资源参数配置(性能优化)

nginx - 资源参数配置 (性能优化) 一、worker_rilimit_nofile配置的含义使用场景如何调整参数系统级文件描述符限制(补充)二、worker_connections三、两者之间的数值关系四、sendfile五、keepalive_timeout本文重点讨论: 最大文件描述符数量 worker_rilimit_nofile和最大连…...

TiDB 升级至高版本提示'mysql.tidb_runaway_watch' doesn't exist 问题处理

作者&#xff1a; asd80703406 原文来源&#xff1a; https://tidb.net/blog/90394c97 背景 近期发现很多人从低版本升级至TiDB v7 或者v8版本&#xff0c;均遇到了tidb-server启动失败&#xff0c;提示报错如下&#xff1a; ["get runaway watch record failed"…...

利用Deeplearning4j进行 图像识别

目录 图像识别简介 神经网络 感知器 前馈神经网络 自动编码器 受限玻尔兹曼机 深度卷积网络 理解图像内容以及图像含义方面&#xff0c;计算机遇到了很大困难。本章先介绍计算机理解图像教育方面 遇到的难题&#xff0c;接着重点讲解一个基于深度学习的解决方法。我们会…...

使用Python构建智能医疗诊断系统

医疗诊断系统在现代医疗领域中扮演着重要角色,尤其在辅助医生进行初步诊断、缩短诊断时间方面更是发挥了显著作用。借助Python强大的数据处理能力和机器学习工具,我们可以构建一个智能医疗诊断系统。本文将详细介绍实现过程,并结合代码示例帮助您理解。 引言 现代医学产生…...

NLP 技术的突破与未来:从词嵌入到 Transformer

在过去的十年中&#xff0c;自然语言处理&#xff08;NLP&#xff09;经历了深刻的技术变革。从早期的统计方法到深度学习的应用&#xff0c;再到如今Transformer架构的普及&#xff0c;NLP 的发展不仅提高了模型的性能&#xff0c;还扩展了其在不同领域中的应用边界。 1. 词嵌…...

【2024年-11月-9日-开源社区openEuler实践记录】OpenAMDC:开启智能边缘计算与系统管控的新征程

一、开篇&#xff1a;邂逅 OpenAMDC 大家好&#xff0c;我是 fzr123&#xff0c;在开源项目的浩瀚天地里持续探索&#xff0c;今天要带大家深入了解一项极具前瞻性与创新性的开源成果——OpenAMDC。在边缘计算蓬勃兴起、系统复杂度与日俱增的时代背景下&#xff0c;OpenAMDC 宛…...

ELK日志平台搭建 (最新版)

一、安装 JDK 1. 下载 JDK 21 RPM 包 wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.rpm2. 安装 JDK 21,使用 rpm 命令安装下载的 RPM 包&#xff1a; sudo rpm -ivh jdk-21_linux-x64_bin.rpm3. 配置环境变量 编辑 /etc/profile 文件以配置 JAVA_HO…...

蓝桥杯备赛:C++基础,顺序表和vector(STL)

目录 一.C基础 1.第一个C程序&#xff1a; 2.头文件&#xff1a; 3.cin和cout初识&#xff1a; 4.命名空间&#xff1a; 二.顺序表和vector&#xff08;STL&#xff09; 1.顺序表的基本操作&#xff1a; 2.封装静态顺序表&#xff1a; 3.动态顺序表--vector&#xff1a;…...

MySQL数据库——常见慢查询优化方式

本文详细介绍MySQL的慢查询相关概念&#xff0c;分析步骤及其优化方案等。 文章目录 什么是慢查询日志&#xff1f;慢查询日志的相关参数如何启用慢查询日志&#xff1f;方式一&#xff1a;修改配置文件方式二&#xff1a;通过命令动态启用 分析慢查询日志方式一&#xff1a;直…...

【NX入门篇】

NX入门篇 一、UG NX 由来二、软件如何启动&#xff08;UG NX 12.0&#xff09;三、使用步骤四、常用命令 一、UG NX 由来 UG NX由来&#xff1a; 1969 年&#xff1a;UG 的开发始于美国麦道航空公司&#xff0c;基于 C 语言开发实现&#xff1b;1976 年&#xff1a;UG问世&am…...