当前位置: 首页 > news >正文

重庆网站模板平台建设企业网站建设开发服务

重庆网站模板平台建设,企业网站建设开发服务,天元建设集团有限公司地址,新项目开发流程CGAN通过在生成器和判别器中均使用标签信息进行训练#xff0c;不仅能产生特定标签的数据#xff0c;还能够提高生成数据的质量#xff1b;SGAN#xff08;Semi-Supervised GAN)通过使判别器/分类器重建标签信息来提高生成数据的质量。既然这两种思路都可以提高生成数据的质…CGAN通过在生成器和判别器中均使用标签信息进行训练不仅能产生特定标签的数据还能够提高生成数据的质量SGANSemi-Supervised GAN)通过使判别器/分类器重建标签信息来提高生成数据的质量。既然这两种思路都可以提高生成数据的质量于是ACGAN综合了以上两种思路既使用标签信息进行训练同时也重建标签信息结合CGAN和SGAN的优点从而进一步提升生成样本的质量并且还能根据指定的标签相应的样本。 1. ACGAN的网络结构为 ACGAN的网络结构框图 生成器的输入包含C_vector和Noise_data两个部分其中C_vector为训练数据标签信息的One-hot编码张量其形状为batch_size, num_class) Noise_data的形状为batch_size, latent_dim。然后将两者进行拼接拼接完成后得到的输入张量为batch_size, num_class latent_dim。生成器的的输出张量为batch_size, channel, Height, Width。 判别器的输入为batch_size, channel, Height, Width 判别的器的输出为两部分一部分是源数据真假的判断形状为batch_size, 1一部分是输入数据的分类结果形状为batch_size, class_num。因此判别器的最后一层有两个并列的全连接层分别得到这两部分的输出结果即判别器的输出有两个张量真假判断张量和分类结果张量。 2. ACGAN的损失函数 对于判别器而言既希望分类正确又希望能正确分辨数据的真假对于生成器而言也希望能够分类正确当时希望判别器不能正确分辨假数据。 D_real, C_real Discriminator( real_imgs)         # real_img 为输入的真实训练图片 D_real_loss torch.nn.BCELoss(D_real, Y_real)          #  Y_real为真实数据的标签真数据都为-1假数据都为1 C_real_loss torch.nn.CrossEntropyLoss(C_real, Y_vec)        # Y_vec为训练数据One-hot编码的标签张量 gen_imgs Generator(noise Y_vec) D_fake, C_fake Discriminator(gen_imgs) D_fake_loss torch.nn.BCELoss(D_fake, Y_fake) C_fake_loss torch.nn.CrossEntropyLoss(C_fake, Y_vec) D_loss D_real_loss C_real_loss D_fake_loss C_fake_loss 生成器的损失函数   gen_imgs Generator(noise, Y_vec) D_fake, C_fake Discriminator(gen_imgs) D_fake_loss torch.nn.BCELoss(D_fake, Y_real) C_fake_loss torch.nn.CrossEntropyLoss(C_fake, Y_vec) G_loss D_fake_loss C_fake_loss class Discriminator(nn.Module): # 定义判别器def __init__(self, img_size(64, 64), num_classes2): # 初始化方法super(Discriminator, self).__init__() # 继承初始化方法self.img_size img_size # 图片尺寸默认为64.64三通道图片self.num_classes num_classes # 类别数self.conv1 nn.Conv2d(3, 128, 4, 2, 1) # conv操作self.conv2 nn.Conv2d(128, 256, 4, 2, 1) # conv操作self.bn2 nn.BatchNorm2d(256) # bn操作self.conv3 nn.Conv2d(256, 512, 4, 2, 1) # conv操作self.bn3 nn.BatchNorm2d(512) # bn操作self.conv4 nn.Conv2d(512, 1024, 4, 2, 1) # conv操作self.bn4 nn.BatchNorm2d(1024) # bn操作self.leakyrelu nn.LeakyReLU(0.2) # leakyrelu激活函数self.linear1 nn.Linear(int(1024 * (self.img_size[0] / 2 ** 4) * (self.img_size[1] / 2 ** 4)), 1) # linear映射self.linear2 nn.Linear(int(1024 * (self.img_size[0] / 2 ** 4) * (self.img_size[1] / 2 ** 4)),self.num_classes) # linear映射self.sigmoid nn.Sigmoid() # sigmoid激活函数self.softmax nn.Softmax(dim1) # softmax激活函数self._init_weitghts() # 模型权重初始化def _init_weitghts(self): # 定义模型权重初始化方法for m in self.modules(): # 遍历模型结构if isinstance(m, nn.Conv2d): # 如果当前结构是convnn.init.normal_(m.weight, 0, 0.02) # w采用正态分布初始化nn.init.constant_(m.bias, 0) # b设为0elif isinstance(m, nn.BatchNorm2d): # 如果当前结构是bnnn.init.constant_(m.weight, 1) # w设为1nn.init.constant_(m.bias, 0) # b设为0elif isinstance(m, nn.Linear): # 如果当前结构是linearnn.init.normal_(m.weight, 0, 0.02) # w采用正态分布初始化nn.init.constant_(m.bias, 0) # b设为0def forward(self, x): # 前传函数x self.conv1(x) # conv(n,3,64,64)--(n,128,32,32)x self.leakyrelu(x) # leakyrelu激活函数x self.conv2(x) # conv(n,128,32,32)--(n,256,16,16)x self.bn2(x) # bn操作x self.leakyrelu(x) # leakyrelu激活函数x self.conv3(x) # conv(n,256,16,16)--(n,512,8,8)x self.bn3(x) # bn操作x self.leakyrelu(x) # leakyrelu激活函数x self.conv4(x) # conv(n,512,8,8)--(n,1024,4,4)x self.bn4(x) # bn操作x self.leakyrelu(x) # leakyrelu激活函数x torch.flatten(x, 1) # 三维特征压缩至一位特征向量(n,1024,4,4)--(n,1024*4*4)# 根据特征向量x计算图片真假的得分validity self.linear1(x) # linear映射(n,1024*4*4)--(n,1)validity self.sigmoid(validity) # sigmoid激活函数将输出压缩至(0,1)# 根据特征向量x计算图片分类的标签label self.linear2(x) # linear映射(n,1024*4*4)--(n,2)label self.softmax(label) # softmax激活函数将输出压缩至(0,1)return (validity, label) # 返回(图像真假的得分图片分类的标签)class Generator(nn.Module): # 定义生成器def __init__(self, img_size(64, 64), num_classes2, latent_dim100): # 初始化方法super(Generator, self).__init__() # 继承初始化方法self.img_size img_size # 图片尺寸默认为64.64三通道图片self.num_classes num_classes # 类别数self.latent_dim latent_dim # 输入噪声长度默认为100self.linear nn.Linear(self.latent_dim, 4 * 4 * 1024) # linear映射self.bn0 nn.BatchNorm2d(1024) # bn操作self.deconv1 nn.ConvTranspose2d(1024, 512, 4, 2, 1) # transconv操作self.bn1 nn.BatchNorm2d(512) # bn操作self.deconv2 nn.ConvTranspose2d(512, 256, 4, 2, 1) # transconv操作self.bn2 nn.BatchNorm2d(256) # bn操作self.deconv3 nn.ConvTranspose2d(256, 128, 4, 2, 1) # transconv操作self.bn3 nn.BatchNorm2d(128) # bn操作self.deconv4 nn.ConvTranspose2d(128, 3, 4, 2, 1) # transconv操作self.relu nn.ReLU(inplaceTrue) # relu激活函数self.tanh nn.Tanh() # tanh激活函数self.embedding nn.Embedding(self.num_classes, self.latent_dim) # embedding操作self._init_weitghts() # 模型权重初始化def _init_weitghts(self): # 定义模型权重初始化方法for m in self.modules(): # 遍历模型结构if isinstance(m, nn.ConvTranspose2d): # 如果当前结构是transconvnn.init.normal_(m.weight, 0, 0.02) # w采用正态分布初始化nn.init.constant_(m.bias, 0) # b设为0elif isinstance(m, nn.BatchNorm2d): # 如果当前结构是bnnn.init.constant_(m.weight, 1) # w设为1nn.init.constant_(m.bias, 0) # b设为0elif isinstance(m, nn.Linear): # 如果当前结构是linearnn.init.normal_(m.weight, 0, 0.02) # w采用正态分布初始化nn.init.constant_(m.bias, 0) # b设为0def forward(self, input: tuple): # 前传函数noise, label input # 从输入的元组中获取噪声向量和标签信息label self.embedding(label) # 标签信息经过embedding操作变成与噪声向量尺寸相同的稠密向量z torch.multiply(noise, label) # 噪声向量与标签稠密向量相乘得到带有标签信息的噪声向量z self.linear(z) # linear映射(n,100)--(n,1024*4*4)z z.view((-1, 1024, int(self.img_size[0] / 2 ** 4),int(self.img_size[1] / 2 ** 4))) # 一维特征向量扩展至三维特征(n,1024*4*4)--(n,1024,4,4)z self.bn0(z) # bn操作z self.relu(z) # relu激活函数z self.deconv1(z) # trainsconv操作(n,1024,4,4)--(n,512,8,8)z self.bn1(z) # bn操作z self.relu(z) # relu激活函数z self.deconv2(z) # trainsconv操作(n,512,8,8)--(n,256,16,16)z self.bn2(z) # bn操作z self.relu(z) # relu激活函数z self.deconv3(z) # trainsconv操作(n,256,16,16)--(n,128,32,32)z self.bn3(z) # bn操作z self.relu(z) # relu激活函数z self.deconv4(z) # trainsconv操作(n,128,32,32)--(n,3,64,64)z self.tanh(z) # tanh激活函数将输出压缩至(-1,1)return z # 返回生成图像
http://www.hkea.cn/news/14535762/

相关文章:

  • 装饰网站设计模板下载网站如何宣传
  • 网站做线上销售拓者室内设计
  • 网站建设用什么网站好一点温州seo平台
  • 宁波网站建设多少钱一个有错误的wordpress
  • 电商网站运营规划wordpress 删除缓存
  • access 网站内容管理系统 哪个好 下载html遇到的问题及解决方法
  • 官方网站建站wordpress设置缩略图
  • 企业网站建设作用设计型网站建设
  • 朝阳专业做网站创建网站建设
  • ASP.NET网站建设实战数据库端口 wordpress
  • 忻州网站建设费用工商注册查询公司名称
  • [8dvd]flash网站源文件 flash整站源码正规挣钱最快的游戏
  • 网站如何不让百度抓取网站链接提交收录
  • 织梦技校招生网网站模板整站源码手机做网站怎么做
  • 广州做网络服装的网站建设绍兴以往网站招工做
  • 网站被百度惩罚万网域名管理入口
  • 如何制作自己的个人网站做网站的分析报告案例
  • 免费做调查的网站广州网站建设信科分公司
  • 小型网站开发需要什么步骤为什么百度搜出来的网站只有网址没有网站名和网页摘要.
  • 郑州企业建设网站技术WordPress 用户密码长度
  • 网站页中繁体转移代码个人网站制作dw
  • 做建材哪个网站平台好推荐广州微信网站建设
  • 百度提交网站入口jsp购物网站开发
  • 网站建设发布设需求建设工程信息管理网
  • 北京南站到北京站怎么走如何通过国外社交网站做外销
  • 如何做网站网页旁边的留言框memcached wordpress 慢 卡
  • 网站开发需要解决的问题东莞微网站建设公司哪家好
  • 下载源代码建网站网络营销工具体系
  • 做网站烧钱wordpress 上传中文文件名
  • 个人建站项目wordpress粒子北京