使用SAGAN生成二次元人物头像(GAN生成对抗网络)--pytorch实现

本文介绍了使用自注意力机制改进的生成对抗网络(GAN),解决了传统GAN训练速度慢的问题。通过自注意力模块,模型能更好地捕捉全局特征,如人脸结构。分享了生成器和辨别器代码,并提供GitHub链接进行预训练模型获取和自定义训练。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        这是训练250epoch左右的成果。

之前的文章里面,我们使用了残差网络的形式实现生成器与辨别器,它理论上可以实现很不错的效果,但有一个很致命的缺点,就是训练太慢,很难见到成果。

        这一次,我们实现了一个利用自注意力机制制作的对抗生成网络。自注意力机制是我们在深度学习道路上,除了RNN,CNN以外,不得不了解的一种模块。非常有意思。简而言之,这个模块,相比于之前单纯使用卷积网络的GAN,它更加能注重上下文,举个例子,在生成人物眼睛的时候,它会注意到鼻子👃,头发等其他部位,从而将眼睛放在合适的位置,总之,能更好的学习到整体特征。

以下是生成器的代码。注意attn1与attn2层都是我们的自注意力模块,其他是我们所熟悉的DCGAN中使用过的反卷积。默认生成64*64像素的图片,如果想修改图片大小,请修改image_size,以及,后面层次中的channel大小以及selfattention的参数。

class Generator(nn.Module):
  def __init__(self, image_size = 64, z_dim = 100, conv_dim =64):
    super().__init__()
    repeat_num = int(np.log2(image_size)) - 3
    mult = 2 **
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值