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

织梦网站后台打不开婴儿网站模板

织梦网站后台打不开,婴儿网站模板,机关网站建设工程总结,广东建筑信息平台本文参考#xff1a;https://blog.csdn.net/Mr_health/article/details/112545671 1 CycleGAN概述 CycleGAN#xff1a;循环生成对抗神经网络#xff0c;是一种非监督学习模型。 Pix2pix方法适用于成对数据的风格迁移#xff0c;而大多数情况下对于A风格的图像#xf…本文参考https://blog.csdn.net/Mr_health/article/details/112545671 1 CycleGAN概述  CycleGAN循环生成对抗神经网络是一种非监督学习模型。 Pix2pix方法适用于成对数据的风格迁移而大多数情况下对于A风格的图像并没有与之相对应的B风格图像。获取严格意义上的成对数据是非常困难的所以不依赖成对数据的算法具有非常重要的实际意义。我们所拥有的是一群处于风格A源域的图像和一群处于风格B目标域的图像这样pix2pix方法就不管用了。 CycleGAN的创新点在于能够在源域和目标域之间无须建立训练数据间一对一的映射就可以实现这种迁移。 2 CycleGAN基本架构 1输入 X源域风格A的图像 Y目标域风格B的图像 2两个生成器 G用于将风格A的图像x转换为风格B的图像 F用于将风格B的图像y转换为风格A的图像 3Cycle解释 通过G将风格A的图像x转换为风格B的图像Y‘之后再将Y’通过F后仍然能够转换回风格A并能保证图像中的内容一致。 通过F将风格B的图像y转换为风格A的图像X‘之后再将X’通过G后仍然能够转换回风格B并能保证图像中的内容一致。 也就是训练好G和F就可以自由地完成风格A、B的转换了。 3 损失函数 在训练中引入两个判别器 Dy区分真实的风格B的图像与通过G转换而来的假的风格B的图像 Dx区分真实的风格A的图像与通过G转换而来的假的风格A的图像 损失函数主要由以下几个部分构成 1Dy处的GAN损失 2Dx处的GAN损失 3循环一致性损失即cycle解释那块逻辑 4Identity loss 这个loss的含义是生成器G用来生成y风格的图像那么把y送入G应该仍然生成y只有这样才能证明G具有生成y风格的能力。因此G(y)和y应该尽可能接近。根据论文中的解释如果不加入该loss那么生成器可能会自主地修改图像的色调使得整体的颜色发生变化。 4 CycleGAN网络结构解读 GAN由生成网络Generator和辨别Discriminator网络两部分组成 Generator网络有2个分别支持A-B和B-A的转化其输入输出不会改变维度信息如下图所示 Discriminator网络也有2个 D_AG_A(A) vs B D_BG_B(B) vs A 输入后会改变维度大小输出channel从3变为1特征为30*30。如果为真则与30*30的1进行比较如果为假则与30*30的0进行比较。如下图所示 Generator和Discriminator网络结构如下 Loss组成 由Generator的loss和Discriminator的loss两部分组成。 Generator部分的loss Loss_G_A D_A(G_A(A)) #从G的角度生成的B要让D尽量判断为1 Loss_G_B D_B(G_B(B)) #从G的角度生成的A要让D尽量判断为1 Loss_cycle_A || G_B(G_A(A)) - A|| Loss_cycle_B || G_A(G_B(B)) - B|| Loss_idt_A ||G_A(B) - B|| Loss_idt_B ||G_B(A) - A|| Loss_G Loss_G_A Loss_G_B Loss_cycle_A Loss_cycle_B Loss_idt_A Loss_idt_B Discriminator部分的loss Loss_D criterionGAN (netD(real), true) criterionGAN(netD(fake), false) 从D的角度G生成的要尽量判断为0真实的要尽量判断为1。 5 代码解读 1前向传播部分 NetG_A就是G完成A-B的风格转换源域到目标域 NetG_B就是F完成B-A的风格转换目标域到源域    def forward(self):Run forward pass; called by both functions optimize_parameters and test.self.fake_B self.netG_A(self.real_A)  # G_A(A)self.rec_A self.netG_B(self.fake_B)   # G_B(G_A(A))self.fake_A self.netG_B(self.real_B)  # G_B(B)self.rec_B self.netG_A(self.fake_A)   # G_A(G_B(B)) 2更新G 在if lambda_idt 0:这个分支内实现的就是identity loss。 后面就是GAN损失loss_G_A、 loss_G_B以及循环一致性损失(loss_cycle_A、loss_cycle_B) 代码里面的判别器netD_A判断的是真实B风格和生成B风格的真假相当于论文中的Dy。 同理netD_B判断的是真实A风格和生成A风格的真假相当于论文中的Dx。    def backward_G(self):Calculate the loss for generators G_A and G_Blambda_idt self.opt.lambda_identitylambda_A self.opt.lambda_Alambda_B self.opt.lambda_B# Identity lossif lambda_idt 0:# G_A should be identity if real_B is fed: ||G_A(B) - B||self.idt_A self.netG_A(self.real_B)  #将真实的B送入netG_A(A-B风格生成器)生成的应该还是B风格self.loss_idt_A self.criterionIdt(self.idt_A, self.real_B) * lambda_B * lambda_idt# G_B should be identity if real_A is fed: ||G_B(A) - A||self.idt_B self.netG_B(self.real_A) #将真实的A送入netG_B(B-A风格生成器)生成的应该还是A风格self.loss_idt_B self.criterionIdt(self.idt_B, self.real_A) * lambda_A * lambda_idtelse:self.loss_idt_A 0self.loss_idt_B 0# GAN loss D_A(G_A(A))self.loss_G_A self.criterionGAN(self.netD_A(self.fake_B), True)# GAN loss D_B(G_B(B))self.loss_G_B self.criterionGAN(self.netD_B(self.fake_A), True)# Forward cycle loss || G_B(G_A(A)) - A||self.loss_cycle_A self.criterionCycle(self.rec_A, self.real_A) * lambda_A# Backward cycle loss || G_A(G_B(B)) - B||self.loss_cycle_B self.criterionCycle(self.rec_B, self.real_B) * lambda_B# combined loss and calculate gradientsself.loss_G self.loss_G_A self.loss_G_B self.loss_cycle_A self.loss_cycle_B self.loss_idt_A self.loss_idt_Bself.loss_G.backward() 3更新D def backward_D_A(self):Calculate GAN loss for discriminator D_Afake_B self.fake_B_pool.query(self.fake_B)self.loss_D_A self.backward_D_basic(self.netD_A, self.real_B, fake_B)def backward_D_B(self):Calculate GAN loss for discriminator D_Bfake_A self.fake_A_pool.query(self.fake_A)self.loss_D_B self.backward_D_basic(self.netD_B, self.real_A, fake_A) 4生成器结构 一共由3个卷积层 5个残差块 3个卷积层构成。 这里没有用到池化等操作在开始卷积层中第二层、第三层进行了下采样在最后的3个卷积层中进行了上采样这样最直接的就是减少了计算复杂度。另外还有一个好处是感受野增大卷积下采样会增大有效区域。 5个残差块都是使用相同个数的128滤镜核每个残差块中都有2个卷积层3*3核这里的卷积层中没有标准的0填充padding因为使用0填充会使生成出的图像的边界出现严重伪影。为了保证输入输出图像大小不改变在图像初始输入部分加入了反射填充。 这里的残差网络不是使用何凯明的残差网络卷积之后没有Relu而是使用了Gross and Wilber的残差网络后面这种方法验证在图像分类算法上面效果比较好。
http://www.w-s-a.com/news/635432/

相关文章:

  • 北京正规网站建设公司php网站开发实训感想
  • 织梦网站地图怎么做腾讯网站开发语言
  • 站长之家alexa排名wordpress html 标签
  • WordPress建站主机推荐工程公司的经营范围
  • 做网站要注意哪一点网站需求分析的重要
  • 设计作品网站怎么开网站
  • 上海网站开发制作建设网站的建设费用包括
  • 上海网站建设网站开发亚洲杯篮球直播在什么网站
  • 网站做seo第一步h5制作公司
  • 软件外包产业网络优化工程师是干嘛的
  • 怎么用服务器做局域网网站河西网站建设
  • 工业企业网站建设企业门户网站解决方案
  • 网站运营与管理论文网上商城都有哪些
  • 常德网站制作建设毕设电商网站设计
  • 西安企业模板建站福州+网站建设+医疗
  • 邹城市住房和建设局网站仙居网站建设贴吧
  • 为什么要用CGI做网站网站手机优化显示
  • 做袜子娃娃的网站做网站要学的东西
  • 类qq留言网站建设企业做网站公司
  • 如何查到网站建设三足鼎立小程序开发公司
  • 交互网站怎么做的wordpress ssl 错位
  • 公司宣传 如何做公司网站郑州做网站那
  • 衡阳市城乡建设协会官方网站免费游戏网站模板
  • 小程序怎么做优惠券网站合肥建站网站平台
  • 民制作网站价格株洲企业seo优化
  • 网站建设 岗位职责网站建设百度索引
  • 网站建设的内容下拉网站导航用ps怎么做
  • 怎样做p2p网站海口免费自助建站模板
  • 给企业建设网站的流程图wordpress 添加子菜单
  • 企业网站带新闻发布功能的建站皋兰县建设局网站