目录
目录readme.md

Jittor CGAN 手写数字生成比赛实现

生成示例
使用CGAN生成的数字序列示例

简介

本项目基于Jittor框架实现了条件生成对抗网络(CGAN),用于参加手写数字生成比赛。通过结合类别标签信息和随机噪声,模型能够生成特定数字的手写图像。本项目的特点是:

  • 实现了标准的CGAN结构,包含生成器和判别器
  • 使用MNIST数据集进行训练
  • 支持指定数字序列生成对应的手写图像
  • 训练过程可视化,可定期保存生成样本

安装

运行环境

  • 操作系统: Linux (推荐Ubuntu 20.04+)
  • Python: 3.7+
  • Jittor: 1.3.0+
  • 硬件: 可在CPU或NVIDIA GPU上运行

CGAN简介

1. 概述

条件生成对抗网络(CGAN)由两个主要部分组成:生成器(Generator)和判别器(Discriminator)。生成器的任务是生成尽可能真实的图像,判别器的任务是区分图像是否真实。通过对抗训练,生成器逐渐学习到如何生成更真实的图像。

2. 关键组件

  • 生成器(Generator):通过接收随机噪声和类别标签,生成对应类别的图像。它通过多个全连接层生成最终的图像。
  • 判别器(Discriminator):判断输入图像是真实的还是生成的。它通过将图像和类别标签结合起来进行判别。

3. 训练过程

  • 生成器训练:目标是生成能够欺骗判别器的图像,使判别器无法正确判断其真假。
  • 判别器训练:目标是正确区分真实图像和生成图像。训练过程是交替进行的,生成器和判别器不断优化,直到生成的图像足够逼真。

4. 损失函数

使用 均方误差(MSE) 作为损失函数,判别器输出的值与真实标签对比,计算损失并进行反向传播优化。

5. 优化器

使用 Adam优化器 来训练生成器和判别器,以加速收敛过程。

6. 数据集与图像保存

  • 数据集:MNIST数据集用于训练,其中包含手写数字图像。数据经过预处理后输入网络进行训练。
  • 图像保存:定期保存生成的图像,评估生成效果。

致谢

Jittor官方文档和示例代码。

关于

A Jittor implementation of Conditional GAN (CGAN)

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

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