# DCGAN **Repository Path**: olivegame/dcgan ## Basic Information - **Project Name**: DCGAN - **Description**: DCGAN代码实现 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-06 - **Last Updated**: 2025-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DCGAN #### 介绍 DCGAN代码实现 #### 使用说明 1. 在原始的 GAN 网络使用 CNN 来替代全连接层,提高模型能力 2. 在 .pptx 文件下含有原理说明 3. 在 CelebA 数据集进行训练,使用 img_align_celeba.zip 数据子集进行训练,数据连接:[CelebA Datase](https://mmlab.ie.cuhk.edu.hk/projects/CelebA.html) 4. 相较于原来的 GAN 代码,[link](https://gitee.com/olivegame/gan),DCGAN 代码添加了 断点训练、分布式训练 功能: - 比如在指定单机的多 GPU 上进行训练: ``` CUDA_VISIBLE_DEVICES=3,4 torchrun --nproc_per_node=2 --master_port=29501 dcgan.py ``` - 比如恢复断点训练 50 个 epoch: ``` CUDA_VISIBLE_DEVICES=3,4 torchrun --nproc_per_node=2 --master_port=29501 dcgan.py \ --resume /data/xjh/code/DCGAN/save/checkpoint.pth \ --n_epochs 50 ``` #### 训练结果 1. GAN 模型具有训练不稳定的特性,比如在 batch_size = 128 训练 200 个 epoch,初始前 20 个 epoch 稳定,但后续造成判别器优势,生成器无法拟合: ![输入图片说明](optimized_training_curves_200.png) - 训练前期能较好生成图片: ![输入图片说明](code/images/10500.png) - 但是在训练后期生成器训练失败无法生成良好图片: ![输入图片说明](code/images/99000.png) 2. 在使用两块 GPU 进行训练,batch_size = 128, 而 epoch = 50 轮模型训练结果在 30 个 epoch 之后趋于稳定: ![输入图片说明](optimized_training_curves_50.png) 3. 在 cereate_picture.py 文件可以利用训练的权重预测生成 fake pictures: ![输入图片说明](code/create/fake_samples_30_double.png)