大家好,又见面了,我是你们的朋友全栈君。
一、计算图效果以及实际代码实现
计算图效果
实际模型实现
相关介绍移步我的github项目。
二、生成器与判别器设计
生成器
相关参量,
噪声向量z维度:100 标签向量y维度:10(如果有的话) 生成器features控制参量gf标量值:64 生成器features控制参量gfc标量值:1024
无标签训练,
100 -线性层-> 4*4*8*64 -转置卷积-> 4,4,8*64 -转置卷积-> 8,8,4*64 -转置卷积-> 16,16,2*64 -转置卷积-> 32,32,64 -转置卷积-> 64,64,3
含标签训练,所谓的concat实际就是把features和y进行拼接,
新参量: z=110,yb = 1,1,10 110 -线性层-> 1024 -concat-> 1034 -线性层-> 16*16*2*64 -reshape-> 16,16,128 -concat-> 16,16,138 -转置卷积-> 32,32,128 -concat-> 32,32,138 -转置卷积-> 64,64,3
判别器
相关参量,
图片维度:64,64,3 标签向量y维度:10(如果有的话) 生成器features控制参量df标量值:64 生成器features控制参量dfc标量值:1024
无标签训练,
64,64,3 -conv-> 32,32,64 -conv-> 16,16,64*2 -conv-> 8,8,64*4 -conv-> 4,4,64*8 -reshape-> 4*4*64*8 -线性层-> 1
含标签训练,
新参量: x = 64,64,13,yb = 1,1,10 64,64,13 -conv-> 32,32,13 -concat-> 32,32,23 -conv-> 16,16,74 -reshape-> 16*16*74 -concat-> 16*16*74 10 -线性层-> 1024 -concat-> 1034 -线性层-> 1
三、结果查看
生成器损失
判别器real损失
判别器fake损失
判别器总损失
从训练过程中来看,经历了初期的下降之后,几个loss值均会在波动中维持一个动态平衡,而GAN的loss值并不能直接反应训练结果,所以我们需要直接看输出图。
本次实验中一功运行了23个epoch,这里给出每个epoch开始的输出以及最后的的一张输出,以供参考:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/166708.html原文链接:https://javaforall.cn