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

生成模型速通(Diffusion,VAE,GAN)

基本概念

参考视频https://www.bilibili.com/video/BV1re4y1m7gb/?spm_id_from=333.337.search-card.all.click&vd_source=f04f16dd6fd058b8328c67a3e064abd5

 生成模型其实是主要是依赖概率分布,对输入特征的概率密度函数建模

隐空间(latent space)/隐变量 (hidden vairables)

用a估计c,用c估计b,达到a估计b的目的,c是隐变量

就是embedding, 得到的结果是可以插值的一系列特征,如椅子被压缩的2d向量是[0.4,0.5],桌子是[0.6,0.75],如果要在潜在空间上进行插值,需要对椅子集群和办公桌集群之间的latent space中的点进行采样,采样后的点输入模型解码器,得到的图像就是椅子和桌子之间的变体

基本结构

类似于自编码器auto encoder,encoder:高纬输入编码成低维的隐变量从而强迫神经网络学习最有信息量的特征,decoder:把隐藏层的隐变量,还原到初始维度,最好能还原到和原始数据几乎相同

在生成模型中,encoder来解决概率密度估计问题,对生成的概率分布进行采样,得到隐变量,在把隐变量输入decoder来得到近似真实样本

可以把diffusion想象成去噪自编码器。去噪自编码器结合正则化思想,是在传统自动编码器的基础上,通过向输入中注入噪声,然后利用含噪声的样本去重构不含噪声的输入。模型定义了一个马尔可夫链,用于在扩散步骤中缓慢地向数据添加随机噪声,然后通过学习逆转扩散过程从噪声中构建所需的数据样本。引入的噪声导致了信息的衰减,再通过去噪尝试还原原始数据,这样的多次迭代
能够使模型在给定噪声输入的情况下学习生成新图像。

GAN

之前速通过,见博文:GAN 用于图像增强_gan进行图像增强-CSDN博客

VAE(Variational Autoencoder)

VAE通过变分推断与重参数化技巧,为生成模型提供了概率框架。尽管生成质量不及GAN,但其稳定训练和隐空间解释性优势明显。后续改进模型(如VQ-VAE、NVAE)通过结构优化显著提升了生成能力。

变分下界(ELBO)

通过最大化证据下界近似数据对数似然。

采样x和隐变量z之间的关系

vae缩小Z隐变量的取值空间,通过变分推断求后验概率分布,qzx推断pzx

重参数化技巧

使梯度可通过随机隐变量传播,解决采样不可导问题

隐空间正则化

强制隐变量分布接近标准正态分布(KL散度约束)

vae会过拟合,概率分布是采样出来的,而非通过生成器encoder计算出来的,所以采样变量z里面有噪声,尽可能减小方差,如果方差为0那就是auto encoder,过拟合

优化思路

1.encoder decoder拆分

2. 引入噪声覆盖失真的空白编码区,输入多样性↑,输入鲁棒性↑ 原先离散编码点→整个连续的编码空间

避免过拟合:训练加入正则化

正则化:规范隐空间的组织

采样隐变量

decoder训练效果不好的时候降低噪声,过拟合了增加噪声 

训练数据

无标注数据
图像:MNIST、CIFAR-10、CelebA等。非图像数据:文本、音频、分子结构等。

预处理
图像归一化到[0,1]或[-1,1]。文本需转换为词嵌入或序列编码

 模型结构

训练过程

1.前向过程:
编码器输出q(z|x)的参数μ,σ。
重参数化采样Z。
解码器输出p(xz)的参数。

2.损失计算:
重构损失:如交叉熵(二分类数据)或MSE(连续数据)
KL散度:KL(q(z|x)‖ N(0,I))
总损失:L=重构损失+β*KL散度(β-VAE变体)

3.反向传播:
通过梯度下降同时优化编码器和解码器。

4.生成新样本
从N(0,1)采样z,输入解码器生成x^。

vae vs gan

 改进方法

B-VAE:调整KL项权重(β>1)以提升解耦表示。
·VQ-VAE:引入矢量量化层离散化隐空间。
CVAE:条件VAE,通过额外信息(如类别)控制生成。
·NVAE:层级化隐变量与深度神经网络提升生成质量。

Pros&Cons

代码

import torch
import torch.nn as nn
import torch.nn.functional as Fclass Encoder(nn.Module):def __init__(self, input_dim, hidden_dim, latent_dim):super().__init__()self.fc1 = nn.Linear(input_dim, hidden_dim)self.fc_mu = nn.Linear(hidden_dim, latent_dim)self.fc_logvar = nn.Linear(hidden_dim, latent_dim)def forward(self, x):h = F.relu(self.fc1(x))mu = self.fc_mu(h)logvar = self.fc_logvar(h)return mu, logvarclass Decoder(nn.Module):def __init__(self, latent_dim, hidden_dim, output_dim):super().__init__()self.fc1 = nn.Linear(latent_dim, hidden_dim)self.fc2 = nn.Linear(hidden_dim, output_dim)def forward(self, z):h = F.relu(self.fc1(z))recon = torch.sigmoid(self.fc2(h))return reconclass VAE(nn.Module):def __init__(self, input_dim=784, hidden_dim=400, latent_dim=20):super().__init__()self.encoder = Encoder(input_dim, hidden_dim, latent_dim)self.decoder = Decoder(latent_dim, hidden_dim, input_dim)def reparameterize(self, mu, logvar):std = torch.exp(0.5 * logvar)eps = torch.randn_like(std)return mu + eps * stddef forward(self, x):mu, logvar = self.encoder(x.view(-1, 784))z = self.reparameterize(mu, logvar)recon_x = self.decoder(z)return recon_x, mu, logvar# 训练函数
def train(model, dataloader, optimizer, device):model.train()train_loss = 0for batch_idx, (data, _) in enumerate(dataloader):data = data.to(device)optimizer.zero_grad()recon_batch, mu, logvar = model(data)# 计算重构损失和KL散度BCE = F.binary_cross_entropy(recon_batch, data.view(-1, 784), reduction='sum')KLD = -0.5 * torch.sum(1 + logvar - mu.pow(2) - logvar.exp())loss = BCE + KLDloss.backward()train_loss += loss.item()optimizer.step()return train_loss / len(dataloader.dataset)# 示例调用
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
vae = VAE().to(device)
optimizer = torch.optim.Adam(vae.parameters(), lr=1e-3)# 训练循环
for epoch in range(10):loss = train(vae, train_loader, optimizer, device)print(f'Epoch {epoch}, Loss: {loss:.2f}')# 生成新样本
with torch.no_grad():z = torch.randn(64, 20).to(device)samples = vae.decoder(z).view(64, 1, 28, 28)

Diffusion

生成像GAN的generator一样简单,模型结构跟vae一样精细

https://www.zhihu.com/question/536012286/answer/2588275344

前向过程(加噪)(Forward / Diffusion Process)

数据分布→标准高斯

从真实数据(如图像)逐步加入高斯噪声,最后变成纯高斯分布(白噪声)。

过程是已知的、固定的、高斯的,定义成一系列概率转移

重参数化Reparametrizatio

逆向过程(去噪)(Reverse / Generation Process)

高斯噪声 → 数据

从高斯噪声一步步“去噪”回来,得到真实数据。

形式上类似高斯,但条件分布是未知的,我们要去学习

因为逆过程从高斯分布出发(采样超容易),并且每一步都只是高斯采样 + 神经网络预测,整个生成过程连续、可控、可调。前向过程“逐渐加噪”,逆过程就“逐渐去噪”,变化都非常平滑。这种细粒度的步骤其实降低了建模难度,比一次性生成图像(如GAN)要“温和”很多。

训练目标

SDXL

base 文生图,refiner,图生图

VAE:细节优化

FLUX

效果也很nb

Kolors

UI

WebUI

ComfyUI:RunComfy

Controlnet

reference

id adapter

风格训练:

Stable Diffusion

编码 (Encoding)

将原始图像映射到一个低维的潜在空间(latent space),以便更高效地进行建模。

如果是文本,则用 CLIP 或类似的文本编码器转换为语义向量。

 c=CLIP Text Encoder(text)

如果是图像,通常使用如 VAE(变分自编码器)的 encoder 模块提取特征;

VAE将图像编码到潜在空间:z =VAE Encoder(x)

扩散(Diffusion)

  • 过程

    • 正向过程:在潜空间中逐步添加高斯噪声,模拟图像被破坏。q(zt|zt-1)

    • 反向过程:使用神经网络一步步学习如何从纯噪声还原出原始潜在表示。∈θ(zt,t,c)

  • 模型:使用 UNet 架构 的扩散模型,接受噪声图、时间步(timestep)、和文本条件向量作为输入。

  • 共识:UNet 是目前最主流的扩散预测网络,支持跨尺度的特征提取和条件控制,效果好、可控性强。

调度器:常用如 DDIMPNDM 等采样算法来加速反向过程。

解码(Decoding)

  • 过程:将去噪后的潜在表示Z0重新映射回高分辨率的图像空间。x= VAE_Decoder(z0)

  • 模型:使用与编码器配套的 VAE decoder

  • 共识:VAE decoder 是一个轻量、稳定的图像重建工具,可以恢复细节,提升图像清晰度。

文本引导的 cross-attention 机制

Pros&Cons

from diffusers import StableDiffusionPipeline
import torchmodel_id = "runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to("cuda")prompt = "A futuristic cityscape at sunset"
image = pipe(prompt).images[0]
image.save("output.png")

相关文章:

生成模型速通(Diffusion,VAE,GAN)

基本概念 参考视频https://www.bilibili.com/video/BV1re4y1m7gb/?spm_id_from333.337.search-card.all.click&vd_sourcef04f16dd6fd058b8328c67a3e064abd5 生成模型其实是主要是依赖概率分布,对输入特征的概率密度函数建模 隐空间(latent space)…...

linux/android 如何获取当前系统启动时长

uptime 指令获取 trinket:/ # uptime12:03:31 up 3 min, 0 users, load average: 1.02, 0.68, 0.29...

Elasticsearch客户端工具初探--kibana

1 Kibana简介 Kibana是Elastic Stack(ELK)中的可视化工具,用于对Elasticsearch中存储的数据进行搜索、分析和可视化展示。它提供了直观的Web界面,支持日志分析、业务监控、数据探索等功能,广泛应用于运维监控、安全分析…...

深克隆和浅克隆(建造者模式,内含简版)

让我们来看一个例子: 设计一个客户类Customer,其中客户地址存储在地址类Address中,用浅克隆和深克隆分别实现Customer对象的复制并比较这两种克隆方式的异同。 代码实现 Customer类和Address类都是实现的Java 内置的 java.lang.Cloneable …...

吴恩达机器学习笔记复盘(十二)逻辑回归的梯度下降和拟合问题

梯度下降算法推导过程 一、逻辑回归模型基础 逻辑回归用于二分类问题,其假设函数为sigmoid函数: 其中,是模型参数向量,是特征向量。输出表示样本属于正类的概率。 二、损失函数 逻辑回归的损失函数采用 对数损失(交…...

OSPF五种报文分析(仅部分比较重要的)

OSPF五种报文分别是: hello报文,DBD数据库描述报文,LSR链路状态请求报文,LSU链路状态更新报文,LSACK链路状态确认包 以下是这五种报文的详细解读: 1. Hello报文 作用: 用于邻居的发现、建立和…...

Ubuntu 22.04 二进制安装单节点 MySQL

Ubuntu 22.04 二进制安装 MySQL LTS(长期支持版)完整教程 MySQL LTS 版本选择: 目前 MySQL 8.4.4 是长期支持(LTS)版本,持续更新并保持稳定。 下载版本: 你也可以在 MySQL 官方网站确认最新稳…...

python处理音频相关的库

1 音频信号采集与播放 pyaudio import sys import pyaudio import wave import timeCHUNK 1024 FORMAT pyaudio.paInt16 CHANNELS 1#仅支持单声道 RATE 16000 RECORD_SECONDS 3#更改录音时长#录音函数,生成wav文件 def record(file_name):try:os.close(file_…...

python+ffmpeg给音频添加背景音乐

说明: 我希望用python,将name.mp3这段录音文件,添加背景音乐,bg.mp3,然后生成新的文件 step1: 添加依赖 pip install pydubstep2:下载ffmpeg 1.打开windows powershell ,管理员运行 2.winget install ff…...

《TypeScript 面试八股:高频考点与核心知识点详解》

“你好啊!能把那天没唱的歌再唱给我听吗? ” 前言 因为主包还是主要学习js,ts浅浅的学习了一下,在简历中我也只会写了解,所以我写一些比较基础的八股,如果是想要更深入的八股的话还是建议找别人的。 Ts基…...

鸡生蛋还是蛋生鸡? 基于python的CCM因果关系计算

文章目录 前言一、安装二、代码1.全部代码2.结果展示总结前言 因果推断在科学研究中起着重要的作用,尤其是在复杂系统中,例如生态学、气候学、经济学等领域。在这些领域中,了解变量之间的因果关系可以帮助我们更好地理解系统的动态行为和相互作用。传统的相关性分析并不足以…...

PyBluez2 的详细介绍、安装指南、使用方法及配置说明

PyBluez2:Python 蓝牙开发的核心库 一、PyBluez2 简介 PyBluez2 是 Python 的开源蓝牙编程库,支持蓝牙 2.0、BLE(低功耗蓝牙)和传统蓝牙协议栈的开发。它提供了对蓝牙硬件适配器的底层控制,适用于设备发现、配对、数…...

鸿蒙HarmonyOS NEXT之无感监听

鸿蒙中存在一些无感监听,这些监听经过系统API封装使用很简单,但是对实际业务开发中有很重要,例如埋点业务、数据统计、行为上报、切面拦截等。 Navigation的页面切换 在鸿蒙中Navigation被用来作为路由栈进行页面跳转,如果你想知…...

质检LIMS系统在食品生产加工企业的应用 如何保证食品生产企业的安全

在食品生产加工领域,质量安全是贯穿全产业链的生命线。随着《食品安全法》对全过程追溯要求的深化,传统实验室管理模式已难以满足高效、精准的质量管控需求。质检实验室信息管理系统(LIMS)作为数字化升级的核心工具,正…...

linux中如何获取其他进程的退出状态

进程的退出状态至关重要,用wait系列函数,父进程可以捕捉到子进程的退出状态,若给定任意进程,其父进程已经确定,无法改变,自己如何获取到其退出状态呢。 可以用ptrace系统api attach到相应的进程&#xff0c…...

【android】补充

3.3 常用布局 本节介绍常见的几种布局用法,包括在某个方向上顺序排列的线性布局,参照其他视图的位置相对排列的相对布局,像表格那样分行分列显示的网格布局,以及支持通过滑动操作拉出更多内容的滚动视图。 3.3.1 线性布局Linea…...

Unix Domain Socket、IPC、RPC与gRPC的深度解析与实战

Unix Domain Socket、IPC、RPC与gRPC的深度解析与实战 引言 在分布式系统和本地服务通信中,进程间通信(IPC)与远程过程调用(RPC)是核心能力。本文将深入剖析 Unix Domain Socket(UDS)、IPC、RP…...

从 MySQL 到时序数据库 TDengine:Zendure 如何实现高效储能数据管理?

小T导读:TDengine 助力广州疆海科技有限公司高效完成储能业务的数据分析任务,轻松应对海量功率、电能及输入输出数据的实时统计与分析,并以接近 1 : 20 的数据文件压缩率大幅降低存储成本。此外,taosX 强大的 transform 功能帮助用…...

华为OD机试A卷 - 积木最远距离(C++ Java JavaScript Python )

最新华为OD机试 真题目录:点击查看目录 华为OD面试真题精选:点击立即查看 题目描述 小华和小薇一起通过玩积木游戏学习数学。 他们有很多积木,每个积木块上都有一个数字,积木块上的数字可能相同。 小华随机拿一些积木挨着排成一排,请小薇找到这排积木中数字相同且所处…...

Zerotier虚拟局域网在树莓派的应用和Syncthing配合Zerotier实现端到端文件同步

一、Zerotier的部署 1、官网注册账号 https://my.zerotier.com/i 2、选择linux系统,执行安装Zerotier curl -s https://install.zerotier.com | sudo bash3、将树莓派网络加入Zerotier zerotier-cli join DB62228FEDF6CE55DB62228FEDF6CE55 为你的Zerotier IP 需…...

C++设计模式-桥梁模式:从基本介绍,内部原理、应用场景、使用方法,常见问题和解决方案进行深度解析

一、桥梁模式基本介绍 桥梁模式(Bridge Pattern)是一种结构型设计模式,又叫桥接模式,其核心思想是将抽象部分与实现部分分离,使它们可以独立变化。这种模式通过组合代替继承,有效解决了多层继承导致的类爆…...

系统转换、系统维护、净室软件工程、构件软件工程(高软51)

系列文章目录 系统转换、系统维护、净室软件工程、构件软件工程 文章目录 系列文章目录前言一、系统转换二、系统维护三、净室软件工程四、基于构件的软件工程总结 前言 本节讲明遗留系统的系统转换、系统维护、净室软件工程、基于构件软件工程相关知识。 一、系统转换 就是讲…...

自然语言处理(13:RNN的实现)

系列文章目录 第一章 1:同义词词典和基于计数方法语料库预处理 第一章 2:基于计数方法的分布式表示和假设,共现矩阵,向量相似度 第一章 3:基于计数方法的改进以及总结 第二章 1:word2vec 第二章 2:word2vec和CBOW模型的初步实现 第二章 3:CBOW模型…...

Docker镜像迁移方案

Docker镜像迁移方案 文章目录 Docker镜像迁移方案一:背景二:操作方式三:异常原因参考: 一:背景 比如机器上已经有先有的容器,但是docker pull的时候是失败的二:操作方式 1、停止正在运行的容器…...

深度学习框架PyTorch——从入门到精通(10)PyTorch张量简介

这部分是 PyTorch介绍——YouTube系列的内容,每一节都对应一个youtube视频。(可能跟之前的有一定的重复) 创建张量随机张量和种子张量形状张量数据类型 使用PyTorch张量进行数学与逻辑运算简单介绍——张量广播关于张量更多的数学操作原地修改…...

Springboot 集成 Flowable 6.8.0

1. 创建 Spring Boot 项目 通过 Spring Initializr(https://start.spring.io/ )创建一个基础的 Spring Boot 项目,添加以下依赖: Spring WebSpring Data JPAMySQL DriverLombok(可选,用于简化代码&#x…...

Vue3 项目通过 docxtemplater 插件动态渲染 .docx 文档(带图片)预览,并导出

Vue3 项目通过 docxtemplater 插件动态渲染 .docx 文档(带图片)预览,并导出 预览安装插件示例代码项目目录结构截图实际效果截图 动态渲染 .docx 文档(带图片),预览、导出安装插件docx 模板文件内容完整代码…...

实验一、Linux环境下实现进度条小程序:深入解析核心实现与关键技术细节

目录 引言:为什么需要进度条?环境准备与项目结构分析原理剖析:从终端输出到动态刷新代码逐行解析(附完整代码) 4.1 头文件与宏定义4.2 进度条的动态构建逻辑4.3 关键转义字符:\r与\n的深度对比4.4 缓冲机制…...

生活电子常识——cmd不能使用anaconda的python环境,导致输入python打开应用商店

前言 电脑已经安装了anaconda,从自带的Anaconda Prompt (Anaconda3)中是可以识别python环境的,然而切换到cmd时,突然发现cmd中无法识别anaconda的python环境,竟然打开了应用商店让我安装Python,这当然是不对的。 解决 这是因为…...

TypeScript中的声明合并:与JavaScript的对比与实践指南

引言 在大型项目开发中,代码的可维护性和可扩展性至关重要。TypeScript作为JavaScript的超集,通过静态类型系统带来了更强大的代码组织能力。其中声明合并(Declaration Merging) 是TypeScript独有的重要特性,本文将深…...

数据结构初阶-二叉树链式

目录 1.概念与结构 2.二叉数链式的实现 2.1遍历规则 2.2申请内存空间 2.3手动构建一棵二叉树 2.4二叉树结点的个数 2.5二叉树叶子结点的个数 2.6二叉树第K层结点个数 2.7二叉树的高度 2.8二叉树中查找值为x的结点 2.9二叉树的销毁 3.层序遍历 3.1概念 3.2层序遍历…...

2024年认证杯SPSSPRO杯数学建模B题(第二阶段)神经外科手术的定位与导航全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 B题 神经外科手术的定位与导航 原题再现: 人的大脑结构非常复杂,内部交织密布着神经和血管,所以在大脑内做手术具有非常高的精细和复杂程度。例如神经外科的肿瘤切除手术或血肿清除手术,通常需要…...

Linux程序性能分析

为什么程序会慢? 在深入工具和方法之前,我们先来聊聊为什么程序会慢。一个程序主要在三个方面消耗资源: CPU时间 - 计算太多、算法效率低 内存使用 - 内存泄漏、频繁申请释放内存 I/O操作 - 文件读写、网络通信太频繁 今天我们主要聚焦C…...

【开题报告+论文+源码】基于SpringBoot的智能安全与急救知识科普系统设计与实现

项目背景与意义 在全球范围内,安全与急救知识的普及已成为提升公众安全素养、减少意外伤害发生率、提高突发事件应对能力的重要举措。尤其是在当今社会,人们面临的生活、工作环境日益复杂,交通事故、火灾、溺水、突发疾病等各种意外事件的发生…...

Linux shift 命令使用详解

简介 在 Bash 脚本中,shift 命令用于将命令行参数向左移动,有效地丢弃第一个参数并将其他参数向下移动。 基础语法 shift [N]N(可选)→ 要移动的位置数。默认值为 1 示例用法 移动参数 #!/bin/bash echo "Before shift…...

【C++网络编程】第5篇:UDP与广播通信

一、UDP协议核心特性 1. UDP vs TCP ​特性 ​UDP​TCP连接方式无连接面向连接(三次握手)可靠性不保证数据到达或顺序可靠传输(超时重传、顺序控制)传输效率低延迟,高吞吐相对较低(因握手和确认机制&…...

C++11QT复习 (五)

文章目录 **Day6-2 成员访问运算符重载(2025.03.25)****1. 复习****2. 成员访问运算符重载****2.1 箭头运算符 (->) 重载****(1) 语法** **2.2 解引用运算符 (*) 重载****(1) 语法** **3. 代码分析****3.1 代码结构****3.2 代码解析****(1) Data 类**…...

Python项目-基于Python的网络爬虫与数据可视化系统

1. 项目简介 在当今数据驱动的时代,网络爬虫和数据可视化已成为获取、分析和展示信息的重要工具。本文将详细介绍如何使用Python构建一个完整的网络爬虫与数据可视化系统,该系统能够自动从互联网收集数据,进行处理分析,并通过直观…...

SpringCloud Zuul 使用教程

SpringCloud Zuul 使用教程 目录 Zuul 简介环境准备搭建 Zuul 网关 • 3.1 Maven 依赖 • 3.2 配置文件 • 3.3 启动类注解基本路由配置 • 4.1 简单路由 • 4.2 基于路径的路由 • 4.3 基于服务的路由Zuul 高级配置 • 5.1 过滤器配置 • 5.2 限流与熔断 • 5.3 负载均衡 •…...

介绍一款基于MinerU的PDF翻译工具

一。简介 Fast pdf translate是一款pdf翻译软件,基于MinerU实现pdf转markdown的功能,接着对markdown进行分割, 送给大模型翻译,最后组装翻译结果并由pypandoc生成结果pdf。 git地址: https://github.com/kv1830/fast…...

轻量级TLS反向代理工具TLS-reverse-proxy:打造安全通信桥梁

在数字化浪潮席卷全球的今天,数据隐私与传输安全已成为企业及个人的核心关切。TLS(传输层安全协议)作为互联网通信的"隐形卫士",承担着保护数据在传输过程中不被窃取或篡改的重要使命。然而,对于许多传统服务…...

SQL问题分析与诊断(8)——前提

8.1. 前提 与其他关系库类似,SQL Server中,当我们对存在性能问题的SQL语句进行分析和诊断时,除了获取该SQL语句本身外,还需要获取SQL语句相应的查询计划及其相关的数据环境。这里,所谓数据环境,具体是指SQ…...

关于cmd中出现无法识别某某指令的问题

今天来解决以下这个比较常见的问题,安装各种软件都可能会发生,一般是安装时没勾选注册环境变量,导致cmd无法识别该指令。例如mysql,git等,一般初学者可能不太清楚。 解决这类问题最主要的是了解环境变量的概念&#x…...

如何处理不同输入类型(例如邮箱、电话号码)的验证?

处理不同输入类型(如邮箱、电话号码)的验证可以通过多种方法实现,包括使用 HTML5 内置验证、JavaScript/jQuery 自定义验证和正则表达式。以下是一些常用的验证方法和示例。 1. 使用 HTML5 内置验证 HTML5 提供了一些内置的输入类型,可以自动处理基本的验证。 示例 <…...

Redis集群哨兵相关面试题

目录 1.Redis 主从复制的实现原理是什么? 详解 补充增量同步 replication buffer repl backlog buffer 2.Redis 主从复制的常见拓扑结构有哪些? 3.Redis 复制延迟的常见原因有哪些? 4.Redis 的哨兵机制是什么? 主观下线和客观下线 哨兵leader如何选出来的&#x…...

【CXX-Qt】4.1 extern “RustQt“

QObjects Properties Methods Signals #[cxx_qt::bridge] mod ffi {extern "RustQt" {} }extern “RustQt” 部分是 CXX-Qt 桥接的核心&#xff0c;用于声明 Rust 类型和签名&#xff0c;使其可用于 Qt 和 C。 CXX-Qt 代码生成器使用你的 extern “RustQt” 部…...

当 0 编程基础,用 ChatGPT 和 Cursor 开发同一应用时… |AI 开发初体验

求人不如求己。 事情是这样的&#xff0c;前段时间&#xff0c;我看了本书&#xff0c;书里介绍了款应用&#xff0c;能计算财富自由价格&#xff0c;还能制定退休计划。 结果&#xff0c;我迫不及待去下载这个应用时&#xff0c;发现这应用功能残缺&#xff0c;完全不可用。 …...

如何排查C++程序的CPU占用过高的问题

文章目录 可能的原因程序设计的BUG系统资源问题恶意软件硬件问题 通常步骤一个简单的问题代码在windows平台上如何排查Windows Process ExplorerWinDBG 在Linux平台如何排查使用TOP GDBPerf 可能的原因 程序设计的BUG 有死循环低效算法与数据结构滥用自旋锁频繁的系统调用&a…...

数据库练习

完善t_hero表 -- 添加作者字段 alter table t_hero add author varchar(100);-- 更新数据update t_hero set author "曹雪芹" where id 1; update t_hero set author "曹雪芹" where id 2; update t_hero set author "曹雪芹" where id…...

nodejs-原型污染链

还是老规矩&#xff0c;边写边学&#xff0c;先分享两篇文章 深入理解 JavaScript Prototype 污染攻击 | 离别歌 《JavaScript百炼成仙》 全书知识点整理-CSDN博客 Ctfshow web入门 nodejs篇 web334-web344_web334 ctfshow-CSDN博客 334-js审计 var express require(expr…...