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

VMamba: Visual State Space Model论文笔记

文章目录

  • VMamba: Visual State Space Model
    • 摘要
    • 引言
    • 相关工作
    • Preliminaries
    • 方法
      • 网络结构
      • 2D-Selective-Scan for Vision Data(SS2D)

VMamba: Visual State Space Model

论文地址: https://arxiv.org/abs/2401.10166
代码地址: https://github.com/MzeroMiko/VMamba

摘要

  • 卷积神经网络(CNN)和视觉Transformer(ViT)是视觉表示学习的两种最流行的基础模型
  • CNN表现出卓越的可扩展性和线性复杂度。
  • ViT在图像分辨率方面超过了CNN, 但是复杂性确实二次方。Vit通过结合全局感受野和动态权重实现了卓越的视觉建模性能。
  • 作者在继承上述组件的情况下引入了状态空间模型,提出了视觉状态空间模型(VMamba)。该模型在不牺牲全局感受野和动态权重的情况下实现了线性复杂度。
  • 通过引入交叉扫描模块(CSM)解决方向敏感问题。
  • 实验证明,VMamba在各种视觉任务表现良好,并且随着图像分辨率的提高而表现出更明显的优势。

引言

  • 视觉表示学习是计算机视觉领域最基本的研究课题之一。深度基础模型主要分为卷积神经网络(CNN)和Vision Transformer(ViTs)两个主要类别。

  • 然而,注意力机制在图像大小方面需要二次方的 复杂度,这在处理下游密集预测任务时计算开销昂贵。为了解决这个问题,人们投入大量的经历通过限制计算窗口的大小或步幅来提高注意力的效率。但是这种是以限制感受野的规模为代价的。因此,作者设计了一种具有线性复杂度的心得视觉基础模型,同时仍然保留与全局感受野和动态权重相关的优势。

  • 引入了视觉状态空间模型(VMamba), 用于高效的视觉表示学习。它通过继承自选择性扫描性状态序列模型(S6)。但是因为无法估计和未知扫描补丁的关系,直接使用这种策略会导致接受域受限。作者称这种问题为"方向敏感"问题,并引入交叉扫描模块(CSM)来解决。CSM采用四向扫描策略,即从整个特征的四个角开始扫描映射到相反的为止。如下图所示。该策略保持特征图中的每个元素集成自不同方向的所有其他位置的信息,从而在不增加线性计算复杂度的情况下呈现全局感受野。
    0

  • VMamba的Tiny、Small、Base分别包含22M、44M、75M参数量。能够在FLOPs稳步增加的情况下获得与ViT相当的性能。

  • 贡献:

    • 提出了VMamba, 一种具有全局感受野和动态权重的视觉状态空间模型,用于视觉表示学习。
    • 引入交叉扫描模块(CMS)是为了弥补一维阵列扫描和二维平面扫描之间的差距,促进S6在不影响接受范围的情况下扩展到视觉数据
    • 证明VMamba在图像分类、目标检测和语义分割等各种视觉任务具有强大的潜力。

相关工作

具体内容略,主要为卷积神经网络(CNN)、Vision Transformer(ViTs)和状态空间模型(SSMs), 状态空间模型详解可参考Mamba

Preliminaries

状态空间模型与相关工作一样可参考Mamba
连续时间的SSM可以表示为线性常微分方程(ODEs, linear ordinary differential equations):
h ′ ( t ) = A h ( t ) + B μ ( t ) , y ( t ) = C h ( t ) + D μ ( t ) , \begin{aligned} h'(t)&=\mathbf{A}h(t)+\mathbf{B}\mu(t),\\ y(t)&=\mathbf{C}h(t)+D\mu(t), \end{aligned} h(t)y(t)=Ah(t)+Bμ(t),=Ch(t)+Dμ(t),
其中, A ∈ R N × N , B ∈ R N × 1 , C ∈ R 1 \mathbf{A}\in\mathbb{R}^{N\times N}, \mathbf{B}\in\mathbb{R}^{N\times1}, \mathbf{C}\in\mathbb{R}^1 ARN×N,BRN×1,CR1是权重参数

SSM的离散化: 状态空间模型(SSMs)作为连续时间模型,需要进行离散化才能更好的集成到深度学习算法中。可以参照Mamba中S4的部分。

选择扫描机制: 为了解决LTI SSMs(SSMs原始公式)获取上下文信息的局限性,Gu等人提出了一种新的SSMs参数化方法, 该方法集成了一个输入依赖的选择机制(S6)。然而,在选择性SSMs的情况下,卷积不适应动态权重导致时变加权参数对隐藏状态难以进行有效计算。而离散化可以使用线性复杂度的关联扫描算法有效地计算出 y b y_b yb

方法

网络结构

作者在三个尺度上开发了VMamba: VMamba-Tiny(VMamba-T)、VMamba-Small(VMamba-S)和VMamba-Base(VMamba-B)。VMamba-T架构的概述如下图中的a所示。首先将输入图像 I ∈ R H × W × 3 I\in\mathbb{R}^{H\times W\times 3} IRH×W×3分割成多个patch, 得到一个维度为 H / 4 × W / 4 H/4\times W/4 H/4×W/4的2d的特征图空间。随后,使用多个网络阶段创建分辨率为 H / 8 × W / 8 , H / 16 × W / 16 , H / 32 × W / 32 H/8\times W/8, H/16\times W/16, H/32\times W/32 H/8×W/8,H/16×W/16,H/32×W/32的分层表示。每个阶段都包括一个下采样层(第一阶段除外),然后是一个堆叠的视觉状态空间(VSS)块。
1

VSS块是Mamba块(上图的b)的视觉对应部分。新提出的2d选择扫描模块(SS2D)替换VSS块的初始架构(上图的c)作为Mamba的核心的同时实现全局接受域,动态权重(即选择性)和线性复杂度。

为了进一步提高计算效率,消除了整个乘法分支(上图c中的红框部分),因为门控机制的影响是通过SS2D的选择性来说实现的。因此,生成的VSS块(上图的d)由一个包含两个残差模块的单一网络分支组成,模仿了一个普通transformer的架构。

2D-Selective-Scan for Vision Data(SS2D)

S6中的扫描操作的顺序性质难以用于视觉数据。因为视觉数据本质上是非顺序的,包含空间信息(如局部纹理和全局结构)。为了解决该问题, S4ND用卷积运算重新指定了SSM, 通过外积将内核从一维扩展到二维,然而这种修改使得权重无法独立于输入,从而限制了捕获上下文信息的能力。因此,作者基于选择性扫描方法提出了了2D选择性扫描模块(SS2D),在不影响其优势的情况下使S6适应视觉数据。
2

如上图所示,SS2D中的数据前向包含三个步骤: 交叉扫描、S6的选择性扫描和交叉合并。给定输入数据,SS2D首先沿着输入patch沿着四个不同的遍历路径展开成序列(即交叉扫描),使用单独的S6块并行的处理每个patch序列,然后对合成序列进行重构和合并, 以形成输出映射(即交叉合并)。通过采用互补的以为遍历路径,SS2D使图像中的每个像素能够有效地整合其他所有像素的信息,从而促进在二维空间中建立全局接受域的过程。

相关文章:

VMamba: Visual State Space Model论文笔记

文章目录 VMamba: Visual State Space Model摘要引言相关工作Preliminaries方法网络结构2D-Selective-Scan for Vision Data(SS2D) VMamba: Visual State Space Model 论文地址: https://arxiv.org/abs/2401.10166 代码地址: https://github.com/MzeroMiko/VMamba 摘要 卷积神…...

探索哈希函数:数据完整性的守护者

引言 银行在处理数以百万计的交易时,如何确保每一笔交易都没有出错?快递公司如何跟踪成千上万的包裹,确保每个包裹在运输过程中没有丢失或被替换?医院和诊所为庞大的患者提供有效的医疗保健服务,如何确保每个患者的医疗…...

解析Kotlin中的Unit【笔记摘要】

1. Kotlin的Unit 和 Java的void 的区别 // Java public void sayHello() {System.out.println("Hello!") }// Kotlin fun sayHello(): Unit {println("Hello!") }Unit 和 Java 的 void 真正的区别在于,void 是真的表示什么都不返回&#xff0c…...

仿论坛项目--初识Spring Boot

1. 技术准备 技术架构 • Spring Boot • Spring、Spring MVC、MyBatis • Redis、Kafka、Elasticsearch • Spring Security、Spring Actuator 开发环境 • 构建工具:Apache Maven • 集成开发工具:IntelliJ IDEA • 数据库:MySQL、Redi…...

Spring boot 更改启动LOGO

在resources目录下创建banner.txt文件,然后编辑对应的图案即可 注释工具 Spring Boot Version: ${spring-boot.version},-.___,---.__ /|\ __,---,___,- \ -.____,- | -.____,- // -., | ~\ /~ | …...

python变成几个小程序

专家系统 需要建立‘capital_data.txt’ 空文件 from tkinter import Tk, simpledialog, messageboxdef read_from_file():with open(capital_data.txt) as file:for line in file:line line.rstrip(\n)country, city line.split(/)the_world[country] citydef write_to_fi…...

nginx配置stream代理

项目中遇到某些服务在内网,需要外网访问的情况,需要配置代理访问。可用nginx搭建代理服务。 TCP代理 通过nginx的stream模块可以直接代理TCP服务,步骤如下: 在/etc/nginx/下新建proxy文件夹,用于存放代理配置。此处…...

【瑞吉外卖 | day01】项目介绍+后台登录退出功能

文章目录 瑞吉外卖 — day011. 所需知识2. 软件开发整体介绍2.1 软件开发流程2.2 角色分工2.3 软件环境 3. 瑞吉外卖项目介绍3.1 项目介绍3.2 产品原型展示3.3 技术选型3.4 功能架构3.5 角色 4. 开发环境搭建4.1 数据库环境搭建4.2 Maven项目构建 5. 后台系统登录功能5.1 创建需…...

关于批量采集1688商品主图及链接的方式:软件采集/1688官方API接口数据采集

关于批量采集,我们通常用到的是软件 采集,或者通过1688官方API数据采集的形式:用户输入一组1688商品ID,一行一个,流程会自动逐个打开对应的1688商品详情页,采集主图的所有链接。 结果保存为表格的一行&…...

Shell 获取Hive表的location 信息

用shell 获取建表语句: hive -e "show create table ods_job.ods_job_tb"得到结果: CREATE TABLE ods_job.ods_job_tb(id bigint COMMENT id, auto int COMMENT job开启/关闭:0-关闭;1-开启, ....timeout_kill string…...

从零搭建教育管理系统:Java + Vue.js 教学-02

第三步:创建实体类和 Mapper 接口 现在我们已经设计好了数据库表,接下来使用 MyBatis-Plus 将这些表映射到 Java 对象,以便在代码中轻松地进行操作。 1. 创建实体类 在 src/main/java/<your_package>/entity 目录下 (如果没有该目录,请手动创建),创建与数据库表对应…...

VSCode + GDB + J-Link 单片机程序调试实践

VSCode GDB J-Link 单片机程序调试实践 本文介绍如何创建VSCode的调试配置&#xff0c;如何控制调试过程&#xff0c;如何查看修改各种变量。 安装调试插件 在 VSCode 扩展窗口搜索安装 Cortex-Debug插件 创建调试配置 在 Run and Debug 窗口点击 create a launch.json …...

grpc学习golang版( 五、多proto文件示例 )

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 第五章 多proto文件示例 第六章 服务器流式传输 第七章 客户端流式传输 第八章 双向流示例 文章目录 一、前言二、定义proto文件2.1 公共proto文件2.2 语音唤醒proto文…...

LeetCode 106 从中序与后序遍历序列构造二叉树

根据中序遍历和后序遍历的性质&#xff0c;还原二叉树&#xff0c;详细见注释 TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {//空&#xff0c;直接返回nullif(inorder.size() 0) return nullptr;//一个&#xff0c;返回一个nod…...

Vue Router的深度解析

引言 在现代Web应用开发中&#xff0c;客户端路由已成为实现流畅用户体验的关键技术。与传统的服务器端路由不同&#xff0c;客户端路由通过JavaScript在浏览器中控制页面内容的更新&#xff0c;避免了页面的全量刷新。Vue Router作为Vue.js官方的路由解决方案&#xff0c;以其…...

YOLO-V2

一、V2版本细节升级 1、YOLO-V2&#xff1a; 更快&#xff01;更强 1.1 做的改进内容 1. YOLO-V2-Batch Normalization V2版本舍弃Dropout&#xff0c;卷积后每一层全部加入Batch Normalization网络的每一层的输入都做了归一化&#xff0c;收敛相对更容易经过Batch Norma…...

pmp考试的通过标准是什么?

PMP考试的是否通过并不是依据类似其他考试的数值成绩&#xff0c;是通过考生收到邮件通知后去主动查询具体的页面得知的。查询页除了电子证书的下载方式&#xff0c;还有成绩报告单的选项以及成绩饼状图&#xff0c;具体如下&#xff1a; 页面中显示“PASS”表示考试通过。 显…...

不懂PyQt5垂直布局?只需3分钟即可学会

PyQt5中实现垂直布局&#xff0c;主要使用QVBoxLayout类。该布局管理器将子控件垂直排列&#xff0c;并可以根据需要自动调整大小。使用QVBoxLayout可以方便地构建从上到下排列的界面元素。 import sys from PyQt5.QtWidgets import QApplication, QVBoxLayout, QWidget, QPus…...

从零开始实现大语言模型(二):文本数据处理

1. 前言 神经网络不能直接处理自然语言文本&#xff0c;文本数据处理的核心是做tokenization&#xff0c;将自然语言文本分割成一系列tokens。 本文介绍tokenization的基本原理&#xff0c;OpenAI的GPT系列大语言模型使用的tokenization方法——字节对编码(BPE, byte pair en…...

生物分子生物学实验过程的自动化与智能监控系统设计

开题报告&#xff1a;生物分子生物学实验过程的自动化与智能监控系统设计 一、引言 随着生物科学技术的飞速发展&#xff0c;生物分子生物学实验在科研、医疗、农业等领域的应用日益广泛。然而&#xff0c;传统的生物分子生物学实验过程大多依赖于人工操作&#xff0c;存在操…...

linux的shell脚本编程详解

Shell 脚本是一种用于自动化任务的脚本语言&#xff0c;在 Linux 和其他类 Unix 操作系统中非常流行。它通常用于任务自动化、系统管理和批处理。编写 Shell 脚本并使其自动化编译过程&#xff08;例如使用 gcc 编译 C/C 程序&#xff09;是一种常见的任务。 以下是一个详细的…...

Redis 7.x 系列【11】数据类型之位图(Bitmap)

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2. 基本命令2.1 SETBIT2.2 GETBIT2.3 BITCOUNT2.4 BITPOS2.5 BITFIELD2.6 BITF…...

如何评定旅游卡的品质与服务?

评定旅游卡的品质与服务&#xff0c;可以从以下几个关键方面进行综合考量&#xff1a; 公司实力与资质&#xff1a;选择有实力、资质齐全的公司发行的旅游卡。查看公司背景&#xff0c;确认其是否长期稳定运营&#xff0c;是否具有旅游行业的专业资质&#xff0c;如旅行社许可证…...

适合学生暑假适用的护眼大路灯有哪些?五款好用护眼灯分享!

在护眼领域&#xff0c;护眼大路灯已经成为越来越多人的选择。这种具备实力的工具可以有效地缓解用眼疲劳、改善光线环境&#xff0c;是学生党和办公族的必备神器。然而&#xff0c;市面上的护眼大路灯品牌众多&#xff0c;如何选择一款性价比高、品质优良的产品呢&#xff1f;…...

linux服务器 部署jenkins

在 Linux 服务器上部署 Jenkins 通常包括以下几个步骤&#xff1a; 更新系统软件包&#xff1a; sudo apt update sudo apt upgrade 安装 Java&#xff1a; Jenkins 需要 Java 运行时环境。推荐使用 OpenJDK 11。 sudo apt install openjdk-11-jdk 添加 Jenkins 软件源并导入…...

电商控价:系统监测的必要性与优势

在品牌的发展进程中&#xff0c;会遭遇各种各样的渠道问题&#xff0c;控价乃是其中颇为关键的一环。品牌进行控价的目的无疑是为了妥善治理低价链接&#xff0c;低价链接的发现途径可以是人工&#xff0c;也可以是系统。力维网络在为上百个品牌提供服务的过程中察觉到&#xf…...

港股下半年能恢复上涨趋势吗?

今日港股两大指数涨跌不一&#xff0c;早盘盘初恒指冲高&#xff0c;涨幅一度扩大至1%。截至收盘&#xff0c;香港恒生指数涨0.57%。板块方面&#xff0c;电力、航空、石油、内险股、燃料电池、环保等板块涨幅居前&#xff1b;互动媒体与服务、生物科技、汽车零部件、新经济概念…...

软件测试项目实战:银行贷款业务测试介绍-2

1、利息计算 正常利息贷款本金*借款天数*贷款年利率/360 罚息逾期本金*逾期天数*逾期年利率/360 复利逾期利息*逾期天数*逾期年利率/360 2、贷款五级分类 正常贷款&#xff1a;正常及逾期60天以内 关注贷款&#xff1a;逾期60天及以上&#xff0c;不足90天 次级贷款&#xff1…...

如何将Hive表的分区字段插入PG表对应的时间戳字段?

文章目录 1、背景描述2、场景分析 1、背景描述 数据仓库的建设通常是为业务和决策服务的。在数仓开发的应用层阶段&#xff0c;BI可以直接从主题层/业务层取数&#xff0c;而前端需要根据具体的作图需求通过后端查询数据库 作图的指标需要根据主题层/业务层做查询计算&#xf…...

Spring Boot与MyBatis的集成应用

Spring Boot与MyBatis的集成应用 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来聊聊Spring Boot与MyBatis的集成应用。MyBatis是一款优秀的持久层框…...

在昇腾服务器上使用llama-factory对baichuan2-13b模型进行lora微调

什么是lora微调 LoRA 提出在预训练模型的参数矩阵上添加低秩分解矩阵来近似每层的参数更新&#xff0c;从而减少适配下游任务所需要训练的参数。 环境准备 这次使用到的微调框架是llama-factory。这个框架集成了对多种模型进行各种训练的代码&#xff0c;少量修改就可使用。 …...

Kafka 管理TCP连接

生产者管理TCP连接 Kafka生产者程序概览 Kafka的Java生产者API主要的对象就是KafkaProducer。通常我们开发一个生产者的步骤有4步&#xff1a; 第1步&#xff1a;构造生产者对象所需的参数对象。 第2步&#xff1a;利用第1步的参数对象&#xff0c;创建KafkaProducer对象实例…...

electron教程(一)创建项目

一、方式① 根据官网描述将electron/electron-quick-start项目克隆下来并启动 electron/electron-quick-start地址&#xff1a; GitHub - electron/electron-quick-start: Clone to try a simple Electron app git clone https://github.com/electron/electron-quick-start…...

如何在Oracle、MySQL、PostgreSQL上终止会话或取消SQL查询

How to Kill session or Cancel SQL query on Oracle , MySQL, PostgreSQL 数据库维护过程中难免会遇到一些不正常的SQL或会话进程正在占用系统大量资源&#xff0c;临时需要终止查询或kill会话&#xff0c;在Oracle, MySQL, Postgresql数据库中不同的操作。 Oracle KILL会话…...

3、FTL基本工作过程

上文描述了FTL的四大功能&#xff0c;这里简述一下每个功能的含义。 地址转换简述 FTL要维护一个地址转换表&#xff0c;这个转换表是主机读/写硬盘的逻辑地址到硬盘实际物理地址的转换关系。 假如SSD的容量是128G&#xff0c;SSD逻辑块的大小是4KB&#xff0c;那SSD的逻辑块…...

微信小程序的跳转页面

在微信小程序中&#xff0c;要实现从当前页面返回到指定页面的功能&#xff0c;通常不直接使用“返回上一页”的逻辑&#xff0c;而是利用小程序的页面栈管理和navigateBack或者重新定向到目标页面的API。下面我将介绍两种主要的方法&#xff1a; 方法一&#xff1a;使用 navi…...

深入理解 Java 中的线程间通信:`wait()`, `notify()`, `notifyAll()`

引言 在多线程编程中&#xff0c;线程间通信是一个重要且复杂的主题。Java 提供了一套基本的机制来实现线程间通信&#xff0c;即使用 wait(), notify(), 和 notifyAll() 方法。这些方法由 Object 类提供&#xff0c;用于协调多个线程对共享资源的访问。本文将详细介绍这些方法…...

23种设计模式【创建型模式】详细介绍之【单例模式】

23种设计模式【创建型模式】详细介绍之【单例模式】 设计模式的分类和应用场景总结单例模式1. 概述2. 实现方式2.1 饿汉式单例模式2.2 懒汉式单例模式&#xff08;非线程安全&#xff09;2.3 懒汉式单例模式&#xff08;线程安全&#xff09; 3. 单例模式的优缺点3.1 优点3.2 缺…...

某汽车配件制造公司任职资格体系项目成功案例纪实

——基于岗位特点和核心能力要求&#xff0c;分层分级能力测评&#xff0c;实现个性化人才培养 【客户行业】生产制造&#xff1b;汽车配件制造 【问题类型】任职资格体系建立&#xff1b;人才管理系统 【客户背景】 某汽车配件制造公司是一家专注于汽车配件研发、生产和销…...

【Linux】生物信息学常用基本命令

wget网址用于直接从网上下载某个文件到服务器&#xff0c;当然也可以直接从网上先把东西下到本地然后用filezilla这个软件来传输到服务器上。 当遇到不会的命令时候&#xff0c;可以使用man “不会的命令”来查看这个命令的详细信息。比如我想要看看ls这个命令的详细用法&…...

React Native V0.74 — 稳定版已发布

嗨,React Native开发者们, React Native 世界中令人兴奋的消息是,V0.74刚刚在几天前发布,有超过 1600 次提交。亮点如下: Yoga 3.0New Architecture: Bridgeless by DefaultNew Architecture: Batched onLayout UpdatesYarn 3 for New Projects让我们深入了解每一个新亮点…...

Python面试宝典第4题:环形链表

题目 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。如果存在环 &#xff0c;则返回 true 。 否则&#xff0c;返回 false 。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xf…...

Kubernetes (K8s) 底层原理

Kubernetes (K8s) 的底层原理涉及多个关键组件和概念&#xff0c;确保容器化应用程序的自动化部署、扩展和管理。以下是 Kubernetes 的底层原理及其关键组件的详细描述。 核心组件 Etcd 功能&#xff1a;分布式键值存储&#xff0c;用于存储集群的所有数据&#xff0c;包括配置…...

解析Kotlin中的委托(包括类委托,属性委托)【笔记摘要】

1.委托模式 委托模式&#xff1a;操作对象不会去处理某段逻辑&#xff0c;而是会把工作委托给另外一个辅助对象去处理。 例如我们要设计一个自定义类的来实现Set&#xff0c;可以将该实现委托给另一个对象&#xff1a; class MySet<T> (val helperSet: HashSet<T>…...

vue3+ts+uniapp+vite+pinia项目配置

开发环境&#xff1a; node >18&#xff0c;npm >8.10.2&#xff0c;vue < 3.2.31 安装项目 npx degit dcloudio/uni-preset-vue#vite-ts vue3-uniapp 1、引入样式规范 npm add -D eslint eslint-config-airbnb-base eslint-config-prettier eslint-import-resolv…...

大数据开发语言 Scala(四):面向对象编程

目录 1. 概述 2. 面向对象编程的基本概念 2.1 类和对象 2.2 继承和多态 2.3 封装和访问控制 3. 面向对象编程在大数据开发中的应用 3.1 Spark中的面向对象编程 3.2 面向对象编程在数据清洗和预处理中 3.3 面向对象编程在机器学习中的应用 4. 面向对象编程的高级特性 …...

C++ //练习 14.31 我们的StrBlobPtr类没有定义拷贝构造函数、赋值运算符及析构函数,为什么?

C Primer&#xff08;第5版&#xff09; 练习 14.31 练习 14.31 我们的StrBlobPtr类没有定义拷贝构造函数、赋值运算符及析构函数&#xff0c;为什么&#xff1f; 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 解释&#xff1a; 因为…...

通配符和正则表达式之间的关系

通配符和正则表达式&#xff08;正则&#xff09;都是用于匹配字符串的工具&#xff0c;但它们的复杂性和用途有所不同。下面是它们之间的主要关系和区别&#xff1a; 通配符 通配符主要用于简单的模式匹配&#xff0c;常见于文件系统操作中&#xff0c;例如在命令行中查找文…...

GY-30光照传感器软件I2C方式驱动代码,基于STM32Cube

GY-30光照传感器的具体资料可以去淘宝搜索然后问卖家要&#xff0c;网上也有&#xff0c;所以这里我就不多嘴了。 VCC连接3到5伏电压&#xff0c;根据文件开头的描述在STM32CubeMX中配置好外设。 STM32Cube开发方式就是4个字“简单直接”&#xff0c;直接上代码。 gy30.h #…...

双相元编程:一种新语言设计方法

本文讨论了编程语言的一种趋势&#xff0c;即允许相同的语法表达 在两个不同阶段或环境&#xff08;上下文&#xff09;中执行的计算同时保持跨阶段&#xff08;上下文&#xff09;的一致行为。这些阶段通常在时间上&#xff08;运行时间&#xff09;或空间上&#xff08;运行…...

VBA提取word表格内容到excel

这是一段提取word表格中部分内容的vb代码。 Sub 提取word表格() mypath ThisWorkbook.Path & "\"myname Dir(mypath & "*.doc*")n 4 index of rowsRange("A1:F1") Array("课程代码", "课程名称", "专业&…...

6域名系统DNS

《计算机网络》第7版&#xff0c;谢希仁 每次记不清楚的知识点&#xff0c;通过上网查找&#xff0c;总是只能看到很零碎的答案。最后还是最喜欢看这个版本的书&#xff0c;一看就回忆起来了&#xff0c;逻辑严谨&#xff0c;循循善诱&#xff0c;知识讲解的全面又清晰&#xf…...

第一篇——导论:数学通识课的体系和学习攻略

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 数学的认知大厦&#xff1b;之前听的时候就觉得很重要&#xff0c;本次又…...

TRILL简介

介绍TRILL的定义及目的。 定义 TRILL(Transparent Interconnection of Lots of Links)是一种把三层链路状态路由技术应用于二层网络的协议。TRILL通过扩展IS-IS路由协议实现二层路由&#xff0c;可以很好地满足数据中心大二层组网需求&#xff0c;为数据中心业务提供解决方案…...

满足GMSL静电防护要求的方案

什么是GMSL&#xff1f;它是做什么用的&#xff1f;它有什么优点&#xff1f;设计GMSL防静电有啥难度&#xff1f; 带着这些疑问我们先了解下什么是GMSL。 一&#xff0e;简述 GMSL GMSL&#xff08;Gigabit Multimedia Serial Link&#xff09;即千兆多媒体串行链路&#xf…...

解答 | http和https的区别,谁更好用

TTP&#xff08;超文本传输协议&#xff09;和HTTPS&#xff08;安全超文本传输协议&#xff09;的主要区别在于安全性和数据传输的方式。 一、区别 1、协议安全性&#xff1a; HTTP&#xff1a;使用明文形式传输数据&#xff0c;不提供数据加密功能&#xff0c;数据在传输过…...

从动态代理角度简单理解Spring AOP

1. 概述 动态代理 是指在运行时&#xff0c;动态地创建目标类的代理对象&#xff0c;并对其中特定的方法进行拦截或增强的技术。这种技术主要用于在不修改目标类代码的情况下&#xff0c;增强目标类的功能。 在Java中&#xff0c;动态代理主要基于Java的反射机制和接口来实现…...

华纳云:MAC电脑怎么远程连接Windows服务器桌面?

在Mac电脑上远程连接Windows服务器桌面可以通过多种方式实现&#xff0c;最常用的方法是使用微软提供的免费应用程序 "Microsoft Remote Desktop"。以下是详细的步骤来设置和使用该工具&#xff1a; 步骤一&#xff1a;下载和安装 Microsoft Remote Desktop 打开App …...

网络模型—BIO、NIO、IO多路复用、信号驱动IO、异步IO

一、用户空间和内核空间 以Linux系统为例&#xff0c;ubuntu和CentOS是Linux的两种比较常见的发行版&#xff0c;任何Linux发行版&#xff0c;其系统内核都是Linux。我们在发行版上操作应用&#xff0c;如Redis、Mysql等其实是无法直接执行访问计算机硬件(如cpu&#xff0c;内存…...

C++STL容器系列(三)list的详细用法和底层实现

目录 一&#xff1a;介绍二&#xff1a;list的创建和方法创建list方法 三&#xff1a;list的具体用法3.1 push_back、pop_back、push_front、pop_front3.2 insert() 和 erase()3.3 splice 函数 四&#xff1a;list容器底层实现4.1 list 容器节点结构5.2 list容器迭代器的底层实…...

【Game】Powerful

文章目录 【小伙伴】隐藏小伙伴 【百趣集】【人物属性点】【宠物打造】【奇遇】【钓鱼】 【小伙伴】 刷新位置 小伙伴等级详情 克制关系 隐藏小伙伴 1、仙缘小伙伴&#xff08;6种&#xff09; 遇到仙缘驭宠师然后进入战斗抓取 107、七彩仙凤 108、小青兔 109、小布 110、黑腹蛛…...

凤香的“蜜”密

执笔 | 文 清 编辑 | 古利特 “遇水则漏&#xff0c;遇酒生香”。酒海&#xff0c;一种大型盛酒容器&#xff0c;因盛酒量以“吨”计算&#xff0c;故称“海”&#xff0c;传于唐宋&#xff0c;兴盛于明清&#xff0c;距今有1400多年的历史。文人墨客笔下&#xff0c;也多有…...