Readme
一 项目功能
1 项目功能简介
该项目使用GAN(生成对抗网络)模型来训练生成模型,其中包括生成器generator与判别器discriminator。在本项目中,我们记合成图片为第0类,真实图片为第1类。
对于生成器G而言,我们输入一个随机向量z,希望生成的假图片G(z)能够“以假乱真”,骗过判别器D的检测。
因此,我们定义生成器G的损失函数为:$L_G=(1-D(G(z,y_2),y_2))^2$,并希望通过训练来最小化这个损失函数。
对于判别器D而言,我们希望区分一个输入的图片是来自于真实的图片x还是来自G生成的假图片G(z)。
因此,我们定义判别器D的损失函数为:$L_D=\frac{1}{2}((D(G(z,y_2),y_2)^2+(1-D(x,y_1)^2)))$,并希望通过训练来最小化这个损失函数。
2 项目流程&效果简介
在CGAN.py文件中,首先会经过100轮的训练过程,每轮输入为938张图片,对生成器与判别器的相关参数进行训练。每训练1000张图片都会在当前目录下产生一张名为$[num].png$的图片,其中$num$代表当前已经训练的图片数目,且为1000的倍数。随着训练过程的进行,可以明显的看到图片中数字变得愈发清晰。在100轮训练完毕后,程序会在当前目录下产生一张名为$result.png$的图片,其中的数字即为用户在程序中自己设定的$number$值。
若想看程序生成图片的效果,可以点击这里。其中$image$文件夹下存放的为在训练过程中生成的全部图片,而$result.png$所展示的即为我在该程序中生成的$number$效果。
二 使用方式
首先需要确保环境中安装了jittor库。如果还没有,请点击这里,找到与自己的环境相匹配的并进行安装。
在安装过程无误后,进入CGAN.py所在目录下,编辑CGAN.py文件,将其中的number改为自己想要生成的数字串。之后在命令行中运行python CGAN.py (linux用户可能需要运行python3 CGAN.py),在经过漫长的等待后即可在目录下的$result.png$文件中看到自己所想要生成的数字串。
Readme
一 项目功能
1 项目功能简介
该项目使用GAN(生成对抗网络)模型来训练生成模型,其中包括生成器generator与判别器discriminator。在本项目中,我们记合成图片为第0类,真实图片为第1类。
对于生成器G而言,我们输入一个随机向量z,希望生成的假图片G(z)能够“以假乱真”,骗过判别器D的检测。
因此,我们定义生成器G的损失函数为:$L_G=(1-D(G(z,y_2),y_2))^2$,并希望通过训练来最小化这个损失函数。
对于判别器D而言,我们希望区分一个输入的图片是来自于真实的图片x还是来自G生成的假图片G(z)。
因此,我们定义判别器D的损失函数为:$L_D=\frac{1}{2}((D(G(z,y_2),y_2)^2+(1-D(x,y_1)^2)))$,并希望通过训练来最小化这个损失函数。
2 项目流程&效果简介
在CGAN.py文件中,首先会经过100轮的训练过程,每轮输入为938张图片,对生成器与判别器的相关参数进行训练。每训练1000张图片都会在当前目录下产生一张名为$[num].png$的图片,其中$num$代表当前已经训练的图片数目,且为1000的倍数。随着训练过程的进行,可以明显的看到图片中数字变得愈发清晰。在100轮训练完毕后,程序会在当前目录下产生一张名为$result.png$的图片,其中的数字即为用户在程序中自己设定的$number$值。
若想看程序生成图片的效果,可以点击这里。其中$image$文件夹下存放的为在训练过程中生成的全部图片,而$result.png$所展示的即为我在该程序中生成的$number$效果。
二 使用方式
首先需要确保环境中安装了jittor库。如果还没有,请点击这里,找到与自己的环境相匹配的并进行安装。
在安装过程无误后,进入CGAN.py所在目录下,编辑CGAN.py文件,将其中的number改为自己想要生成的数字串。之后在命令行中运行python CGAN.py (linux用户可能需要运行python3 CGAN.py),在经过漫长的等待后即可在目录下的$result.png$文件中看到自己所想要生成的数字串。