跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

5 种生成模型(VAE、GAN、AR、Flow 和 Diffusion)对比与代码实现

综述由AI生成对比了五种深度生成模型:VAE、GAN、AR、Flow 和 Diffusion。VAE 基于变分推断,训练稳定但图像较模糊;GAN 通过对抗训练生成逼真样本,但训练不稳定;AR 利用自回归预测序列,适合文本但速度慢;Flow 通过可逆变换实现精确密度估计;Diffusion 通过去噪过程生成高质量数据。文章提供了各模型的原理、损失函数分析及 PyTorch 代码实现,并总结了优缺点及适用场景,为深度学习生成任务提供参考。

雪落无声发布于 2026/4/5更新于 2026/5/2123 浏览
5 种生成模型(VAE、GAN、AR、Flow 和 Diffusion)对比与代码实现

深度生成模型概述

深度生成模型是一类强大的机器学习工具,它可以从输入数据学习其潜在的分布,进而生成与训练数据相似的新的样本数据,它在计算机视觉、密度估计、自然语言和语音识别等领域得到成功应用,并为无监督学习提供了良好的范式。

Image

本文汇总了常用的深度学习模型,深入介绍其原理及应用:VAE(变分自编码器)、GAN(生成对抗网络)、AR(自回归模型 如 Transformer)、Flow(流模型)和 Diffusion(扩散模型)

模型核心目标原理优点缺点应用场景
VAE学习潜在空间分布,编码器 - 解码器生成与训练数据相似的样本基于变分推断,将输入数据映射到潜在空间的正态分布,解码器重构数据,优化重构误差与 KL 散度训练稳定,支持潜在空间插值;生成样本多样化生成图像模糊;KL 散度约束可能导致信息丢失数据填充、特征提取、图像修复
GAN通过生成器与判别器的对抗训练,生成与真实数据难分的样本生成器从噪声生成假数据,判别器区分真假;两者通过零和博弈优化,最终达到纳什均衡生成图像细节丰富;单步推理速度快训练不稳定;生成多样性不足;需精细调参艺术创作、风格迁移、图像超分辨率
AR自回归地生成序列数据,逐个预测下一个元素的概率分布基于条件概率分解(如 Transformer),自注意力机制捕捉长程依赖,逐像素/逐 token 生成数据建模能力强,支持长序列生成;训练稳定生成速度慢 (逐步采样);高维数据计算成本高文本生成、时序预测、图像生成
Flow可逆变换将简单分布转为复杂数据分布,实现精确概率密度估计设计可逆神经网络层,利用变量变换公式计算数据对数似然,优化雅可比行列式。支持精确密度估计;生成与重建可逆高维数据下变换设计复杂;计算雅可比行列式开销大语音合成、密度估计、图像生成
Diffusion通过逐步去噪过程从高斯噪声重建数据分布,生成高质量样本正向扩散(逐步加噪)与逆向扩散(学习去噪)结合,基于马尔可夫链建模条件概率生成质量最高;训练稳定推理速度慢;显存占用高高清图像生成、多模态/视频生成

1 变分自编码器(VAE)

1.1 概念

VAE 是在自编码器(Auto-Encoder)的基础上,结合变分推断(Variational Inference)和贝叶斯理论提出的一种深度生成模型。VAE 的目标是学习一个能够生成与训练数据相似样本的模型。它假设隐变量服从某种先验分布(如标准正态分布),并通过编码器将输入数据映射到隐变量的后验分布,再通过解码器将隐变量还原成生成样本。

Image

1.2 训练损失

VAE 的训练损失函数包括重构损失(如均方误差)和 KL 散度(衡量潜在分布与标准正态分布的差异)

损失函数:

Image

  • 重构项:衡量解码器重建输入数据的能力(如均方误差或交叉熵)
  • KL 散度项:约束潜在分布 q(z|x) 与先验分布 p(z)(通常为标准正态分布)的相似性,平衡参数为 β(如 β-VAE)

优化目标:最大化证据下界(ELBO),同时保证潜在空间的结构化和连续性

1.3 VAE 的实现

import torch
import torch.nn as nn
import torch.nn.functional as F

class VAE(nn.Module):
    def __init__(self, input_dim=784, hidden_dim=400, latent_dim=20):
        super(VAE, self).__init__()
        # 编码器:输入 → 隐藏层 → 均值和方差
        self.encoder = nn.Sequential(
            nn.Linear(input_dim, hidden_dim),
            nn.ReLU(),
            nn.Linear(hidden_dim, latent_dim * 2) # 输出均值和对数方差
        )
        # 解码器:潜在变量 → 隐藏层 → 重构输入
        self.decoder = nn.Sequential(
            nn.Linear(latent_dim, hidden_dim),
            nn.ReLU(),
            nn.Linear(hidden_dim, input_dim),
            nn.Sigmoid() # 输出像素值在 [0,1] 区间
        )

    def reparameterize(self, mu, log_var):
        """重参数化技巧:从 N(μ, σ²) 采样潜在变量 z"""
        std = torch.exp(0.5 * log_var) # 计算标准差
        eps = torch.randn_like(std) # 生成随机噪声
        return mu + eps * std # 返回采样结果

    def forward(self, x):
        # 编码:x → μ和 logσ²
        h = self.encoder(x)
        mu, log_var = torch.chunk(h, 2, dim=1) # 分割为均值和方差
        # 采样潜在变量 z
        z = self.reparameterize(mu, log_var)
        # 解码:z → 重构 x
        x_recon = self.decoder(z)
        return x_recon, mu, log_var

    # 损失函数:重构损失 + KL 散度
    def loss_function(x_recon, x, mu, log_var):
        recon_loss = F.binary_cross_entropy(x_recon, x, reduction='sum') # 重构损失(交叉熵)
        kl_div = -0.5 * torch.sum(1 + log_var - mu.pow(2) - log_var.exp()) # KL 散度
        return recon_loss + kl_div

2 生成对抗网络(GAN)

2.1 概念

GAN 由两部分组成:**生成器(Generator)**和 判别器(Discriminator)

  • 生成器的任务是生成尽可能接近真实数据的假数据
  • 判别器的任务是区分输入数据是真实数据还是生成器生成的假数据
  • 二者通过相互竞争与对抗,共同进化,最终生成器能够生成非常接近真实数据的样本

Image

训练过程:

  1. 判别器接受真实数据和生成器生成的假数据,进行二分类训练,优化其判断真实或生成数据的能力
  2. 生成器根据判别器的反馈,尝试生成更加真实的假数据以欺骗判别器
  3. 交替训练判别器和生成器,直到判别器无法区分真实和生成数据,或达到预设的训练轮数

2.2 训练损失

a. 判别器的损失函数
  • 判别器的目标是最大化正确判断的概率:
    • 真实样本:输出 1(正确识别为真)。
    • 生成样本:输出 0(正确识别为假)。
  • 数学表达:

Image

  • 直观解释:判别器的损失是两部分交叉熵的总和:
    1. 对真实样本判断错误的惩罚(希望 log D (x) 尽可能大,所以取负号)。
    2. 对生成样本判断错误的惩罚(希望 log (1-D (G (z))) 尽可能大,同样取负号)。
b. 生成器的损失函数
  • 生成器的目标是让判别器误判生成样本为真:
    • 生成样本:让判别器输出 1(即让 D (G (z)) 趋近于 1)。
  • 数学表达:

Image

  • 直观解释:生成器的损失是判别器误判生成样本的惩罚(希望 log D (G (z)) 尽可能大,所以取负号)。
c. 对抗训练的动态过程
  1. 第一轮训练:
    • 生成器随机生成低质量样本(如模糊的人脸)。
    • 判别器轻松识别真伪,损失很低(因为正确判断了大部分样本)。
    • 生成器的损失很高(因为判别器几乎都识别为假)。
  2. 第二轮训练:
    • 生成器改进造假技术(如生成更清晰的人脸)。
    • 判别器被'迷惑',损失上升(因为部分生成样本被误判为真)。
    • 生成器的损失下降(因为判别器误判增多)。
  3. 最终平衡:
    • 生成器能生成足以以假乱真的样本。
    • 判别器无法准确区分真伪,损失趋近于理论下限(交叉熵为 log (0.5))。

2.3 GAN 的实现

class Generator(nn.Module):
    """生成器:从噪声生成图像"""
    def __init__(self, noise_dim=100, output_dim=784):
        super(Generator, self).__init__()
        self.model = nn.Sequential(
            nn.Linear(noise_dim, 256),
            nn.ReLU(),
            nn.Linear(256, 512),
            nn.ReLU(),
            nn.Linear(512, output_dim),
            nn.Tanh() # 输出范围 [-1,1],需在数据预处理时归一化
        )
    def forward(self, z):
        return self.model(z).view(-1, 1, 28, 28) # 输出形状为 (B, 1, 28, 28)

class Discriminator(nn.Module):
    """判别器:区分真实图像与生成图像"""
    def __init__(self, input_dim=784):
        super(Discriminator, self).__init__()
        self.model = nn.Sequential(
            nn.Linear(input_dim, 512),
            nn.LeakyReLU(0.2),
            nn.Linear(512, 256),
            nn.LeakyReLU(0.2),
            nn.Linear(256, 1),
            nn.Sigmoid() # 输出概率值
        )
    def forward(self, x):
        x = x.view(-1, 784) # 展平输入
        return self.model(x)

# 训练循环示例(简化版)
def train_gan():
    G = Generator()
    D = Discriminator()
    criterion = nn.BCELoss() # 交替优化生成器和判别器
    for real_images, _ in dataloader:
        # 训练判别器
        real_labels = torch.ones(real_images.size(0), 1)
        fake_labels = torch.zeros(real_images.size(0), 1)
        # 判别器对真实图像的损失
        real_loss = criterion(D(real_images), real_labels)
        # 生成假图像并计算判别器损失
        z = torch.randn(real_images.size(0), 100)
        fake_images = G(z)
        fake_loss = criterion(D(fake_images.detach()), fake_labels)
        d_loss = real_loss + fake_loss
        # 反向传播更新判别器
        d_loss.backward()
        optimizer_D.step()
        # 训练生成器
        g_loss = criterion(D(fake_images), real_labels) # 欺骗判别器
        g_loss.backward()
        optimizer_G.step()

3 自回归模型(AR)

3.1 概念

算法原理:自回归模型是一种基于序列数据的生成模型,它通过预测序列中下一个元素的值来生成数据。给定一个序列 (x_1, x_2, ..., x_n),自回归模型试图学习条件概率分布 P(x_t | x_{t-1}, ..., x_1),其中 t 表示序列的当前位置。AR 模型可以通过**循环神经网络(RNN)**或 Transformer 等结构实现。

如下以 Transformer 为例解析。

在深度学习的早期阶段,卷积神经网络(CNN)在图像识别和自然语言处理领域取得了显著的成功。然而,随着任务复杂度的增加,序列到序列(Seq2Seq)模型和循环神经网络(RNN)成为处理序列数据的常用方法。尽管 RNN 及其变体在某些任务上表现良好,但它们在处理长序列时容易遇到梯度消失和模型退化问题。为了解决这些问题,Transformer 模型被提出。而后的GPT、Bert等大模型都是基于 Transformer 实现了卓越的性能!

Image

3.2 训练过程

a. 核心思想:用历史预测未来

自回归模型的核心是根据过去的输出预测未来的输出。例如:

  • 语言模型:根据'今天天气'预测下一个词'很'或'热'。
  • 时间序列预测:根据过去 10 天的股价预测第 11 天的股价。

Transformer 作为自回归模型:它通过注意力机制捕捉序列中每个位置与之前所有位置的依赖关系,最终输出每个位置的预测概率分布。

b. Transformer 的损失计算:交叉熵监督预测
  • 输入与输出的关系
    • 输入序列:例如句子'我喜欢'。
    • 目标序列:将输入右移一位,得到'喜欢天'(假设任务是补全句子)。
    • 模型目标:对每个位置,预测下一个词的概率分布。
  • 损失函数的数学表达

Image

  • 直观解释:交叉熵损失衡量模型预测的概率分布与真实标签的差异。例如:若真实词是'天',而模型预测'天'的概率为 0.8,则贡献的损失是 -log(0.8) ≈ 0.223。
c. 损失计算的具体步骤
  • (1) 嵌入与位置编码
    • 将输入词(如'我''喜''欢')转换为向量,并添加位置信息。
  • (2) 因果掩码(Causal Masking)
    • 在自注意力计算时,屏蔽未来信息。例如:预测'欢'时,只能看到'我'和'喜',看不到'天'。
  • (3) 多头注意力与前馈网络
    • 通过注意力机制整合历史信息,生成每个位置的预测向量。
  • (4) 输出层与概率分布
    • 将预测向量映射到词表的概率分布(如 10000 个词的 softmax 输出)。
  • (5) 计算损失
    • 对比每个位置的预测概率与真实词的 one-hot 编码,累加交叉熵。

3.2 代码实现(Transformer-AR)

class TransformerAR(nn.Module):
    """基于 Transformer 的自回归图像生成模型(Pixel Transformer)"""
    def __init__(self, vocab_size=256, embed_dim=128, num_heads=4, num_layers=3):
        super(TransformerAR, self).__init__()
        # 输入:图像展平为序列(如 28x28 → 784 像素)
        self.embedding = nn.Embedding(vocab_size, embed_dim)
        self.positional_enc = nn.Parameter(torch.randn(784, embed_dim)) # 位置编码
        # Transformer 编码器(仅解码模式)
        encoder_layer = nn.TransformerEncoderLayer(
            d_model=embed_dim,
            nhead=num_heads,
            dim_feedforward=512
        )
        self.transformer = nn.TransformerEncoder(encoder_layer, num_layers)
        # 输出层:预测每个像素的概率分布
        self.fc = nn.Linear(embed_dim, vocab_size)

    def forward(self, x):
        # x 形状:(B, seq_len) 每个位置是像素值(0-255)
        x = self.embedding(x) + self.positional_enc # 嵌入 + 位置编码
        # 自注意力掩码(防止看到未来信息)
        mask = torch.triu(torch.ones(784, 784), diagonal=1).bool()
        # Transformer 处理
        out = self.transformer(x, mask=mask)
        # 预测每个像素的分布
        logits = self.fc(out)
        return logits

    # 生成示例(逐像素生成)
    def generate(self, start_token, max_len=784):
        generated = start_token
        for _ in range(max_len):
            logits = self(generated)
            next_pixel = torch.multinomial(F.softmax(logits[:, -1, :], dim=-1), 1)
            generated = torch.cat([generated, next_pixel], dim=1)
        return generated

4 流模型(Flow)

4.1 概念

算法原理:流模型是一种基于可逆变换的深度生成模型。它通过一系列可逆的变换,将简单分布(如均匀分布或正态分布)转换为复杂的数据分布。

Image

核心思想:用'可逆魔法'转换分布 流模型就像一个'数据变形大师',它的核心是可逆变换。想象你有一团标准形状的橡皮泥(简单分布,如正态分布),通过一系列可逆向操作的手法(比如拉伸、折叠,但随时能恢复原状),把它捏成跟真实数据(如图像、语音)分布一样复杂的形状。这种'既能变形,又能变回去'的特性,就是流模型的关键 —— 通过可逆函数,让简单分布'流动'成复杂数据分布。

**生成过程类比:**假设真实数据是'猫咪图片'的分布,流模型先从简单的正态分布中采样一个向量 z(像随机选一块标准形状的橡皮泥),然后通过生成器 G 的一系列可逆变换(比如调整颜色、轮廓等操作),把 z 变成一张猫咪图片 x。因为变换可逆,未来也能通过反向操作,从猫咪图片还原出最初的 z。

4.2 训练过程

这里直接放图中损失函数的解读

Image

Image

4.2 代码实现(Flow)

class FlowModel(nn.Module):
    """基于 RealNVP 的可逆流模型"""
    def __init__(self, input_dim=784, hidden_dim=512):
        super(FlowModel, self).__init__()
        # 定义可逆变换的参数网络
        self.scale_net = nn.Sequential(
            nn.Linear(input_dim//2, hidden_dim),
            nn.ReLU(),
            nn.Linear(hidden_dim, input_dim//2)
        )
        self.shift_net = nn.Sequential(
            nn.Linear(input_dim//2, hidden_dim),
            nn.ReLU(),
            nn.Linear(hidden_dim, input_dim//2)
        )

    def forward(self, x):
        # 分割输入为两部分(x1 和 x2)
        x1, x2 = x.chunk(2, dim=1)
        # 计算缩放和偏移参数
        s = self.scale_net(x1)
        t = self.shift_net(x1)
        # 变换 x2
        z2 = x2 * torch.exp(s) + t
        # 合并结果并计算对数行列式
        z = torch.cat([x1, z2], dim=1)
        log_det = s.sum(dim=1) # 行列式的对数
        return z, log_det

    def inverse(self, z):
        # 逆变换:从潜在变量恢复输入
        z1, z2 = z.chunk(2, dim=1)
        s = self.scale_net(z1)
        t = self.shift_net(z1)
        x2 = (z2 - t) * torch.exp(-s)
        x = torch.cat([z1, x2], dim=1)
        return x

    # 损失函数:负对数似然
    def flow_loss(z, log_det):
        prior_logprob = -0.5 * (z ** 2).sum(dim=1) # 标准高斯先验
        return (-prior_logprob - log_det).mean()

5 扩散模型(Diffusion)

5.1 概念

Diffusion Model(扩散模型)是一类深度生成模型,它的灵感来源于物理学中的扩散过程。与传统的生成模型(如 VAE、GAN)不同,Diffusion Model 通过模拟数据从随机噪声逐渐扩散到目标数据的过程来生成数据。这种模型在图像生成、文本生成和音频生成等领域都有出色的表现。

DDPM [NeurIPS 2020] 作为扩散模型的开山之作,证明了不用像 VAE 那样学方差,只学个均值,就能有很好的图像生成效果。

扩散模型也可以被认为像 AR,VAE 那样的传统的编码器->解码器结构,但有所不同:

  • 传统的编码器会将特征图逐渐压缩到通道里,而扩散模型每个时间步输出的特征图大小一致
  • 传统的编码器的每一层都是独立学习的,而扩散模型则是每个时间步都用同一套 U-Net,且共享参数,有点像 RNN,不断循环

Image

DDPM [NeurIPS 2020] 中用到的 U-Net

a. 核心思想:模拟'破坏 - 修复'的物理过程

  • 扩散模型的灵感来自物理扩散现象,比如墨水滴入水中逐渐扩散
  • 它把这个过程用在数据生成里,分两个阶段:
    • 正向扩散(破坏 - 无可学习参数):给干净数据(如图像)逐步加噪声,让数据从清晰变模糊,最后接近纯噪声(类似照片被雨水慢慢冲毁)
    • 反向扩散(修复 - 可学习的 U-Net):从纯噪声出发,一步步去除噪声,恢复成清晰数据(类似修复老照片)通过学习这个过程,模型就能掌握数据的生成规律

b. 与其他模型的区别

  • 传统生成模型(如 VAE、GAN)直接学习生成数据,而扩散模型像'数据侦探',通过拆解'数据如何被噪声破坏'的过程,反向学会'如何从噪声还原数据',生成的内容往往更细腻真实

5.2 训练过程

Image

Image

图中损失函数的核心是衡量'预测噪声'与'真实噪声'的差距,常用均方误差(MSE):

逻辑:在正向扩散中,模型知道每个时间步加了多少真实噪声(正向加噪声过程无可学习参数,纯数学加噪声)。训练时,(可学习的)U-net 根据带噪样本预测噪声,损失函数要求预测值尽可能接近真实噪声。就像教孩子'找不同',每次对比预测结果和真实答案,错得越多,损失越大,模型就会调整参数减少错误。作用:通过最小化损失,U-net 学会分析带噪数据的特征,最终在反向扩散时,能用预测的噪声逐步还原出清晰数据。

5.2 代码实现(Diffusion)

class DiffusionModel(nn.Module):
    """基于 UNet 的扩散模型"""
    def __init__(self, image_size=28, channels=1):
        super(DiffusionModel, self).__init__()
        # 定义噪声预测网络(简化版 UNet)
        self.net = nn.Sequential(
            nn.Conv2d(channels, 64, 3, padding=1),
            nn.ReLU(),
            nn.Conv2d(64, 64, 3, padding=1),
            nn.ReLU(),
            nn.Conv2d(64, channels, 3, padding=1)
        )
        # 噪声调度参数
        self.num_steps = 1000
        self.betas = torch.linspace(1e-4, 0.02, self.num_steps)
        self.alphas = 1 - self.betas
        self.alpha_bars = torch.cumprod(self.alphas, dim=0)

    def forward(self, x, t):
        """预测噪声ε"""
        return self.net(x)

    def train_step(self, x0):
        # 随机选择时间步 t
        t = torch.randint(0, self.num_steps, (x0.size(0),))
        # 计算加噪后的 xt
        sqrt_alpha_bar = torch.sqrt(self.alpha_bars[t]).view(-1, 1, 1, 1)
        sqrt_one_minus_alpha_bar = torch.sqrt(1 - self.alpha_bars[t]).view(-1, 1, 1, 1)
        epsilon = torch.randn_like(x0)
        xt = sqrt_alpha_bar * x0 + sqrt_one_minus_alpha_bar * epsilon
        # 预测噪声并计算损失
        epsilon_pred = self(xt, t)
        loss = F.mse_loss(epsilon_pred, epsilon)
        return loss

    def sample(self, num_samples=16):
        """从噪声逐步生成图像"""
        xt = torch.randn(num_samples, 1, 28, 28)
        for t in reversed(range(self.num_steps)):
            # 逐步去噪
            epsilon_pred = self(xt, t)
            xt = (xt - self.betas[t] * epsilon_pred) / torch.sqrt(self.alphas[t])
            if t > 0:
                xt += torch.sqrt(self.betas[t]) * torch.randn_like(xt)
        return xt

6 小结

最后,简单回顾一下已经简单介绍过的 5 种常见的深度学习模型:

VAE(变分自编码器)、GAN(生成对抗网络)、AR(自回归模型 如 Transformer)、Flow(流模型)和 Diffusion(扩散模型)

我们可以看到不同模型的优缺点和适用场景:

  • VAE和GAN是两种常用的深度生成模型,分别基于贝叶斯概率理论和对抗训练来生成样本
  • AR模型则适用于处理具有时序依赖关系的数据,如序列数据
  • Flow模型和Diffusion模型在生成样本上具有较好的稳定性和多样性,但需要较高的计算成本

最后提供一些潜在的问题和方法:

研究方向核心问题技术路径典型应用场景
混合架构融合单一模型难以兼顾生成质量与推理速度• Diffusion-GAN 混合(扩散模型生成质量+GAN 推理速度)
• VAE-Transformer(压缩编码 + 序列建模)
• 流模型与自回归模型联立训练• 高保真图像实时生成
• 长视频时序一致性优化
轻量化大模型部署资源消耗过高• 知识蒸馏(教师 - 学生模型迁移)
• 隐式神经表示(INR 参数化生成)
• 稀疏注意力机制与量化压缩• 移动端 AI 绘图 APP
• 边缘计算设备实时生成
物理约束嵌入生成内容违反现实物理规律• 刚体动力学方程约束(牛顿力学 + 生成器)
• 流体力学 PDE 求解器集成
• 符号逻辑引导的潜在空间优化• 科学模拟(气象/材料)
• 机器人训练环境生成

目录

  1. 1 变分自编码器(VAE)
  2. 1.1 概念
  3. 1.2 训练损失
  4. 1.3 VAE 的实现
  5. 2 生成对抗网络(GAN)
  6. 2.1 概念
  7. 2.2 训练损失
  8. a. 判别器的损失函数
  9. b. 生成器的损失函数
  10. c. 对抗训练的动态过程
  11. 2.3 GAN 的实现
  12. 训练循环示例(简化版)
  13. 3 自回归模型(AR)
  14. 3.1 概念
  15. 3.2 训练过程
  16. a. 核心思想:用历史预测未来
  17. b. Transformer 的损失计算:交叉熵监督预测
  18. c. 损失计算的具体步骤
  19. 3.2 代码实现(Transformer-AR)
  20. 4 流模型(Flow)
  21. 4.1 概念
  22. 4.2 训练过程
  23. 4.2 代码实现(Flow)
  24. 5 扩散模型(Diffusion)
  25. 5.1 概念
  26. 5.2 训练过程
  27. 5.2 代码实现(Diffusion)
  28. 6 小结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • artTemplate 模板语法中多余空格导致渲染为空的问题分析
  • LangChain Agent 实战:使用框架构建数学计算助手
  • 机器人操作 VLA 模型的强化学习综述
  • 基于Python+OpenCV实现自动扫雷
  • Python 爬虫实战:汽车之家各车系月销量榜数据采集
  • C++ 继承:语法、访问权限与虚继承详解
  • 大模型提示词注入攻击:分类、原理与技术解析
  • WebToEpub 浏览器扩展实现网页转 EPUB 电子书
  • 前端面试核心知识点与高频八股文汇总
  • 基于 Trae 构建本地 AI 对话机器人
  • Llama-Factory 训练时如何平衡计算与 IO 开销
  • 昇腾 CANN 学习路径指南:Python、C++ 与算子开发选型
  • uv 安装多版本 Python 及虚拟环境使用指南(替代 pyenv + pip)
  • 基于 cpolar 内网穿透远程部署 Open-Lovable 网页克隆工具
  • 基于 LLaMA-Factory 的 DPO 训练实战指南
  • Gitea 安装配置及常用 Git 命令指南
  • Ubuntu 20.04 安装 Ollama 及 Open WebUI 部署大型语言模型
  • 使用 Github 与 Hexo 搭建在线个人博客
  • CS61B 课程笔记:图结构基础与深度优先遍历
  • openclaw 升级及 Peekaboo 插件安装授权指南 (macOS)

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online