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

手机自助建网站wordpress iis 发布

手机自助建网站,wordpress iis 发布,百度小程序中心,WordPress判断用户角色图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image 文章目录 图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image主要创新点模型架构图生成器生成器源码 判别器判别器源码 损失函数需要源码讲解的私信我 S…

图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image

文章目录

      • 图像生成-ICCV2019-SinGAN: Learning a Generative Model from a Single Natural Image
        • 主要创新点
        • 模型架构图
        • 生成器
          • 生成器源码
        • 判别器
          • 判别器源码
        • 损失函数
        • 需要源码讲解的私信我

SinGAN 通过多尺度全卷积 GAN 金字塔结构,从单张自然图像中学习内部 patch 分布,无需条件输入即可生成多样化、高质量的新图像,并适用于广泛的图像处理任务。

论文链接:SinGAN: Learning a Generative Model from a Single Natural Image

源码链接:/tamarott/SinGAN

主要创新点
  1. 单图像内部统计学习:SinGAN 通过多尺度 patch-GAN 层次结构,从单张图像中学习其内部统计信息,而不是依赖于整个数据库中的图像样本
  2. 多尺度结构捕获图像特征:每个 patch-GAN 负责捕获图像在不同尺度下的 patch 分布,能够同时学习全局结构(如大物体的排列)和细节纹理信息。
  3. 突破传统纹理生成:与传统的纹理生成方法不同,SinGAN 不仅局限于生成纹理图像,而是处理更复杂的自然图像结构,能够生成具有全局一致性和细节多样性的高质量图像。
  4. 多尺度生成器金字塔: SinGAN 使用多尺度生成器金字塔 {G0, ..., GN},每个生成器在不同尺度上生成与对应下采样版本图像相符的真实图像样本,通过对抗训练实现生成器和判别器的博弈。生成过程从粗糙尺度开始,逐步通过各生成器添加细节,并通过上采样前一尺度的生成图像细化全局结构,同时确保噪声在每个尺度上得到充分利用。
模型架构图

主要由一下几部分组成:

  1. 生成器:对于生成器是由下往上训练的,生成器采用五个全卷积层来实现,对于不同层次生成器接收到的东西也随着层数递增也不一样的,不同层次输入的图像大小也不一样,其实就是和StyleGan的原理是一样的,对应于StyleGan的潜在向量空间latent。
  2. 判别器:判别器和生成器一样的, 根据尺度不一样而一一对应,判别器就是要把生成器生成的判别为假,真的判别为真
  3. 多层次噪声优化 : 对于生成器会随机初始化一个噪声输入到生成器的中,噪声对于图像的影响也会很大,通常的做法是统计整个数据集的一些特征来对噪声进行初始化,本文中是对于下一层次生成的图像和噪声来拼接生成,来补充噪声的信息。

在这里插入图片描述

生成器

多尺度生成器金字塔:模型包含一个由生成器组成的金字塔 {G0, …, GN},每个生成器 Gn 对应于图像的一个尺度 xn,其中 xn 是通过因子 rn 对原始图像 x 进行下采样得到的。生成器 Gn 的任务是生成与图像 xn 中的 patch 分布相符的真实图像样本。

生成过程:图像生成从最粗的尺度(GN)开始,并通过每个生成器逐步到达最精细的尺度。在每个尺度上,生成器 Gn 通过与对应尺度的判别器 Dn 进行对抗训练,学习生成与训练图像 xn 中的 patch 区分不出的样本。

细节添加:在生成过程中,每个生成器不仅生成新的细节,还将前一个尺度的生成图像 ̃xn+1 上采样到当前尺度后,与当前的噪声 zn 一起输入到卷积层中。这个操作确保了每个尺度上的细节添加和图像的结构细化。

噪声和图像合成:每个生成器的输入包括随机噪声 zn 和上采样后的前一尺度图像 ̃xn+1。生成器通过卷积层进行残差学习,生成缺失的细节,最终得到当前尺度的图像输出 ̃xn。

自适应生成大小:由于生成器是全卷积的,它们能够在测试时生成任意大小和纵横比的图像,只需调整噪声图的维度。

在这里插入图片描述

生成器源码
class GeneratorConcatSkip2CleanAdd(nn.Module):def __init__(self, opt):super(GeneratorConcatSkip2CleanAdd, self).__init__()self.is_cuda = torch.cuda.is_available()  # 判断是否有 GPUN = opt.nfc  # 初始化卷积层输出通道数# 定义头部卷积层,处理输入图像self.head = ConvBlock(opt.nc_im, N, opt.ker_size, opt.padd_size, 1)  self.body = nn.Sequential()  # 存储中间卷积层# 构建中间层for i in range(opt.num_layer - 2):N = int(opt.nfc / pow(2, (i + 1)))  # 每层输出通道数逐步减少block = ConvBlock(max(2 * N, opt.min_nfc), max(N, opt.min_nfc), opt.ker_size, opt.padd_size, 1)self.body.add_module('block%d' % (i + 1), block)  # 添加到 body 中# 定义尾部卷积层,用于输出最终图像self.tail = nn.Sequential(nn.Conv2d(max(N, opt.min_nfc), opt.nc_im, kernel_size=opt.ker_size, stride=1, padding=opt.padd_size),nn.Tanh()  # 使用 Tanh 激活函数输出图像)def forward(self, x, y):# 经过头部卷积层处理输入 xx = self.head(x)# 通过中间卷积层x = self.body(x)# 通过尾部卷积层生成图像x = self.tail(x)# 根据 y 和 x 的尺寸差值进行裁剪,确保两者尺寸相同ind = int((y.shape[2] - x.shape[2]) / 2)y = y[:, :, ind:(y.shape[2] - ind), ind:(y.shape[3] - ind)]# 将生成的图像与输入 y 相加return x + y
判别器

判别器与生成器的关系

  • 每个生成器 Gn 都配有一个对应的判别器 Dn,目的是通过对比生成图像与真实图像之间的差异,指导生成器改进生成的图像。
  • 判别器 Dn 的目标是判别每个输入图像块是“真实”图像块(来自原始图像 xn)还是“伪造”图像块(由生成器生成的图像块)。
  • 损失函数
    • 判别器使用 WGAN-GP 损失(Wasserstein GAN with Gradient Penalty)来训练,以确保训练过程的稳定性。通过计算生成样本和真实图像样本在各自图像块上的判别结果,最终得出一个平均的判别分数。
    • 判别器的损失不仅针对单个图像块,还针对整个图像进行定义,这有助于学习整个图像的结构,特别是边界条件,而不仅仅是关注图像的局部区域。
判别器源码
class WDiscriminator(nn.Module):def __init__(self, opt):super(WDiscriminator, self).__init__()self.is_cuda = torch.cuda.is_available()  # 检查是否有可用的GPUN = int(opt.nfc)  # 初始通道数self.head = ConvBlock(opt.nc_im, N, opt.ker_size, opt.padd_size, 1)  # 第一层卷积块self.body = nn.Sequential()  # 中间层,包含多个卷积块for i in range(opt.num_layer - 2):  # 添加多层卷积块,num_layer指定总层数N = int(opt.nfc / pow(2, (i + 1)))  # 根据层数逐渐减少通道数block = ConvBlock(max(2 * N, opt.min_nfc), max(N, opt.min_nfc), opt.ker_size, opt.padd_size, 1)  # 创建每一层卷积块self.body.add_module('block%d' % (i + 1), block)  # 添加每一层卷积块到序列self.tail = nn.Conv2d(max(N, opt.min_nfc), 1, kernel_size=opt.ker_size, stride=1, padding=opt.padd_size)  # 输出层,1个输出通道def forward(self, x):x = self.head(x)  # 通过第一层卷积块x = self.body(x)  # 通过中间层的多个卷积块x = self.tail(x)  # 通过输出层return x  # 返回最终的输出
损失函数

在这里插入图片描述

在这里插入图片描述

需要源码讲解的私信我

文章转载自:

http://lEP3ZLWc.wqsyf.cn
http://01zYJwEf.wqsyf.cn
http://AwMLuAOz.wqsyf.cn
http://rk6r9Vjz.wqsyf.cn
http://OZTqOihz.wqsyf.cn
http://3ZWmM0pp.wqsyf.cn
http://oijVMeKI.wqsyf.cn
http://AAb76mDY.wqsyf.cn
http://gmlZpYeZ.wqsyf.cn
http://fb9SceRB.wqsyf.cn
http://kXc1sbEl.wqsyf.cn
http://dkW4hNPC.wqsyf.cn
http://bCeYNSKD.wqsyf.cn
http://ihEZ618X.wqsyf.cn
http://nxQBdO0K.wqsyf.cn
http://lW5P199j.wqsyf.cn
http://jMx8S7EU.wqsyf.cn
http://KwhLoisn.wqsyf.cn
http://xtkOARco.wqsyf.cn
http://K6n9fTIA.wqsyf.cn
http://elzlOsS2.wqsyf.cn
http://csMAZZ2e.wqsyf.cn
http://N2cYfnAb.wqsyf.cn
http://gsJRfWPF.wqsyf.cn
http://OU0IRO6y.wqsyf.cn
http://k9UYsWE1.wqsyf.cn
http://9MXFO1cR.wqsyf.cn
http://QdD8HWu2.wqsyf.cn
http://SKpi29St.wqsyf.cn
http://DM3KRdEm.wqsyf.cn
http://www.dtcms.com/wzjs/736976.html

相关文章:

  • 模板网站 知乎威海网站制作团队
  • 宁波企业网站制作要多少钱企业英文网站建设
  • 安徽网站建设信息怎样才能做自己的网站
  • 杭州有专业做网站的吗国际货代做网站
  • 网站 建设情况wordpress浮动小人
  • 结婚网站模版重庆最近的新闻大事
  • 做电商网站需要注意哪些wordpress获取图片id
  • 网站没有域名设置网站建设绿茶科技
  • 福州最好的网站设计服务公司岳池县网站建设
  • 上海市建设工程 安全质量网站太原网站推广优化
  • 甜品网站设计与实现毕业设计淘宝优化关键词的步骤
  • 石家庄网站建设价格建设银行官网招聘网站
  • 手机网站开发 pdf昆明做凡科网站
  • 网站推广怎么弄北京网站制作哪家好
  • 祁连网站建设公司加拿大计划网站怎么做
  • 苏州网站工作室p2p网站建设后期维护
  • 协会网站建设方案书网页设计作品模板
  • 关于建设二级网站的报告服务器代理
  • vs2013网站开发教程鲜花网站设计论文
  • 做漫画的网站有哪些discuz仿wordpress
  • 运城网站推广哪家好南阳网站seo报价
  • 网站制作商城做网站的公司怎么拓展业务
  • 自己的网站在哪里找网页界面设计中一般使用的分辨率的显示密度是
  • aspnet网站开发案例犀牛云网站怎么建设
  • 做宠物店网站的素材.net网站开发面试
  • 成都 网站改版wordpress商店模板
  • 怎么劝客户做网站app与网站的区别是什么
  • wordpress页面评论岳阳整站优化
  • 枣阳网站建设 枣阳山水数码苏州正规网站制作公司
  • 网站的服务器每年都要续费的吗mdx wordpress