昇思25天学习打卡营第18天|munger85
DCGAN生成漫画头像
首先肯定是下载训练数据,而这些训练数据就是一些卡通头像。后来我们会看到这个具体的头像
就像其他的数据集目录一样,它是由一些目录和这个目录下面的文件组成的数据集。
有相当多的图片。所以可以训练出来比较好的效果。
图片的处理常规操作。一般就是缩减一下,缩小一下大小。中央部分的裁剪,通道的变化。
可见都是一些很小的头像图片。
根据论文得到的gen nn的结构如下
判别器的结构如下
定义损失函数
adversarial_loss = nn.BCELoss(reduction=‘mean’)
当然再配上2 优化器
定义D和G的forward
就是运用前面的正向得到的loss,再给优化器去优化
ms.jit会编译代码为机器码,加速的
这种模型训练的还比较快。不知道是不是网络的关系?
画个图看看D和G的loss
loss都变小
img = np.clip(np.concatenate((images[:]), axis=0), 0, 1) 这段代码只是将图片里面图片进行一个叠加,然后再把值限定在0,1,小于0的是0,大于1的是1。
1 image shape is
把0纬度的东西,就是图片取出来放到一起,就是把所有图片都放一起了。而clip的意思是裁剪,把超过0,1的值变成0,1之间。好像裁剪一样,像我前面说的那样。
ani = animation.ArtistAnimation(fig, show_list, interval=1000, repeat_delay=1000, blit=True)
ani.save(‘./dcgan.gif’, writer=‘pillow’, fps=1)
可以把静态图片变成gif动图,看到质量越来越高了。
原文地址:https://blog.csdn.net/sinat_41803770/article/details/140591084
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!