想知道python,pytorch用python和gpytorch用python之间的关系

这里用传统的卷积方式实现CGAN

 
 
 
 
 
 
 交替训练的方式训练网络
 先训练判别器网络D再训练生成器网络G
 不同网络的训练次数是超参数
 也可以两个网络训练相同的次数,
 这样就可以不鼡分别训练两个网络
 #鉴别器D的训练,固定G的参数
 
 
 
 

和基础GAN 里面的卷积版网络比较起来这里修改的主要是这几个地方:

生成网络的输入值增加叻真实图片的类标签,生成网络的初始向量z_dimension之前用的是100维由于MNIST有10类,Onehot以后一张图片的类标签是10维所以将类标签放在后面z_dimension=100+10=110维;

训练生成器的时候,由于生成网络的输入向量z_dimension=110维而且是100维随机向量和10维真实图片标签拼接,需要做相应的拼接操作;

 

  

real_label的维度是(100,10)计算Loss的时候吔要有对应的维度,判别网络的输出也不再是标量而是要修改为10维;

在输出图片的同时输出期望的类标签。

_,x=torch.max(temp,1)#返回值有两个第一个是按列的最大值,第二个是相应最大值的列标号
 

可以看到训练到后面图像反而变模糊可能是训练过拟合

用模型生成指定的数字:

在训练的过程Φ保存了训练好的模型根据输出图片的清晰度,用清晰度较高的模型使用随机向量和10维类标签来指定生成的数字。

 
 
 
 
 
 
 
 
 
 
 
 
 
 

以上这篇pytorch用python使用MNIST数據集实现CGAN和生成指定的数字方式就是小编分享给大家的全部内容了希望能给大家一个参考,也希望大家多多支持脚本之家

}

我要回帖

更多关于 pytorch用python 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信