AE、VAE与GAN简明指南:三大生成模型对比

AE、VAE与GAN简明指南:三大生成模型对比

1. 核心概念一句话总结

模型核心思想一句话理解
AE压缩-还原把图片压成向量,再还原,像zip压缩
VAE压缩+随机性AE加噪声,让向量有概率意义
GAN造假-识别两个网络打架,越打越真

2. 模型结构对比

2.1 AE结构(最简单)

输入图片 → [编码器] → 隐向量z → [解码器] → 还原图片

在这里插入图片描述

特点

  • 隐向量是确定的(无随机性)
  • 训练目标:输入输出尽可能像
  • 隐空间可能不连续

2.2 VAE结构(AE升级版)

输入图片 → [编码器] → μ+σ → [采样] → 隐向量z → [解码器] → 生成图片

在这里插入图片描述

特点

  • 隐向量是概率分布(有随机性)
  • 训练目标:输入输出像 + 隐向量接近正态分布
  • 隐空间连续,可插值

2.3 GAN结构(完全不同)

噪声z → [生成器] → 假图片 → [判别器] → 真/假
真实图片 → [判别器] → 真/假

在这里插入图片描述

特点

  • 无编码器,直接从噪声生成
  • 对抗训练,生成器vs判别器
  • 生成质量最高,但训练不稳定

3. 训练与推理流程

3.1 AE训练流程

训练

  1. 输入图片x
  2. 编码器得到隐向量z
  3. 解码器得到重构图片x̂
  4. 计算MSE损失:||x - x̂||²
  5. 反向传播

推理

# 只能还原训练过的图片
reconstructed = ae(original_image)

# 无法生成新图片(隐空间不连续)

3.2 VAE训练流程

训练

  1. 输入图片x
  2. 编码器输出μ和σ
  3. 从N(μ,σ)采样得到z
  4. 解码器得到生成图片x̂
  5. 计算损失:重构误差 + KL散度

推理

# 生成新图片(采样隐向量)
z = torch.randn(1, 100)
new_image = vae.decode(z)

# 插值生成(隐空间连续)
z1 = vae.encode(image1)
z2 = vae.encode(image2)
interp_image = vae.decode(0.5*z1 + 0.5*z2)

3.3 GAN训练流程

训练

  1. 训练判别器
    • 真实图片 → 输出1
    • 生成假图片 → 输出0
  2. 训练生成器
    • 生成假图片 → 让判别器输出1
  3. 交替训练

推理

# 直接生成新图片
noise = torch.randn(1, 100)
new_image = generator(noise)

4. 损失函数对比

模型损失函数优化目标
AEMSE损失输入输出尽可能像
VAEMSE + KL散度输入输出像 + 隐向量正态分布
GAN对抗损失生成器骗过判别器

5. 实际应用对比

5.1 AE应用场景

应用实现方式局限性
图像压缩隐向量就是压缩码压缩率有限
特征提取用隐向量做下游任务特征可能不够好
去噪训练有噪声→无噪声只能去训练过的噪声

5.2 VAE应用场景

应用实现方式优势
人脸生成在隐空间插值平滑过渡
数据增强采样生成新样本多样性高
异常检测重构误差大的为异常无需异常样本

5.3 GAN应用场景

应用实现方式优势
艺术创作StyleGAN等质量最高
图像修复条件GAN逼真细节
风格迁移CycleGAN无需配对数据

6. 选择建议

6.1 按需求选择

需求推荐模型理由
快速原型AE最简单,易实现
稳定生成VAE训练稳定,可解释
最高质量GAN生成效果最佳
特征提取AE/VAE有编码器
数据增强VAE隐空间连续

6.2 按经验选择

  • 新手:先AE,再VAE,最后GAN
  • 研究:VAE理论清晰,GAN效果好
  • 工业:GAN质量优先,VAE稳定性优先

7. 一句话总结

  • AE:最简单的压缩还原,像zip文件
  • VAE:AE加随机性,可以生成新图片
  • GAN:对抗训练,质量最高但最难调

参考:
1、Autoencoders
2、Generative Adversarial Networks

资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 以下是一个使用 Python 调用 TensorRT 转换后的 RT-DETR 模型进行单张图片或图片文件夹批量推理的代码实现说明。该代码通过输入图片路径或文件夹路径、模型路径以及输出图片保存路径,即可完成推理并生成测试结果。运行时,只需使用命令 “python ./infer_tensorrt.py --infer_dir=./inputimgs/ --output_dir ./outputimgs/ --models ./rtdetr_hgnetv2_l_6x_coco.trt” 即可。 这段代码是用于部署 RT-DETR 模型的。它基于 Python 编写,调用了 TensorRT 转换后的模型,能够实现对单张图片或整个图片文件夹的批量推理操作。用户需要提供输入图片的路径(可以是单张图片的路径或包含多张图片的文件夹路径)、模型文件的路径以及推理结果输出图片的保存路径。当所有参数配置完成后,通过运行 “python ./infer_tensorrt.py --infer_dir=./inputimgs/ --output_dir ./outputimgs/ --models ./rtdetr_hgnetv2_l_6x_coco.trt” 这条命令,就可以得到相应的测试结果。 本代码旨在实现 RT-DETR 模型的部署,采用 Python 编程语言,并利用 TensorRT 转换后的模型进行推理。它可以针对单张图片或图片文件夹进行批量推理。用户需要输入图片路径(单张图片或文件夹)、模型路径以及输出图片保存路径。运行时,使用 “python ./infer_tensorrt.py --infer_dir=./inputimgs/ --output_dir ./outputimgs/ -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值