目录
目录README.md

CGAN_jittor

使用 Jittor 在 MNIST 数据集上实现 Conditional GAN(CGAN),支持“指定类别 → 生成对应数字图像”。仓库内包含两份实现:

  • Code/CGAN.py:全连接版 CGAN(MLP Generator + MLP Discriminator)
  • Code/CDGAN.py:卷积/反卷积版 CGAN(DCGAN 的条件化版本)

本项目开源在:https://gitlink.org.cn/Chuilong/CGAN_jittor.git

效果示例

result.png 为仓库内的示例输出(也可以运行脚本生成你自己的结果):

result

环境依赖

使用cuda12.2-cudnn8-devel-ubuntu22.04-py310环境,GPU为Tesla V100-SXM2-16GB * 1,CPU使用6核 Xeon(R) Silver 4214R,显存16GB,内存62GB。

使用Python 3.7,安装以下依赖: astunparse==1.6.3 certifi @ file:///croot/certifi_1671487769961/work/certifi cycler==0.11.0 fonttools==4.38.0 jittor==1.3.10.0 kiwisolver==1.4.5 matplotlib==3.5.3 numpy==1.21.6 packaging==24.0 pandas==1.3.5 Pillow==9.5.0 pyparsing==3.1.4 python-dateutil==2.9.0.post0 pytz==2025.2 six==1.17.0 tqdm==4.67.1 typing_extensions==4.7.1

可使用下面的指令安装依赖:

pip install -r requirements.txt

快速开始

1) 训练并采样(全连接版)

python Code/CGAN.py 

该脚本会:

  • 使用 jittor.dataset.mnist.MNIST 自动下载/读取 MNIST
  • 训练过程中按 --sample_interval 保存采样网格图
  • 每 10 个 epoch 保存一次模型
  • 训练结束后加载最后一次保存的模型,并按固定字符串生成一张拼接结果图

2) 训练并采样(卷积版)

python Code/CDGAN.py

参数说明

两份脚本的核心参数基本一致(以实际脚本为准):

  • --n_epochs:训练轮数
  • --batch_size:batch 大小
  • --latent_dim:噪声向量维度
  • --n_classes:类别数(MNIST 为 10)
  • --img_size:输出图像尺寸(默认 32×32)
  • --channels:通道数(MNIST 为 1)
  • --sample_interval:采样间隔(按 step 计)

输出内容

Code/CGAN.py

  • 日志与指标:默认写到 "/root/data-fs/1000"(见脚本内的 log_path / csv_path,你应该自己修改为你自己的目录)
  • 训练中采样图片:/root/data-fs/1000/<batches_done>.png(你应该自己修改为你自己的目录)
  • 模型权重:generator_last1000epoch.pkldiscriminator_last1000epoch.pkl(你应该自己修改为你自己的目录)
  • 训练结束的指定数字拼接图:result1000epoch.png(你应该自己修改为你自己的目录)

Code/CDGAN.py

  • 训练中采样图片:/root/data-fs/256v2/<batches_done>.png(你应该自己修改为你自己的目录)
  • 模型权重:默认保存到 /root/data-fs/256v8/(你应该自己修改为你自己的目录)
  • 训练结束的指定数字拼接图:resultcdganepoch222.png(你应该自己修改为你自己的目录)

自定义“指定数字生成”

两份脚本在训练结束后都会生成一个固定字符串对应的数字序列,直接在脚本末尾修改 number 即可,例如:

  • number = "2310986"

你可以通过注释训练过程的方式来直接生成指定数字的拼接图。

项目结构

.
├─ Code/
│  ├─ CGAN.py        # 全连接版 Conditional GAN
│  └─ CDGAN.py       # 卷积版 Conditional GAN
├─ result.png        # 示例输出图
├─ report.pdf        # 报告(可选参考)
└─ README.md

作者信息

这是南开大学计算机科学与技术专业 计算机图形学课程的项目,由 2310986 陈兴浩独立完成。

常见问题

1) 为什么脚本会尝试写入 /root/data-fs/...

两份脚本里有一些输出路径是硬编码的(训练日志、采样图片、模型保存)。如果你在本地/Windows 环境运行,请把这些路径改成你机器上可写的目录。

2) Code/CDGAN.py 无法运行(语法错误)

当前 Code/CDGAN.py--n_epochs 参数那一行包含 // 风格注释(这在 Python 中会报错)。把 //... 改成 # ... 即可正常解析运行。

2025年12月19日

关于

A Jittor implementation of Conditional GAN (CGAN).

5.6 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号