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

DeepSeek-VL2论文解读:用于高级多模态理解的专家混合视觉语言模型

github:https://github.com/deepseek-ai/DeepSeek-VL2

paper: https://github.com/deepseek-ai/DeepSeek-VL2/blob/main/DeepSeek_VL2_paper.pdf

大型视觉语言模型(VLMs)已经成为人工智能领域的变革性力量,将大型语言模型(LLMs)的卓越能力扩展到能够无缝处理视觉和文本信息。这一进步极大地拓展了人工智能系统在需要多模态理解的复杂现实应用中的潜力。

在这份技术报告中,我们介绍了DeepSeek-VL2,这是一系列新的开源视觉语言模型,利用专家混合(MoE)架构,在性能和效率上相较其前身DeepSeek-VL取得了显著提升。我们的进步主要集中在三个关键方面:(1)动态的高分辨率视觉编码策略,增强了视觉理解能力;(2)优化的语言模型架构,显著提高了训练和推理效率;(3)精细化的视觉语言数据构建流程,不仅提升了整体性能,还扩展了模型在精确视觉定位等新领域的能力。

在视觉组件方面,我们引入了一种动态平铺视觉编码策略,能够高效处理不同纵横比的高分辨率图像。这种方法改进了DeepSeek-VL的混合视觉编码器,该编码器从固定分辨率(384 × 384和1024 × 1024)的图像中提取特征。我们的方法避免了旧的固定尺寸编码器的限制,尤其在需要超高分辨率的任务中表现出色,如视觉定位、文档/表格/图表分析和详细特征提取,同时保持可管理的视觉标记数量。我们的系统借鉴了成熟的切片平铺方法,动态地将高分辨率输入分割为局部平铺,通过共享的视觉变换器处理每个平铺,并在语言模型中无缝整合提取的特征。该设计保留了具有局部注意力的视觉变换器的优势,实现了丰富的特征提取,而没有随着图像分辨率增加而带来的平方计算扩展。

在语言组件方面,我们利用了DeepSeek语言模型,采用多头潜在注意力(MLA)机制。MLA通过将键值(KV)缓存压缩为潜在向量,显著降低了计算成本,从而实现更快的推理和更高的吞吐能力。我们通过DeepSeekMoE框架进一步提高了效率,该框架采用稀疏计算技术。我们的模型系列采用了三种MoE变体,分别为3B、16B和27B。这些LLMs分别有0.57B、2.4B和4.1B的激活参数。

我们还在质量、数量和多样性方面极大地提升了我们的视觉语言训练数据。这一综合数据集使得在广泛任务中的泛化能力和性能得到改善,包括视觉问答(VQA)、光学字符识别(OCR)、文档/表格/图表理解、视觉推理和通用聊天机器人应用。改进的训练数据还赋予了新能力,如视觉定位和图形用户界面(GUI)感知。

总之,DeepSeek-VL2在大规模专家混合视觉语言建模方面实现了重大飞跃。通过新的视觉处理策略和优化的语言模型,我们开发了一系列在性能与效率之间取得平衡的模型。通过开源预训练模型,我们旨在加速该领域的进展,并促进协作研究的发展。

模型架构

DeepSeek-VL2由三个核心模块组成:(1)视觉编码器,(2)视觉-语言适配器,以及(3)专家混合语言模型。基于其前身的仅解码LLaVA风格架构[54],DeepSeek-VL2引入了两个主要进步:动态平铺策略和具有多头潜在注意力[53]的DeepSeekMOE[20, 86]语言模型。这些创新使得处理高分辨率视觉输入和文本数据更加高效。

动态平铺策略

原始的DeepSeek-VL采用了混合视觉编码器,将SigLIP[106]用于384 × 384分辨率的粗粒度特征提取,SAM-B[35]用于1024 × 1024分辨率的细粒度特征提取。虽然这种融合方法生成了适用于各种视觉-语言任务的丰富视觉表示,但受限于固定的1024 × 1024分辨率约束。这一限制在处理具有更大分辨率和极端纵横比的图像时尤其具有挑战性,例如在InfographicVQA[67]、密集OCR和详细视觉定位任务中。

受最近VLMs进展[16, 21, 55]的启发,我们通过将高分辨率图像分割为平铺来实现动态平铺策略。这种方法使得使用单一的SigLIP-SO400M-384视觉编码器[106]高效处理不同纵横比的高分辨率图像成为可能。预训练的SigLIP在384 × 384的基础分辨率下运行。为了适应不同的纵横比,我们定义了一组候选分辨率:𝐶𝑅 = {(𝑚 · 384, 𝑛 · 384) | 𝑚 ∈ N, 𝑛 ∈ N, 1 ≤ 𝑚, 𝑛, 𝑚𝑛 ≤ 9},其中𝑚 : 𝑛表示纵横比。对于尺寸为(𝐻, 𝑊)的输入图像,我们计算将其调整为每个候选分辨率所需的填充区域(我们首先调整原始图像的大小,使其长边与目标分辨率匹配,然后在保持原始纵横比的同时填充另一维度)。我们选择最小化填充区域的分辨率(𝑚𝑖 · 384, 𝑛𝑖 · 384)。调整大小后的图像被分割为𝑚𝑖 × 𝑛𝑖个384 × 384像素的局部平铺,加上一个全局缩略图平铺。SigLIP-SO400M-384视觉编码器处理所有(1 + 𝑚𝑖 × 𝑛𝑖)个平铺,每个平铺生成27 × 27 = 729个1152维的视觉嵌入。为了计算效率和上下文长度管理,在处理多个(> 2)图像时,我们禁用动态平铺策略。

解释

  • 视觉编码器:负责处理和提取图像中的视觉特征。
  • 视觉-语言适配器:将视觉特征与语言模型结合起来,促进多模态理解。
  • 专家混合语言模型:通过多头潜在注意力机制和稀疏计算技术,提高语言模型的性能和效率。
  • 动态平铺策略:通过将高分辨率图像动态分割为局部平铺,解决了固定分辨率编码器的限制,尤其在处理具有极端纵横比的图像时表现出色。

这些改进使得DeepSeek-VL2在处理高分辨率视觉输入和文本数据方面更加高效,为复杂的多模态任务提供了强大的支持。

视觉-语言适配器

在视觉平铺处理之后,我们实施了一个2 × 2像素洗牌操作,将每个平铺的视觉标记从27 × 27压缩到14 × 14 = 196个标记。然后,在处理(1 + 𝑚𝑖 × 𝑛𝑖)个平铺时,我们引入了三个特殊标记。对于全局缩略图平铺(14 × 14),我们在每行的末尾添加14个 <tile_newline> 标记,总共形成14 × 15 = 210个标记。对于𝑚𝑖 × 𝑛𝑖个局部平铺,它们排列成一个形状为(𝑚𝑖 · 14, 𝑛𝑖 · 14)的二维网格,我们在最后一列的末尾附加𝑚𝑖 · 14个 <tile_newline> 标记,以指示所有局部平铺行的结束。此外,在全局缩略图平铺和局部平铺之间插入一个 <view_separator> 标记。完整的视觉序列包含210 + 1 + 𝑚𝑖 · 14 × (𝑛𝑖 · 14 + 1)个视觉标记,这些标记随后通过两层多层感知机(MLP)投射到语言模型的嵌入空间。我们的动态平铺策略的视觉示意图如图3所示。

DeepSeekMoE LLM

我们的语言模型基于DeepSeekMoE[20, 86],其中包含多头潜在注意力机制[53]。MLA通过将键值缓存压缩为潜在向量来提高推理效率,从而增加吞吐能力。该模型还结合了MoE架构[20],通过稀疏计算实现高效推理。在MoE训练期间,我们为每个专家引入了一个全局偏置项[86],以经济有效地改善专家之间的负载平衡。DeepSeek-VL2提供了以下三种模型变体:1.0B、2.8B和4.5B。完整的架构规格可在表1中找到。

解释

  • 视觉-语言适配器:通过像素洗牌和特殊标记的引入,优化了视觉标记的排列和与语言模型的集成。
  • 多头潜在注意力(MLA):通过压缩键值缓存,提高了推理效率和吞吐能力。
  • 专家混合(MoE)架构:通过稀疏计算提高推理效率,并通过全局偏置项改善负载平衡。
  • 模型变体:提供不同规模的模型,以适应不同的应用需求。

这些设计和技术的结合,使得DeepSeek-VL2在处理视觉和语言数据时更加高效和灵活。

训练方法论

4.1 训练流程

DeepSeek-VL2通过三阶段的流程进行训练:

  1. 初始阶段:在这个阶段,我们使用第3.1节中详细描述的图文配对数据,训练视觉编码器和视觉-语言适配器MLP,同时保持语言模型固定。

  2. 预训练阶段:在这一阶段,我们使用第3.2节描述的数据进行视觉-语言预训练。在此阶段,所有模型参数,包括视觉编码器、视觉-语言适配器和语言模型,都会解锁并同时训练。

  3. 微调阶段:在这个阶段,我们使用第3.3节概述的数据进行有监督的微调,进一步优化模型性能。

在预训练和微调阶段,我们强调视觉理解能力,并仅在文本标记上计算下一个标记预测损失。

视觉-语言对齐

基于预训练的语言模型(DeepSeekMoE 3B/16B/27B),我们的主要目标是建立视觉特征和语言特征之间的稳固连接。这种对齐使得预训练的语言模型能够有效地处理视觉输入。与之前的方法[54, 59]不同,这些方法保持预训练的视觉编码器和语言模型固定,我们调整固定分辨率的视觉编码器以适应动态高分辨率图像。在这个阶段,我们优化视觉编码器和视觉-语言适配器,同时保持语言模型冻结。

视觉-语言预训练

在嵌入空间中建立视觉-语言对齐之后,我们将大部分计算资源用于视觉-语言预训练。这个阶段的重点是开发跨多种任务的综合性联合视觉-语言知识。我们解锁所有参数,包括视觉编码器、视觉-语言适配器和语言模型,并同时进行训练。

通过这些阶段的系统训练,DeepSeek-VL2不仅能够处理高分辨率的视觉输入,还能够在多模态任务中表现出色。这种训练方法使得模型在多样化的任务中提高了视觉和语言理解能力。

有监督微调

在最后阶段,我们通过有监督的微调来增强预训练模型的指令跟随能力和对话能力。利用我们内部的视觉语言SFT数据,我们优化所有参数,但仅对答案和特殊标记进行监督,同时屏蔽系统和用户提示。为了加强对话理解,我们将多模态数据与来自DeepSeek-V2 [53]的纯文本对话数据结合使用。这种方法确保了在各种视觉语言任务中具有强大的性能,包括密集图像描述、通用视觉问答(VQA)、光学字符识别(OCR)、表格/图表/文档/图形理解、视觉到代码、视觉推理、视觉定位和语言理解等。

4.2 超参数和基础设施

DeepSeek-VL2训练的详细超参数列在表2中。我们的训练和评估是在HAI-LLM [30]平台上进行的,这个平台是为大型模型设计的高效轻量级平台。在我们的流水线并行策略中,视觉编码器相对于LLM块的独特计算特性带来了显著的挑战。作为模型流水线中的第一个组件,视觉编码器需要在GPU之间进行仔细的负载平衡,以防止流水线空泡并优化GPU利用率。为了解决这个问题,我们在流水线并行策略中对视觉编码器进行了细粒度的层划分。此外,我们在前向和后向过程中,在不同的数据并行等级间执行图像平铺负载平衡,以缓解动态分辨率策略导致的图像平铺数量不平衡问题。我们的训练过程还结合了张量并行和专家并行的方法,以实现最高效率。由于某些数据批次只有文本数据,而其他批次包含图像数据,我们为不同类型的数据引入了两种不同的流水线策略,并根据需要在这两种策略之间切换。DeepSeek-VL2的训练在7/10/14天内完成,使用了16/33/42个节点的集群,每个节点配备8个NVIDIA A100 GPU。

相关文章:

DeepSeek-VL2论文解读:用于高级多模态理解的专家混合视觉语言模型

github:https://github.com/deepseek-ai/DeepSeek-VL2 paper: https://github.com/deepseek-ai/DeepSeek-VL2/blob/main/DeepSeek_VL2_paper.pdf 大型视觉语言模型&#xff08;VLMs&#xff09;已经成为人工智能领域的变革性力量&#xff0c;将大型语言模型&#xff08;LLMs&…...

PHP JSON操作指南

PHP JSON操作指南 概述 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和生成。PHP作为一门流行的服务器端脚本语言&#xff0c;支持对JSON数据进行读取、编写和解析。本文将…...

使用ES5和ES6求函数参数的和、解析URL Params为对象

文章目录 1 使用ES5和ES6求函数参数的和1.1 ES51.2 ES6 2 解析URL Params为对象 1 使用ES5和ES6求函数参数的和 1.1 ES5 function sum() {let sum 0;Array.prototype.forEach.call(arguments, function(item) {sum item * 1;})return sum; }1.2 ES6 function sum(...nums)…...

Python 数据挖掘与机器学习

模块一&#xff1a;Python编程 Python编程入门 1、Python环境搭建 2、如何选择Python编辑器&#xff1f; 3、Python基础 4、常见的错误与程序调试 5、第三方模块的安装与使用 6、文件读写&#xff08;I/O&#xff09; Python进阶与提高 1、Numpy模块库 2、Pandas模块…...

【华为OD-E卷 - 108 最大矩阵和 100分(python、java、c++、js、c)】

【华为OD-E卷 - 最大矩阵和 100分&#xff08;python、java、c、js、c&#xff09;】 题目 给定一个二维整数矩阵&#xff0c;要在这个矩阵中选出一个子矩阵&#xff0c;使得这个子矩阵内所有的数字和尽量大&#xff0c;我们把这个子矩阵称为和最大子矩阵&#xff0c;子矩阵的…...

Mysql系列之--重新认识Mysql

1、Mysql是什么 Mysql是一个被广泛使用的开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;使用结构化查询语句SQL进行管理和操作数据。Mysql有客户端和服务端&#xff0c;客户端通过ip地址、端口、用户名、密码连接到服务端&#xff0c;然后使用SQL语句进…...

利用UNIAPP实现短视频上下滑动播放功能

在 UniApp 中实现一个短视频上下滑动播放的功能,可以使用 swiper 组件来实现滑动效果,并结合 video 组件来播放短视频。以下是一个完整的示例,展示如何在 UniApp 中实现这一功能。 1. 创建 UniApp 项目 如果你还没有创建 UniApp 项目,可以使用 HBuilderX 创建一个新的项目…...

计算机毕业设计hadoop+spark+hive民宿推荐系统 酒店推荐系统 民宿价格预测 酒店价预测 机器学习 深度学习 Python爬虫 HDFS集群

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

Shell 中的 Globbing:原理、使用方法与实现解析(中英双语)

Shell 中的 Globbing&#xff1a;原理、使用方法与实现解析 在 Unix Shell&#xff08;如 Bash、Zsh&#xff09;中&#xff0c;globbing 是指 文件名模式匹配&#xff08;filename pattern matching&#xff09;&#xff0c;它允许用户使用特殊的通配符&#xff08;wildcards…...

解决 ssh connect to host github.com port 22 Connection timed out

一、问题描述 本地 pull/push 推送代码到 github 项目报 22 端口连接超时&#xff0c;测试连接也是 22 端口连接超时 ssh 密钥没问题、也开了 Watt Toolkit 网络是通的&#xff0c;因此可以强制将端口切换为 443 二、解决方案 1、测试连接 ssh -T gitgithub.com意味着无法通…...

CSS的媒体查询语法

CSS的媒体查询语法 常见的媒体类型常见的特性示例 CSS的媒体查询语法可以根据不同的设备特性&#xff08;如屏幕尺寸、分辨率等&#xff09;应用不同的样式。基本语法如下&#xff1a; media 媒体类型 and (特性: 值) {/* 样式规则 */ }常见的媒体类型 screen&#xff1a;用于…...

生产环境超实用shell脚本一

生产环境超实用shell脚本一 Shell脚本作为一种强大的自动化工具&#xff0c;能够帮助运维人员轻松应对各种复杂的任务。 本文将为您介绍服务器健康检查、日志清理、备份以及监控等多个方面&#xff0c;并详细阐述每个脚本的功能和应用场景&#xff0c;助力您提升运维效率&…...

【1】高并发导出场景下,服务器性能瓶颈优化

高并发导出场景下&#xff0c;服务器性能瓶颈通常出现在 CPU、内存、磁盘 I/O 或网络带宽等方面。为了解决这些问题&#xff0c;可以从以下几个方面进行优化&#xff1a; 1. 优化导出逻辑 减少计算复杂度&#xff1a;检查导出逻辑中是否存在不必要的计算或重复操作&#xff0c;…...

go的sync包学习

包含了sync.Mutex,sync.RWMutex,sync.Cond,sync.Map,sync.Once等demo sync.Mutex //讲解mutex import ("fmt""math/rand""sync""time" )type Toilet struct {m sync.Mutex } type Person struct {Name string }var DateTime "2…...

一文读懂:TCP网络拥塞的应对策略与方案

TCP&#xff08;传输控制协议&#xff09;是互联网中广泛使用的可靠传输协议&#xff0c;它通过序列号、确认应答、重发控制、连接管理以及窗口控制等机制确保数据的可靠传输。然而&#xff0c;在网络环境中&#xff0c;由于多个主机共享网络资源&#xff0c;网络拥塞成为了一个…...

用DeepSeek分析总结一下DeepSeek发表过的8篇论文

1. 《深度求索大语言模型&#xff1a;以长期主义拓展开源语言模型》&#xff08;2024年1月5日&#xff09; 2. 《深度求索代码模型&#xff1a;当大语言模型遇上编程——代码智能的崛起》&#xff08;2024年1月26日&#xff09; 3. 《深度求索视觉语言模型&#xff1a;迈向真…...

node.js使用mysql2对接数据库

一、引言 在现代Web开发中&#xff0c;Node.js作为一种高效、轻量级的JavaScript运行时环境&#xff0c;已经广泛应用于后端服务的开发中。而MySQL&#xff0c;作为一个广泛使用的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;提供了强大的数据存储和查询功能…...

华为支付-免密支付接入免密代扣说明

免密代扣包括支付并签约以及签约代扣场景。 开发者接入免密支付前需先申请开通签约代扣产品&#xff08;即申请配置免密代扣模板及协议模板ID&#xff09;。 华为支付以模板维度管理每一个代扣扣费服务&#xff0c;主要组成要素如下&#xff1a; 接入免密支付需注意&#x…...

Java 面试真题解析与技巧分享

Java 面试对于每一位 Java 开发者来说都是至关重要的&#xff0c;它不仅是对我们技术能力的检验&#xff0c;更是我们迈向理想工作岗位的关键一步。在面试中&#xff0c;掌握常见真题的解题思路和回答技巧&#xff0c;能够让我们更加自信地展示自己的实力。本文将结合具体的面试…...

使用 Python 编程语言来实现机器学习小项目教程案例

以下是一个简单的机器学习小项目教程案例,使用 Python 编程语言和 Scikit-learn 库来实现一个分类任务。我们将使用经典的鸢尾花(Iris)数据集来训练一个分类器,预测鸢尾花的种类。 项目目标 使用机器学习算法对鸢尾花数据集进行分类,预测鸢尾花的类别(Setosa、Versicolor…...

网络安全 | 零信任架构:重构安全防线的未来趋势

网络安全 | 零信任架构&#xff1a;重构安全防线的未来趋势 一、前言二、零信任架构的核心概念与原理2.1 核心概念2.2 原理 三、零信任架构的关键技术组件3.1 身份管理与认证系统3.2 授权与访问控制系统3.3 网络与安全监测系统3.4 加密与数据保护技术 四、零信任架构与传统安全…...

react关于手搓antd pro面包屑的经验(写的不好请见谅)

我们先上代码&#xff0c;代码里面都有注释&#xff0c;我是单独写了一个组件&#xff0c;方便使用&#xff0c;在其他页面引入就行了 还使用了官方的Breadcrumb组件 import React, { useEffect, useState } from react; import { Breadcrumb, Button } from antd; import { …...

PHP-运算符

[题目信息]&#xff1a; 题目名称题目难度PHP-运算符2 [题目考点]&#xff1a; PHP运算符优先级[Flag格式]: SangFor{zEk4r_djfgy0CibPz6LdXpwBrXRckhIT}[环境部署]&#xff1a; docker-compose.yml文件或者docker tar原始文件。 http://分配ip:2067[题目writeup]&#x…...

chrome浏览器chromedriver下载

chromedriver 下载地址 https://googlechromelabs.github.io/chrome-for-testing/ 上面的链接有和当前发布的chrome浏览器版本相近的chromedriver 实际使用感受 chrome浏览器会自动更新&#xff0c;可以去下载最新的chromedriver使用&#xff0c;自动化中使用新的chromedr…...

BurpSuite抓包与HTTP基础

文章目录 前言一、BurpSuite1.BurpSuite简介2.BurpSuite安装教程(1)BurpSuite安装与激活(2)安装 https 证书 3.BurpSuite使用4.BurpSuite资料 二、图解HTTP1.HTTP基础知识2.HTTP客户端请求消息3.HTTP服务端响应消息4.HTTP部分请求方法理解5.HTTPS与HTTP 总结 前言 在网络安全和…...

SQLAlchemy 2.0的简单使用教程

SQLAlchemy 2.0相比1.x进行了很大的更新&#xff0c;目前网上的教程不多&#xff0c;以下以链接mysql为例介绍一下基本的使用方法 环境及依赖 Python:3.8 mysql:8.3 Flask:3.0.3 SQLAlchemy:2.0.37 PyMySQL:1.1.1使用步骤 1、创建引擎&#xff0c;链接到mysql engine crea…...

Android原生开发问题汇总

Fragment顶部出现一个白条怎么办&#xff1f;父类布局搞事情。 layer-list被拉伸问题 Android之 ImageView android:src和tools:src的区别是什么? Android运行时权限的总结&#xff0c;以及EasyPermissions框架的使用 Android Studio添加EasyPemissions Android中module怎…...

springboot中使用注解实现分布式锁

下面将详细介绍如何在 Spring Boot 里借助注解实现分布式锁&#xff0c;以login_lock:作为锁的 key 前缀&#xff0c;使用请求参数里的phone值作为 key&#xff0c;等待时间设为 0 秒&#xff0c;锁的持续时间为 10 秒。我们会使用 Redis 来实现分布式锁&#xff0c;同时借助 S…...

Android TabLayout 使用进阶(含源码)

android:layout_height“match_parent” android:orientation“vertical” tools:context“.mode2.ClassificationActivity”> <com.google.android.material.tabs.TabLayout android:id“id/tab_layout” android:layout_width“match_parent” android:layout_he…...

数据库系统概论的第六版与第五版的区别,附pdf

我用夸克网盘分享了「数据库系统概论第五六版资源」&#xff0c;点击链接即可保存。 链接&#xff1a;https://pan.quark.cn/s/21a278378dee 第6版教材修订的主要内容 为了保持科学性、先进性和实用性&#xff0c;在第5版教材基础上对全书内容进行了修改、更新和充实。 在科…...

管理etcd的存储空间配额

如何管理etcd的存储空间配额 - 防止集群存储耗尽指南 本文基于etcd v3.4官方文档编写 为什么需要空间配额&#xff1f; 在分布式系统中&#xff0c;etcd作为可靠的键值存储&#xff0c;很容易成为系统瓶颈。当遇到以下情况时&#xff1a; 应用程序频繁写入大量数据未及时清理…...

深入浅出 NRM:加速你的 npm 包管理之旅

文章目录 前言一、NRM 是什么&#xff1f;二、为什么需要 NRM&#xff1f;三、NRM 的优势四、NRM 的安装与使用4.1 安装 NRM4.2 查看可用的 npm 源4.3 切换 npm 源4.4 测试 npm 源速度4.5 添加自定义 npm 源4.6 删除 npm 源 五、NRM 的进阶使用六、总结 前言 作为一名 JavaScr…...

ESP32开发学习记录---》GPIO

she 2025年2月5日&#xff0c;新年后决定开始充电提升自己&#xff0c;故作此记,以前没有使用过IDF开发ESP32因此新年学习一下ESP32。 ESPIDF开发环境配置网上已经有很多的资料了&#xff0c;我就不再赘述&#xff0c;我这里只是对我的学习经历的一些记录。 首先学习一个…...

stm32点灯 GPIO的输出模式

目录 1.选择RCC时钟 2.SYS 选择调试模式 SW 3.GPIO 配置 4.时钟树配置&#xff08; 默认不变&#xff09;HSI 高速内部时钟8Mhz 5.项目配置 6.代码 延时1s循环LED亮灭 1.选择RCC时钟 2.SYS 选择调试模式 SW 3.GPIO 配置 4.时钟树配置&#xff08; 默认不变&#xff09…...

[paddle] 矩阵的分解

特征值 设 A A A 是一个 n n n \times n nn 的方阵&#xff0c; λ \lambda λ 是一个标量&#xff0c; v \mathbf{v} v 是一个非零向量。如果满足以下方程&#xff1a; A v λ v A\mathbf{v} \lambda\mathbf{v} Avλv 则称 λ \lambda λ 为矩阵 A A A 的一个 特征值…...

【基于SprintBoot+Mybatis+Mysql】电脑商城项目之修改密码和个人资料

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【Spring篇】【计算机网络】【Mybatis篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 目录 &#x1f383;1.修改密码 -持久…...

【深度学习】DataLoader自定义数据集制作

第一步 导包 import os import matplotlib.pyplot as plt %matplotlib inline import numpy as np import torch from torch import nn import torch.optim as optim import torchvision from torchvision import transforms,models,datasets import imageio import time impo…...

【Elasticsearch】Geo-distance聚合

geo_distance聚合的形状是圆形。它基于一个中心点&#xff08;origin&#xff09;和一系列距离范围来计算每个文档与中心点的距离&#xff0c;并将文档分配到相应的距离范围内。这种聚合方式本质上是以中心点为圆心&#xff0c;以指定的距离范围为半径的圆形区域来划分数据。 为…...

【R语言】apply函数族

在R语言中使用循环操作时是使用自身来实现的&#xff0c;效率较低。所以R语言有一个符合其统计语言出身的特点&#xff1a;向量化。R语言中的向量化运用了底层的C语言&#xff0c;而C语言的效率比高层的R语言的效率高。 apply函数族主要是为了解决数据向量化运算的问题&#x…...

Vue - shallowRef 和 shallowReactive

一、shallowRef 和 shallowReactive &#xff08;一&#xff09;shallowRef 在 Vue 3 中&#xff0c;shallowRef 是一个用于创建响应式引用的 API&#xff0c;它与 ref 相似&#xff0c;但它只会使引用的基本类型&#xff08;如对象、数组等&#xff09;表现为响应式&#xf…...

双目标定与生成深度图

基于C#联合Halcon实现双目标定整体效果 一&#xff0c;标定 1&#xff0c;标定前准备工作 &#xff08;获取描述文件与获取相机参数&#xff09; 针对标准标定板可以直接调用官方提供描述文件&#xff0c;也可以自己生成描述文件后用PS文件打印 2&#xff0c;相机标定 &…...

实名制-网络平台集成身份证实名认证接口/身份证查询-PHP

在当今数字化快速发展的时代&#xff0c;线上平台的安全性和用户体验成为了衡量其成功与否的关键因素。其中&#xff0c;身份证实名认证接口的集成显得尤为重要&#xff0c;它不仅为用户提供了更加安全、可靠的网络环境&#xff0c;同时也增强了平台的信任度和合规性。 对于任…...

全面解析机器学习优化算法中的进化策略

全面解析机器学习优化算法中的进化策略 全面解析机器学习优化算法中的进化策略引言什么是进化策略?基本概念核心组件算法流程数学基础高斯扰动期望值更新与其他优化方法的比较梯度下降法(Gradient Descent, GD)遗传算法(Genetic Algorithm, GA)Python案例基本实现改进版:…...

go数据结构学习笔记

本博文较为完整的实现了go的链表、栈&#xff0c;队列&#xff0c;树&#xff0c;排序&#xff0c;链表包括顺序链表&#xff0c;双向链表&#xff0c;循环链表&#xff0c;队列是循环队列&#xff0c;排序包含冒牌、选择 1.链表 1.1 顺序链表 type LNode struct {data intn…...

【深度学习】DeepSeek模型介绍与部署

原文链接&#xff1a;DeepSeek-V3 1. 介绍 DeepSeek-V3&#xff0c;一个强大的混合专家 (MoE) 语言模型&#xff0c;拥有 671B 总参数&#xff0c;其中每个 token 激活 37B 参数。 为了实现高效推理和成本效益的训练&#xff0c;DeepSeek-V3 采用了多头潜在注意力 (MLA) 和 De…...

使用SpringBoot发送邮件|解决了部署时连接超时的bug|网易163|2025

使用SpringBoot发送邮件 文章目录 使用SpringBoot发送邮件1. 获取网易邮箱服务的授权码2. 初始化项目maven部分web部分 3. 发送邮件填写配置EmailSendService [已解决]部署时连接超时附&#xff1a;Docker脚本Dockerfile创建镜像启动容器 1. 获取网易邮箱服务的授权码 温馨提示…...

【工具篇】深度揭秘 Midjourney:开启 AI 图像创作新时代

家人们,今天咱必须好好唠唠 Midjourney 这个在 AI 图像生成领域超火的工具!现在 AI 技术发展得那叫一个快,各种工具层出不穷,Midjourney 绝对是其中的明星产品。不管你是专业的设计师、插画师,还是像咱这种对艺术创作有点小兴趣的小白,Midjourney 都能给你带来超多惊喜,…...

构成正方形的数量:算法深度剖析与实践

目录 引言算法核心概念 定义正方形的构成条件数据结构与输入形式算法数学原理 几何关系的数学表达坐标运算与判定逻辑Python 实现 代码展示代码解析Python 实现的优势与局限C 语言实现 代码展示代码解析C 语言实现的性能特点性能分析与优化 性能分析 时间复杂度空间复杂度优化思…...

Spring设计模式(9种)(详细篇)

总体分为三大类&#xff1a; 创建型模式&#xff1a;工厂方法模式、单例模式。 结构型模式&#xff1a;适配器模式、代理模式、装饰器模式。 行为型模式&#xff1a;观察者模式、策略模式、模板方法模式。 一、简单工厂模式&#xff08;Simple Factory&#xff09; 概述&…...

使用Express.js和SQLite3构建简单TODO应用的后端API

使用Express.js和SQLite3构建简单TODO应用的后端API 引言环境准备代码解析1. 导入必要的模块2. 创建Express应用实例3. 设置数据库连接4. 初始化数据库表5. 配置中间件6. 定义数据接口7. 定义路由7.1 获取所有TODO项7.2 创建TODO项7.3 更新TODO项7.4 删除TODO项 8. 启动服务器 …...