【图像生成1】Latent Diffusion Models 论文学习笔记
一、背景
本文主要记录一下使用 LDMs 之前,学习 LDMs 的过程。
二、论文解读
Paper:[2112.10752] High-Resolution Image Synthesis with Latent Diffusion Models
1. 总体描述
LDMs 将传统 DMs 在高维图像像素空间(Pixel Space)上的 diffusion 操作转移到低维潜空间(Latent Space)进行,大大降低了训练和推理所需计算资源,生成的图像细节更丰富,更真实,且能用于生成高分辨率(百万级像素)图像;同时引入的条件控制机制 Conditioning Mechanisms 使模型能够用于多种条件图像生成任务,如图像超分、图像修复、语义合成(文生图、图生图,布局生图)。
后面这几位作者又提出了检索增强扩散模型(Retrieval Augmented Diffusion Models, RDMs)并将其用于 LDMs 的文生图任务中,大概作用就是进一步降低生成图像所需计算资源,提升生成图像的质量。
2. LDMs
2.1 主体框架
通过框架图可知,在 LDMs 之前需要先训练一个 Autoencoder,包含一个编码器 和一个解码器
,输入图像
经过编码器
得到其潜在空间的特征表示
,解码器
再将
从潜在空间重构回像素空间得到生成后的
,上述过程(对应框架图左部)可表示为:
Encode:
Decode:
其中降采样因子 ,且为 2 的幂次,即
。
正向扩散(加噪)过程和反向去噪(重构)过程均发生在潜在空间,重构过程中通过加入一个条件降噪自编码器 (UNet
cross attention,对应框架图中部)可以将输入条件
扩展到不同形态(对应框架图右部),比如文本、语义图、图像等,进而可以实现如文生图、布局生图、图生图等多种生成任务。
2.2 感知图像压缩(Perceptual Image Compression)
现有 DMs 的生成过程可以视为一个压缩比(感知有效 bit 与图像维度之比)和失真率的平衡问题(如上图所示),压缩比越低(高),说明图像中感知有效的 bit 越少(多),因而生成的图像失真程度越大(小)。其学习过程大致可分为两个阶段:感知压缩阶段和语义压缩阶段。在感知压缩阶段,模型会舍弃图像中的高频信息而只学习一些语义变化,在语义压缩阶段,生成模型会学习数据的语义和概念信息(高维抽象的信息)。
DMs 虽然可以忽略图像中一些在感知上无关紧要的信息,但模型的计算和优化过程仍然在像素空间中,这就导致如果合成一些高分辨率图像,空间维度就会非常高,在计算时间和计算资源上的花费会非常昂贵(heavy cost)。
于是作者提出了对图像的感知压缩,使用一个 Autoencoder,该 Autoencoder (论文中叫感知压缩模型)结合了感知损失和基于 patch 的对抗样本进行训练。在图像生成之前会先学习一个与图像空间感知等效(perceptually equivalent)的低维空间,即潜在空间,在这个空间中进行扩散过程和后续操作,有效降低模型计算复杂性,提高计算效率。
为了避免潜在空间的高方差,导致重构图像与输入图像偏离过大,作者使用了两种正则化方法,KL-reg. 和 VQ-reg.。使用 KL-reg. 的感知压缩模型相当于一个 VAE,而使用了 VQ-reg. 的感知压缩模型与一个 VQGAN 的工作过程类似。
代码中提供了使用 KL(AutoencoderKL 类)和 VQ(VQModel 类)正则配合不同降采样因子的 AE。
2.3 潜在扩散模型(Latent Diffusion Models)
传统 DMs 在对服从正态分布的变量逐渐去噪的过程中学习其数据分布 ,可以看做是基于时序的降噪自编码器(an equally weighted sequence of denoising autoencoders)
,其中
是输入样本
的加噪版本,而 DMs 的任务就是学习如何从加噪版样本
中预测去噪版的
,这个
是输入样本
的变体,二者不完全一样。对应目标函数可表示如下:
(公式1)
其中 均匀采样自序列
。
LDMs 与DMs 相比,其训练过程在计算高效的低维空间中进行,且模型会聚焦于图像中的语义信息,丢弃高频和感知无效的细节。该模型的 backbone 本质上是一个时序条件 UNet(time-conditional UNet),训练时由编码器
生成潜在空间表示
,解码器
将采样自
的样本解码回图像空间,得到重建后的
。目标函数表示如下:
(公式2)
可以看出 LDMs 就是将扩散过程由图像空间 转移到潜在空间
。
2.4 条件机制(Conditioning Mechanisms)
上面主要介绍的是 LDMs 的无条件生成机制,本章节介绍了如何实现 LDMs 的多模态条件生成,如文生图、图生图、图像转换(image-to-image translation)等。
扩散模型原则上能够对形如 的条件分布建模,借助一个条件降噪自编码器(conditional denoising autoencoder)
可以将生成过程中的控制条件
扩展到多种形式,如文本、语义图(semantic maps)、图像等。
在图像生成任务中,如果 DMs 的条件输入是除了类别标签(class-label)和模糊版图像(blurred variants of the input image,指图像超分)的其它形式,那 DMs 的生成能力还有待探索(随后本文就进行了探索)。
通过在 UNet 中加入交叉注意力机制,使得 DMs 能够应对多种不同的条件输入模态(比如prompts)。为了处理条件输入 ,作者引入了一个域专用编码器(domain specific encoder)
,将
映射为一个中间表示(intermediate representation)
,之后通过交叉注意力层将其送入 UNet 的中间层(如框架图中展示的)。
其中 是 UNet(执行
后)的一个中间表示,
,
和
为映射矩阵。
借助图像-条件对,条件控制 LDM 的学习可表示如下:
(公式3)
与公式 2 相比多了一个条件 。
3. 实验
为了验证 LDMs 的效果,作者进行了大量实验,包括对下采样因子 的调节,无条件图形生成(基于 CelebA-HQ,FFHQ,LSUN-Churches 和 LSUN-Bedrooms 数据集,生成图像分辨率为256
256) ,有条件图像生成(文生图、语义图生图、图像超分、图像修复等),基于多种评价指标分析生成图像的质量和效果。45 页的论文(加附录)有 90% 的篇幅属于实验分析,可谓相当有说服力了。
实验部分就不做过多记录了,就简单整理一下实验类型和实验结论。(主要还是能力有限,很多分析看不大懂,只能通过图示来直观感受了 - -)
3.1 感知压缩的权衡(On Perceptual Compression Tradeoffs)
作者使用了 6 种下采样因子()来分析其对图像生成的影响,当
时,LDMs 就是 DMs。
越小({1-2})训练时间越长,
过大({32}) 导致信息损失过多,进而导致生成图像质量差,
时平衡效果最好。
在两个数据集上比较了不同采样速度对 FID 分数的影响,当 时同样的采样速度下 FID 最低。所以综合分析来看,
时模型性能最好。
3.2 无条件图像生成(Image Generation with Latent Diffusion)
作者在四个数据集上训练无条件 LDMs,基于 FID 和 PR 两个指标评价生成图像的质量。
在 CelebA-HQ 数据集上 LDM 的 FID 分数达到最优,在另外几个数据集上也表现优秀。
在各数据集上生成图像的效果:
3.3 条件 LDM(Conditional Latent Diffusion)
3.3.1 引入Transformer 编码器的LDM
作者使用了 BERT-Tokenizer,并将 (前面提到的域专用编码器)作为一个 transformer 来生成潜在特征,通过多头交叉注意力将潜在特征映射到 UNet。
(1)文生图
作者在 LAION-400M 数据集上,以 prompts 为条件输入,训练了一个条件 LDM(使用 KL 正则优化),并在 MS-COCO 验证集上进行验证。
LDM-KL-8-G(加入 classifier-free diffusion guidance) 的表现与当时的 SOTA 表现相当,但参数量明显更少。
生成效果展示
(2) 布局生图
作者在 OpenImages 数据集(语义布局图,semantic layouts)上训练,在 COCO 数据集上微调。
生成结果展示:
(3)类别条件图像生成(ImageNet)
结论也是:指标表现媲美 SOTA,参数量更少。
3.3.2 卷积采样(Convolutional Sampling Beyond )
以语义图(semantic maps)生成为例,作者在分辨率为 的图像上训练模型,但模型却可以生成分辨率更高的图像。
3.4 图像超分(Super-Resolution with Latent Diffusion)
作者使用的是在 OpenImages 数据集上预训练的 Autoencoder(使用 VQ 正则优化,),条件输入
为低分图像(对原图做 4 倍下采样),在 ImageNet 上训练 LDM。
LDM-SR 的 FID 分数超过 SR3,参数量最少。
超分效果展示
然后作者又做了一个观察者实验,向受试者展示两张高分辨率图像(分别由 LDM-SR 和对比模型生成)和二者之间的一张低分图像, 然后统计受试者对这两张图像的评价,结果显示由 LDM-SR 生成的超分图像评价更高。
更多效果展示
3.5 图像修复(Inpainting with Latent Diffusion)
作者在 Places 数据集上训练和验证模型。首先分析了在第一阶段选择不同可调因子(降采样因子、正则化项、注意力机制)对生成结果的影响。总体来说,LDM 与普通 DM( 的LDM)相比,速度上至少 2.7倍+,FID 分数高了 1.6倍+。
加入注意力机制之后提高了生成图像的质量(从 FID 分数上反应)。从之前的观察者实验结果表中也可以反映 LDM 修复的图像质量更佳。
修复效果展示
实验部分梳理完毕(信息量确实太大了 - -)。后面作者提到了 LDMs 存在的局限性(顺序采样比 GANs 慢,生成高精度图像的能力等)以及模型可能造成的社会影响(生成假数据等)。
以上就是基于本人目前水平对论文所做的解读,会有很多地方理解不够准确,建议大家看原文更有助于理解。
三、总结
这篇文章属于无意之举,毕竟没有涉猎过图像生成相关领域,原本只是想记录一下使用 LDMs 的过程,但在看别人教程还是 github 的过程中有很多概念不太理解,就去搜搜看看,慢慢看得多了就想说要不干脆学习一下论文,原理上多理解一些对于后面模型使用也有好处。
这一读不要紧,越读不懂的越多,搜的越多,费的时间越多,断断续续花了好几天才算把论文主要内容看完,配上自己粗浅的理解,才算有了这篇文章。说实话自己可能也就理解了一半,还有很多东西看不懂,比如什么是 ddpm,ddim?什么叫卷积采样?等等,留待以后再慢慢学习吧。
Stable Diffusion 大火那会自己也是第一时间上手试玩,当时来说确实很惊艳,但也只是会用,不知道背后竟然是 LDMs,又转回来了。
参考资料
[1] [论文笔记] Semi-parametric Image Synthesis -知乎
[2] Retrieval-Augmented Diffusion Models -知乎
[3] Latent Diffusion Models论文解读 -知乎
[4] stable diffusion原始论文翻译(LDM latent diffusion model) -知乎
相关文章:
【图像生成1】Latent Diffusion Models 论文学习笔记
一、背景 本文主要记录一下使用 LDMs 之前,学习 LDMs 的过程。 二、论文解读 Paper:[2112.10752] High-Resolution Image Synthesis with Latent Diffusion Models 1. 总体描述 LDMs 将传统 DMs 在高维图像像素空间(Pixel Space&#x…...
MapReduce Shuffle 全解析:从 Map 端到 Reduce 端的核心数据流
一、Shuffle 的本质定位:MapReduce 的核心枢纽 Shuffle 过程涵盖 MapTask 的后半程与 ReduceTask 的前半程,具体指从 map 方法输出到 reduce 方法输入之间的整个数据处理链路。它承担着三大核心使命: 数据分区:决定数据归属…...
架构与UML4+1视图
简单对比分析 架构41视图 架构41视图是由Philippe Kruchten提出的,用于描述软件系统的架构。它包括以下五个视图: 逻辑视图:描述系统的功能需求,展示系统的静态结构,通常使用类图、对象图等。开发视图:…...
nosqlbooster pojie NoSQLBooster for MongoDB
测过可用,注意 asar的安装使用报错改用 npx asar extract app.asar app 路径 C:\Users{computerName}\AppData\Local\Programs\nosqlbooster4mongo\resources npm install asar -g asar extract app.asar app 打开shared\lmCore.js 修改MAX_TRIAL_DAYS3000 修改…...
UI自动化测试中,一个完整的断言应所需要考虑的问题
在UI自动化测试中,一个完整的断言应全面覆盖用户界面(UI)的功能性、交互性和视觉正确性。以下是断言需要包含的核心内容及详细说明: 一、基础元素验证 存在性断言 验证元素存在于DOM中示例代码(Python + Selenium):assert driver.find_element(By.ID, "submit_btn&…...
电脑出故障驱动装不上?试试驱动人生的远程服务支持
在日常工作或学习中,驱动问题时常成为电脑用户的一大困扰。尤其是在更换硬件、重装系统、驱动冲突等情况下,许多用户往往手足无措,不知道从何下手。而“驱动人生”作为国内领先的驱动管理工具,一直以高效、便捷、智能著称。现在&a…...
机器学习第十五讲:决策树全面讲解:像玩“20个问题“游戏猜身份[特殊字符]
机器学习第十五讲:决策树全面讲解:像玩"20个问题"游戏猜身份🎮 资料取自《零基础学机器学习》。 查看总目录:学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章:DeepSeek R1本地与线上满血版部署&…...
基于Rust语言的Rocket框架和Sqlx库开发WebAPI项目记录(二)
参数结构体模块 在src目录下新建params文件夹 在params文件夹下依次新建req.rs、resp.rs、result_parse.rs、mod.rs 目录结构如下: project |—src |—params //封装参数结构体模块 |—req.rs //封装请求参数结构体 |—resp.rs //封装返回数据结构体 |—resu…...
Centos7系统(最小化安装)安装zabbix7版本详细文章、nginx源代码配置、php源代码、mysql-yum安装
zabbix官网链接下载zabbix源代码安装包 选择zabbix版本(此文章使用zabbix7.0版本) 安装之前由于是最小化安装centos7安装一些开发环境和工具包 文章使用国内阿里源 cd /etc/yum.repos.d/;curl -O https://mirrors.aliyun.com/repo/epel-7.repo;curl -…...
rocketmq 环境配置[python]
因本人是 python 开发,macbook 开发。windows 可以采取配置远程 linux 解释器或者 pycharm 专业版的 docker 解释器进行开发 M1 芯片 本地运行 rocketmq rocketmq Python 开源地址: https://github.com/apache/rocketmq-client-python 因为需要 linu…...
前端学习(4)—— JavaScript(基础语法)
目录 一,介绍 1.1 是什么 1.2 组成 1.3 书写形式 1.4 输入输出 二,变量的使用 2.1 基本用法 2.2 动态类型 三,基本数据类型 3.1 数字类型 3.2 字符串类型 3.3 布尔类型 3.4 未定义数据类型 3.5 空值类型 四,运算符…...
简单介绍C++中线性代数运算库Eigen
Eigen 是一个高性能的 C 模板库,专注于线性代数、矩阵和向量运算,广泛应用于科学计算、机器学习和计算机视觉等领域。以下是对 Eigen 库的详细介绍: 1. 概述 核心功能:支持矩阵、向量运算,包括基本算术、矩阵分解&…...
原生小程序+springboot+vue+协同过滤算法的音乐推荐系统(源码+论文+讲解+安装+部署+调试)
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,我会一一回复,希望帮助更多的人。 系统背景 在数字音乐产业迅猛发展的当下,Spotify、QQ 音乐、网易云音乐等音乐平台的曲…...
[特殊字符] 如何优雅地避免 SQL 多表 LEFT JOIN 造成的笛卡尔积放大问题?
在实际项目开发中,我们经常需要从多个数据表中统计和聚合项目相关数据。但如果处理不当,多表 LEFT JOIN 容易造成 数据行数异常放大 的问题,也就是我们常说的“笛卡尔积放大”。 本文通过一个简单示例,直观讲清问题产生的原因&am…...
哈希表实现(1):
1. 哈希: 之前我们的红黑数的查找是由于左边小右边大的原则可以快速的查找,我们这里的哈希表呢? 这里是用过哈希函数把关键字key和存储位置建立一个关联的映射。 直接定址法(函数函数定义的其中一种): 直…...
【流程控制结构】
流程控制结构 流程控制结构1、顺序结构2、选择结构if基本选择结构if else语法多重if语法嵌套if语法switch选择结构 3、循环结构循环结构while循环结构程序调试for循环跳转语句区别 流程控制结构 1、顺序结构 流程图 优先级 2、选择结构 if基本选择结构 单if 语法 if&…...
敏捷-第二章 敏捷宣言与原则
敏捷宣言与原则之间的关系 将敏捷明确表述为一种思维模式,它由《敏 捷宣言》的价值观所界定,受敏捷原则指导, 4通过各种实践实现敏捷不是指某一种具体的方法论、过程或框架,而是一组价值观和原则。 敏捷宣言(Manifesto)的4大价值…...
UAI 2025重磅揭晓:录取数据公布(附往届数据)
近日,第41届UAI公布了论文录用结果。本次大会共收到 750篇有效论文投稿,最终录用230篇,录用率为30.7%。录取率较去年(UAI 2024)相比有所上升(录取率:26.88%)。 会议概览 人工智能不…...
京东方10.1寸工业液晶屏GV101WXM-N80
第一篇:规格参数总览 产品标称 京东方(BOE) GV101WXM-N85 工业级显示单元 核心应用方向 教学终端设备|工业便携装置|车载控制系统 面板属性 非晶硅TFT液晶技术|全视角显示模式联合常暗配置 物理规格 对角线长度25.7cm&…...
实例分割AI数据标注 ISAT自动标注工具使用方法
文章目录 🌕ISAT安装和启动方法🌕下载和使用AI分割模型🌙SAM模型性能排行🌙手动下载sam模型 & sam模型下载路径🌕使用方法🌙从file中导入图片🌙点击左上角的图标进入分割模式🌙鼠标左键点击画面中的人则自动标注🌙点击右键该区域不标注🌙一个人一个人的…...
软件架构风格系列(4):事件驱动架构
文章目录 前言一、从“用户下单”场景看懂事件驱动核心概念(一)什么是事件驱动架构?(二)核心优势:解耦与异步的双重魔法 二、架构设计图:三要素构建事件流转闭环三、Java实战:从简单…...
软件架构风格系列(2):面向对象架构
文章目录 引言一、什么是面向对象架构风格1. 定义与核心概念2. 优点与局限性二、业务建模:用对象映射现实世界(一)核心实体抽象1. 员工体系2. 菜品体系 (二)封装:隐藏实现细节 三、继承实战:构建…...
python打卡day27
函数装饰器 知识点回顾: 装饰器的思想:进一步复用函数的装饰器写法注意内部函数的返回值 日常ctrl点进某个复杂的项目,发现函数定义上方有一个xxx,它就是装饰器。装饰器本质上是一个 Python 函数,可以在不修改原函数代码的情况下&…...
智能AI构建工地安全网:跌倒、抽搐、区域入侵多场景覆盖
智能AI在工地安全中的应用:从监测到救援的全流程实践 一、背景:高温作业下的工地安全挑战 随着夏季高温持续,工地户外作业环境面临严峻考验。工人因高温疲劳、脱水或突发疾病引发的行为异常(如晕厥、抽搐、跌倒)频发…...
gflags 安装及使用
目录 引言 安装 如何用 gflags 库写代码 如何用命令行使用 gflags 库 gflags 库的其他命令行参数 引言 gflags 是 Google 开发的一个开源库,用于 C 应用程序中命令行参数的声明、定义 和解析。 gflags 库提供了一种简单的方式来添加、解析和文档化命令行标…...
金融问答系统:如何用大语言模型打造高精度合规的金融知识引擎
假如我现在向大模型提问,我的问题是:请查询在2021年度,68**38股票涨停天数? 或者我问:湖南*****科股份有限公司变更设立时作为发起人的法人有哪些? 大模型巴拉巴拉给我一个答案,那怎么让我信任大…...
Spring WebFlux与Quarkus实战:云原生微服务开发的两大主流框架深度解析
简介 云原生与微服务架构已成为企业数字化转型的核心驱动力,而Spring WebFlux和Quarkus作为两大主流框架,各自提供了独特的解决方案来应对高并发、低延迟和快速启动的挑战。本文将从零开始,详细讲解如何使用这两个框架构建高性能的云原生微服务,并通过实际案例展示它们在企…...
成功案例丨从草图到鞍座:用先进的发泡成型仿真技术变革鞍座制造
案例简介 在鞍座制造中,聚氨酯泡沫成型工艺是关键环节,传统依赖实验测试的方法耗时且成本高昂。为解决这一问题,意大利自行车鞍座制造商 Selle Royal与Altair合作,采用Altair Inspire PolyFoam软件进行发泡成型仿真。 该工具帮助团…...
学习日志09 java
我要(ง •_•)ง!! 1 面向对象里面的编程的属性,其实就是变量啦 在面向对象编程里,“属性”(Attribute)也被叫做 “成员变量” 或者 “字段”(Field),指的是类中用来存…...
深入解析Spring Boot与微服务架构:从入门到实践
深入解析Spring Boot与微服务架构:从入门到实践 引言 随着云计算和分布式系统的普及,微服务架构已成为现代软件开发的主流模式。Spring Boot作为Java生态中最受欢迎的框架之一,为开发者提供了快速构建微服务的强大工具。本文将深入探讨Spri…...
25考研经验贴(11408)
声明:以下内容都仅代表个人观点 数学一(130) 25考研数学一难度介绍:今年数学一整体不难,尤其是选填部分,大题的二型线面和概率论大题个人感觉比较奇怪,其他大题还是比较容易的。.26如何准备&a…...
Linux运行时的参数、命令、网络、磁盘参数和日志监控
一、监控 1. free 功能:用于查看系统内存使用情况,包括物理内存总量、已用内存、空闲内存、缓冲区(buffer)和缓存(cache)占用,以及交换内存(swap)的使用与剩余情况。常…...
Spring Boot循环依赖的陷阱与解决方案:如何打破“Bean创建死循环”?
引言 在Spring Boot开发中,你是否遇到过这样的错误信息? The dependencies of some of the beans in the application context form a cycle 这表示你的应用出现了循环依赖。尽管Spring框架通过巧妙的机制解决了部分循环依赖问题,但在实际开…...
如何打造MVP(最小可行性产品)(MVP=核心功能+快速验证+用户反馈+持续迭代)
文章目录 **一、MVP的核心原则**1. **聚焦核心价值**2. **快速迭代**3. **低成本验证** **二、MVP的打造步骤****1. 定义目标用户和核心需求****2. 确定MVP的核心功能**- **筛选关键功能**:1. 用户是否愿意为这个功能付费?2. 实现该功能的技术难度和成本…...
conda init执行了还是不好用
按照gpt的方法,还是方法一:以管理员身份运行 PowerShell 并设置执行策略 好用 你遇到的问题是典型的 Conda 环境激活失败 错误,提示如下: CondaError: Run conda init before conda activate但你已经运行了 conda initÿ…...
crontab 定时任务不执行问题排查
*/5 * * * * sh /data03/jq/sparkjob.sh 定时任务不执行! Cron默认丢弃输出,错误信息无法查看。 将输出和错误重定向到日志文件: /bin/sh /data03/jq/sparkjob.sh >> /tmp/sparkjob.log 2>&1 检查日志文件 /tmp/sparkjob.log 定…...
require/exports 或 import/export的联系和区别,各自的使用场景
以下是 require/exports(CommonJS)与 import/export(ES6 Modules)的对比分析及使用场景说明: 一、核心联系 模块化目标 两者都用于实现代码模块化,解决全局作用域污染和依赖管理问题。 跨环境适配…...
如何更改远程桌面连接的默认端口?附外网访问内网计算机方法
远程连接端口根据协议和场景不同有所差异,以下是常见远程连接端口的设置及修改方法,同时附外网访问内网计算机操作。 一、Windows远程桌面默认端口 默认端口:3389(TCP协议),用于Windows远程桌面服务&…...
模拟jenkins+k8s自动化部署
参考 Jenkins+k8s实现自动化部署 - 掘金 手把手教你用 Jenkins + K8S 打造流水线环境 - 简书 安装插件 调整插件升级站点 (提高插件下载速度) 默认地址 https://updates.jenkins.io/update-center.json 新地址 http://mirror.xmission.com/jenkins/updates/update-center.json …...
Jenkins教程
参考 Jenkins 用户手册 Jenkins User Documentation 在项目创建Jenkinsfile文件 添加分支源 报错 不自动拉取分支,改为手工指定分支 又报了一个错, 解决方法,参考: Jenkins中连接Git仓库时提示:无法连接仓库:Error performing git command: git ls-remote -h_霸道流…...
从验证码绕过到信息轰炸:全面剖析安全隐患与防范策略
在数字化交互场景中,验证码作为区分人类操作与自动化程序的核心屏障,广泛应用于用户身份核验、操作权限确认等关键环节。其设计初衷是通过人机识别机制,保障信息系统交互的安全性与可控性。然而,当验证码验证机制出现异常突破&…...
CSS:颜色的三种表示方式
文章目录 一、rgb和rgba方式二、HEX和HEXA方式(推荐)三、hsl和hsla方式四、颜色名方式 一、rgb和rgba方式 10进制表示方法 二、HEX和HEXA方式(推荐) 就是16进制表示法 三、hsl和hsla方式 语法:hsl(hue, satura…...
math toolkit for real-time development读书笔记一-三角函数快速计算(1)
一、基础知识 根据高中知识我们知道,很多函数都可以用泰勒级数展开。正余弦泰勒级数展开如下: 将其进一步抽象为公式可知: 正弦和余弦的泰勒级数具有高度结构化的模式,可拆解为以下核心特征: 1. 符号交替特性 正弦级…...
超市营业额数据分析
1.推出5名销冠 2.新领导想看看他15天以来的业绩总增长情况,以及增长额前3的柜台 3.把所有柜台的销售额分为3个等级 import pandas as pd import matplotlib.pyplot as plt import numpy as np# 设置中文字体和显示方式 plt.rcParams.update({font.sans-serif&...
labelimg安装及使用指南(yolo)
1.安装 首先要安装Anaconda,然后打开Anaconda Prompt 构建一个新的虚拟环境(注:虚拟环境的python的版本应在3.9及以下,不然会在运行中报错) conda create -n label python3.9 其中这里label只是一个名字,…...
在 Ubuntu 系统中,将 JAR 包安装为服务
在 Ubuntu 系统中,将 JAR 包安装为服务可以通过 systemd 来实现。以下是详细的操作步骤: 准备工作 确保 JAR 文件路径和 Java 运行时环境已准备好。验证 Java 是否可用: java -version创建 systemd 服务文件 systemd 的服务文件通常位于 …...
我的 PDF 工具箱:CodeBuddy 打造 PDFMagician 的全过程记录
我正在参加CodeBuddy「首席试玩官」内容创作大赛,本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 最近,我萌生了一个念头:能不能自己动手做一个功能丰富的 PDF 工具箱?市面上…...
WebSocket聊天室的简单制作指南
一、前言 最近在学习WebSocket技术,做了一个简单的聊天室Demo。这个项目虽然不大,但涵盖了WebSocket的核心功能实现。下面我将详细介绍这个聊天室的实现过程,希望能帮助到同样想学习WebSocket的朋友们。 二、技术选型 后端:Spri…...
非国产算力DeepSeek 部署中的常见问题及解决方案
随着大语言模型(LLM)在企业级应用场景中的快速推进,DeepSeek 一体机凭借其高性能推理能力和便捷的系统集成优势,正逐步成为多行业智能化转型的重要基础设施。然而,在实际部署过程中,技术团队常常会遭遇一系…...
大数据技术的主要方向及其应用详解
文章目录 一、大数据技术概述二、大数据存储与管理方向1. 分布式文件系统2. NoSQL数据库3. 数据仓库技术 三、大数据处理与分析方向1. 批处理技术2. 流处理技术3. 交互式分析4. 图计算技术 四、大数据机器学习方向1. 分布式机器学习2. 深度学习平台3. 自动机器学习(AutoML) 五、…...