昇思25天学习打卡营第17天|DCGAN生成漫画头像

课程打卡凭证

DCGAN模型

DCGAN(Deep Convolutional Generative Adversarial Network),即深度卷积生成对抗网络,是一种基于生成对抗网络(GAN)的改进模型,它在生成图像的过程中引入了深度卷积神经网络的架构。

GAN的介绍见昇思25天学习打卡营第16天|GAN图像生成-CSDN博客。DCGAN在生成器使用反卷积层(转置卷积层)从低维噪声向量生成高维图像,而在判别器中则使用卷积层对输入图像进行特征提取。另外,它在生成器和判别器中加入批归一化层,用来加速训练过程并稳定模型,并且去掉了全连接层,使用全卷积结构来处理图像数据。它在生成器使用ReLU激活函数,输出层使用Tanh激活函数;判别器则使用Leaky ReLU激活函数。

训练过程

数据加载与处理

本次实验使用的数据集来自https://download.mindspore.cn/dataset/Faces/faces.zip,共70171张96x96的动漫头像图片。

定义模型参数的初值。

加载faces数据集,并定义数据增强和批处理操作。

可视化数据集,这里用到了matplotlib库中的pyplot模块。

模型训练

构建生成器

生成器的网络结构如下:转置卷积层,用于将输入向量转换为特定形状的输出特征图;二维批标准化层,用于加速收敛并稳定训练过程;修正线性单元激活函数,增加网络的非线性;最后一层是生成器的输出层,将生成的特征图限制在 [-1, 1] 范围内。

构建判别器

判别器的网络结构如下:二维卷积层,用于从输入特征图中提取特征;二维批标准化层,用于加速收敛并稳定训练过程;带泄露的修正线性单元激活函数,增加网络的非线性;最后一层输出单个值,用于二分类(真假)。

定义损失函数和优化器

这里使用了Adam优化器来优化生成器和判别器的参数,构建两个优化器,分别对应两个生成器。损失函数则用常见的交叉熵损失函数。

模型训练

该函数用于计算生成器的前向传播和损失,首先生成随机噪声z作为生成器的输入,然后使用生成器generator生成假图像gen_imgs,最后计算生成器的损失g_loss,该损失衡量生成器欺骗判别器的能力,即使生成的图像被判别器认为是真实的。

该函数用于计算判别器的前向传播和损失。

该函数用于执行一次训练步骤。这里使用了ms.jit进行即时编译,以优化训练速度。

开始训练模型。

训练结果如图所示。

生成器和判别器损失与迭代训练的关系如图所示。

将整个训练过程中生成的图像转成动图,结果如下图所示。

模型推理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值