Skip to content

mucganteam/CGAN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Conditional Generative Adversarial Networks (CGAN) 复现项目

PyTorch License Status

本项目包含基于 PyTorch 实现的 条件生成对抗网络 (Conditional GAN) 的两套完整复现代码。项目旨在重现 Mirza & Osindero (2014) 的核心思想,并分别针对基础数据集 (MNIST) 和 复杂图像数据集 (CIFAR-10) 提供了不同层次的实现方案。

📂 项目概览

本仓库包含两个独立的子项目,分别对应不同的学习阶段和技术深度:

项目名称 数据集 难度 / 复杂度 核心架构 关键技术特性 链接
CGAN-MNIST MNIST (手写数字) ⭐ 入门级 全连接层 (Fully Connected/MLP) • 基础 CGAN 原理
• 混合精度训练 (AMP)
• 基础 FID/IS 评估
点击查看
CGAN-CIFAR-10 CIFAR-10 (通用物体) ⭐⭐⭐ 进阶级 卷积网络 + ResBlock + Self-Attention • 谱归一化 (Spectral Norm)
• 梯度惩罚 (Gradient Penalty)
• 自注意力机制
• 标签平滑与 Upsample
点击查看

🌟 核心特性

  • 条件生成 (Conditional Generation): 两个项目均实现了基于类别标签(Class Labels)控制生成特定内容的图像。
  • 现代训练技巧: 即便是基础的 MNIST 版本,也集成了 torch.amp 混合精度训练以提升效率。
  • 标准化评估: 内置 FID (Fréchet Inception Distance)IS (Inception Score) 计算代码,量化评估生成质量。
  • 完整的可视化: 包含 Loss 曲线绘制、动态进度条监控以及按类别排列的生成样本展示。
  • Jupyter Notebook 教学: 代码均以 Notebook 形式提供,步骤清晰,适合逐步运行和调试。

🚀 快速开始

1. 克隆仓库

git clone <your-repo-url>
cd CGAN

2. 环境配置

建议使用 Python 3.8+,并安装以下依赖:

# 通用依赖
pip install torch torchvision torchmetrics numpy matplotlib tqdm scipy

3. 选择项目运行

如果是 GAN 初学者: 建议先从 MNIST 项目开始,理解条件向量是如何注入到生成器和判别器中的。

cd CGAN_MNIST
# 打开并运行 CGAN_MNIST.ipynb

如果需要高质量生成或进阶研究: 请尝试 CIFAR-10 项目,体验 ResBlock、Self-Attention 和 WGAN-GP 等现代技术对生成稳定性的提升。

cd CGAN_CIFAR10
# 打开并运行 CGAN_CIFAR10.ipynb

📚 参考文献

🤝 贡献与反馈

欢迎提交 Issue 或 Pull Request 来改进代码或增加新的特性。

About

CGAN reproduction

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors