连连跨境电商网站开发设计模板网站都有哪些

diannao/2025/10/17 3:56:49/文章来源:
连连跨境电商网站开发,设计模板网站都有哪些,做网站的资料修改,企业网站的设计思路引言 在考虑生成对抗网络的文献时#xff0c;Wasserstein GAN 因其与传统 GAN 相比的训练稳定性而成为关键概念之一。在本文中#xff0c;我将介绍基于梯度惩罚的 WGAN 的概念。文章的结构安排如下#xff1a; WGAN 背后的直觉#xff1b;GAN 和 WGAN 的比较#xff1b;…引言 在考虑生成对抗网络的文献时Wasserstein GAN 因其与传统 GAN 相比的训练稳定性而成为关键概念之一。在本文中我将介绍基于梯度惩罚的 WGAN 的概念。文章的结构安排如下 WGAN 背后的直觉GAN 和 WGAN 的比较基于梯度惩罚的WGAN的数学背景使用 PyTorch 从头开始​​在CelebA-Face 数据集上实现WGAN 结果讨论。 WGAN 背后的直觉 GAN 最初由Ian J. Goodfellow 等人发明。在 GAN 中有一个由生成器和判别器进行的双玩家最小最大游戏。早期 GAN 的主要问题是模式崩溃和梯度消失问题。为了克服这些问题长期以来发明了许多技术。WGAN 是试图克服传统 GAN 的这些问题的方法之一。 GAN 与 WGAN 与传统的 GAN 相比WGAN 有一些改进/变化。 评论家而非判别器W-Loss 代替 BCE Loss使用梯度惩罚/权重剪裁进行权重正则化。 传统GAN的判别器被“Critic”取代。从实现的角度来看这只不过是最后一层没有 Sigmoid 激活的判别器。 我们稍后将讨论 WGAN 损失函数和权重正则化。 数学背景 损失函数 这是基于梯度惩罚的 WGAN 的完整损失函数。 等式 1. 具有梯度惩罚的完整 WGAN 损失函数 — [3] 看起来很吓人吧让我们分解一下这个方程。 第 1 部分原始批评损失 该方程产生的值应由生成器正向最大化同时由批评家负向最大化。请注意这里的 x_CURL 是生成器 (G(z)) 生成的图像。 这里D 在最后一层没有 Sigmoid 激活因此 D(*) 可以是任何实数。这给出了地球移动器的真实分布和生成分布之间的距离的近似值 - [1]。我们在这里想做的是 评论家的观点通过最大化等式 2结果的负值/最小化正值尽可能地将评论家对真实图像和生成图像的输出分布分开。这反映了评论家的目标即为真实图像提供更高的分数为更低的分数到生成的图像。生成器的观点尝试通过以相反的方向分离真实图像和生成图像的输出分布来抵消评论家的努力。这最终使式 2 的结果的正值最大化。这反映了生成器的目标是通过欺骗 Critic 来提高生成图像的 Critic 分数。 在这里你可能已经注意到Critic over Discriminator这个名字的出现是因为 Critic 不区分真假图像只是给出一个无界的分数。 为了确保方程有效我们需要确保 Critic 函数是 1-Lipschitz 连续的 — [1]。 1-Lipschitz连续性 函数 f(x) 是 1-L 连续的梯度应始终小于或等于 1。 为了确保这种1-Lipschitz连续性文献中主要提出了2种方法。 Weight Clipping——这是 WGAN 论文 [2] 附带的初始方法梯度惩罚方法——这是在最初的论文之后作为改进提出的[3]。 在本文中我们将重点关注基于梯度惩罚的 WGAN。 第二部分梯度惩罚 这是 Gulrajani 等人提出的梯度惩罚。——[3]。这里我们通过减小 Critic 梯度的 L2 范数与 1 之间的平方距离来强制 Critic 的梯度为 1。注意我们不能强制 Critic 的梯度为 0因为这会导致梯度消失问题。 等等x(^)是什么 考虑到 1-Lipschitz 连续性的定义所有 x 的梯度应≤1。但实际上确保所有可能的图像都满足这种条件是很困难的。因此我们使用 x(^) 表示使用真实图像和生成图像作为梯度惩罚的数据点的随机插值图像。这确保了 Critic 的梯度将通过查看训练期间遇到的一组公平的数据点/图像进行正则化。 Pytorch实现 在这里我将介绍大家应该做的必要更改以便将传统的 GAN 更改为 WGAN。 对于下面的实现我将使用我在之前有关 DCGAN 的文章中详细解释的模型和训练原理。 数据集 Celeba-face 数据集用于训练。下载、预处理、制作数据加载器脚本如代码1所示。 import zipfile import os if not os.path.isfile(celeba.zip):!mkdir data_faces wget https://s3-us-west-1.amazonaws.com/udacity-dlnfd/datasets/celeba.zip with zipfile.ZipFile(celeba.zip,r) as zip_ref:zip_ref.extractall(data_faces/)from torch.utils.data import DataLoadertransform transforms.Compose([transforms.Resize((img_size,img_size)),transforms.ToTensor(),transforms.Normalize((0.5,0.5, 0.5),(0.5, 0.5, 0.5))])dataset datasets.ImageFolder(data_faces, transformtransform) data_loader DataLoader(dataset,batch_sizebatch_size,shuffleTrue)生成器和评论家 Critic 与 Discriminator 相同但不包含最后一层 Sigmoid 激活。 class Generator(nn.Module):def __init__(self,noise_channels,img_channels,hidden_G):super(Generator,self).__init__()self.Gnn.Sequential(conv_trans_block(noise_channels,hidden_G*16,kernal_size4,stride1,padding0),conv_trans_block(hidden_G*16,hidden_G*8),conv_trans_block(hidden_G*8,hidden_G*4),conv_trans_block(hidden_G*4,hidden_G*2),nn.ConvTranspose2d(hidden_G*2,img_channels,kernel_size4,stride2,padding1),nn.Tanh())def forward(self,x):return self.G(x)class Critic(nn.Module):def __init__(self,img_channels,hidden_D):super(Critic,self).__init__()self.Dnn.Sequential(conv_block(img_channels,hidden_G),conv_block(hidden_G,hidden_G*2),conv_block(hidden_G*2,hidden_G*4),conv_block(hidden_G*4,hidden_G*8),nn.Conv2d(hidden_G*8,1,kernel_size4,stride2,padding0))def forward(self,x):return self.D(x)Generator 和 Critic 的支持块如下面的代码 3 所示。 class conv_trans_block(nn.Module):def __init__(self,in_channels,out_channels,kernal_size4,stride2,padding1):super(conv_trans_block,self).__init__()self.blocknn.Sequential(nn.ConvTranspose2d(in_channels,out_channels,kernal_size,stride,padding),nn.BatchNorm2d(out_channels),nn.ReLU())def forward(self,x):return self.block(x)class conv_block(nn.Module):def __init__(self,in_channels,out_channels,kernal_size4,stride2,padding1):super(conv_block,self).__init__()self.blocknn.Sequential(nn.Conv2d(in_channels,out_channels,kernal_size,stride,padding),nn.BatchNorm2d(out_channels),nn.LeakyReLU(0.2))def forward(self,x):return self.block(x)损失函数 与任何其他典型的损失函数不同损失函数可能有点棘手因为它包含梯度。在这里我们将使用梯度惩罚来实现 W-loss稍后可以将其插入 WGAN 模型中。 def get_gen_loss(crit_fake_pred):gen_loss -torch.mean(crit_fake_pred)return gen_lossdef get_crit_loss(crit_fake_pred, crit_real_pred, gradient_penalty, c_lambda):crit_loss torch.mean(crit_fake_pred)- torch.mean(crit_real_pred) c_lambda* gradient_penaltyreturn crit_loss让我们分解一下代码 4 中所示的损失函数。 生成器损失 - 生成器损失不受梯度惩罚的影响。因此它必须仅最大化 D(x_CURL)/ D(G(z)) 项这意味着最小化 -D(G(z))。这是在第 2 行中实现的。批评者损失 - 批评者损失包含等式 1 中所示损失的 2 个部分。在第 6 行中前两项给出等式 2 中解释的原始批评者损失而最后一项给出等式 3 中解释的梯度惩罚。 梯度惩罚可以按照下面的代码 5 来实现 - [1]。 def get_gradient(crit, real_imgs, fake_imgs, epsilon):mixed_imgs real_imgs* epsilon fake_imgs*(1- epsilon)mixed_scores crit(mixed_imgs)gradient torch.autograd.grad(outputs mixed_scores,inputs mixed_imgs,grad_outputs torch.ones_like(mixed_scores),create_graphTrue,retain_graphTrue)[0]return gradientdef gradient_penalty(gradient):gradient gradient.view(len(gradient), -1)gradient_norm gradient.norm(2, dim1)penalty torch.nn.MSELoss()(gradient_norm, torch.ones_like(gradient_norm))return penalty在代码 5 中get_gradient()函数返回从x_hat 混合图像开始到Critic 输出 (mixed_scores)结束的所有网络梯度。这将在gradient_penalty()函数中使用它返回Critic梯度的1和L2范数之间的均方距离。 减少 Critic 的损失最终会减少这种梯度惩罚。这确保了 Critic 函数保留了 1-Lipschitz 连续性。 训练 训练将与上一篇文章中的几乎相同。但这里的损失与传统的 GAN 损失不同。我已经使用WANDB记录我的结果。如果您有兴趣记录结果WANDB 是一个非常好的工具。 CCritic(img_channels,hidden_C).to(device) GGenerator(noise_channels,img_channels,hidden_G).to(device)#CC.apply(init_weights) #GG.apply(init_weights)wandb.watch(G, logall, log_freq10) wandb.watch(C, logall, log_freq10)opt_Ctorch.optim.Adam(C.parameters(),lrlr, betas(0.5,0.999)) opt_Gtorch.optim.Adam(G.parameters(),lrlr, betas(0.5,0.999))gen_repeats1 crit_repeats3noise_for_generatetorch.randn(batch_size,noise_channels,1,1).to(device)losses_C[] losses_G[]for epoch in range(1,epochs1):loss_C_epoch[]loss_G_epoch[]for idx,(x,_) in enumerate(data_loader):C.train()G.train()xx.to(device)x_lenx.shape[0]### Train Closs_C_iter0for _ in range(crit_repeats):opt_C.zero_grad()ztorch.randn(x_len,noise_channels,1,1).to(device)real_imgsxfake_imgsG(z).detach()real_C_outC(real_imgs)fake_C_outC(fake_imgs)epsilon torch.rand(len(x),1,1,1, device device, requires_gradTrue)gradient get_gradient(C, real_imgs, fake_imgs.detach(), epsilon)gp gradient_penalty(gradient)loss_C get_crit_loss(fake_C_out, real_C_out, gp, c_lambda10)loss_C.backward()opt_C.step()loss_C_iterloss_C.item()/crit_repeats### Train Gloss_G_iter0for _ in range(gen_repeats):opt_G.zero_grad()ztorch.randn(x_len,noise_channels,1,1).to(device)fake_C_out C(G(z))loss_G get_gen_loss(fake_C_out)loss_G.backward()opt_G.step()loss_G_iterloss_G.item()/gen_repeats结果 这是经过 10 个 epoch 训练后获得的结果。与传统 GAN 一样生成的图像随着时间的推移变得更加真实。WANDB 项目的所有结果都可以在这里找到。 结论 生成对抗网络一直是深度学习社区的热门话题。由于 GAN 传统训练方法的缺点WGAN 随着时间的推移变得越来越流行。这主要是因为它对模式崩溃具有鲁棒性并且不存在梯度消失问题。在本文中我们实现了一个能够生成人脸的简单 WGAN 模型。 请随意查看 GitHub 代码。如有任何意见、建议和意见我们将不胜感激。 Reference [1] GAN specialization on coursera [2] Arjovsky, Martin et al. “Wasserstein GAN” [3] Gulrajani, Ishaan et al. “Improved Training of Wasserstein GANs” [4] Goodfellow, Ian et al. “Generative Adversarial Networks” [5] Vincent Herrmann, “Wasserstein GAN and the Kantorovich-Rubinstein Duality” [6] Karras, Tero et al. “A Style-Based Generator Architecture for Generative Adversarial Networks” 本文译自Udith Haputhanthri的博文。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/92233.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

张家界做网站公司传统类型的企业网站

tag常被称作里程碑,发版Release时用到。 怎么添加tag? 问 : 刚修改完代码 还未 Commit 可以直接 git tag v2.4.6.1 -m "[Update]更新proxy379ac539"吗? 答: 不可以,git tag 命令是用来给已经存…

企业网站 案例字节跳动员工人数2019

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书籍,指导你学习,给予你目标方向的学习路线,无套路,博客为证。 本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖…

网站建设费用上海公司做网站的费用如何记账

描述 小红正在玩一个“炸砖块”游戏,游戏的规则如下:初始有一个 n * m 的砖块矩阵。小红会炸 k 次,每次会向一个位置投炸弹,如果这个位置有一个砖块,则砖块消失,上方的砖块向下落。小红希望你画出最终砖块的图案。 输入描述 第一行输入三个正整数 n, m, k,代表矩阵的行…

网站建设与维护岗位职责南京企业网站做优化

OpenDDS、FastDDS数据分发服务中间件设计 软件架构 应用层DDS层RTPS层传输层 软件层次 FastDDS整体架构如下,这里可以看到DDS和RTPS的关系。另外缺少一部分IDL(统一描述语言),其应该是Pub、Sub的反序列化、序列化工具。 在RT…

旅游网站开发的国内外现状阳江做网站公司

解决方式 当使用自定义组件或者slot标签作为组件A的插槽内容时,在组件A中必须定义一个默认插槽,对普通view等标签无限制。且因为wx:if为false的插槽等同没有定义 场景复现(仅以自己遇到情况为例) 1、调试基础库2.19.4 2、使用w…

个人网站 内容建设四川省住房城乡建设厅官网查询

这里说的日期是指字符串的日期格式,如“2014-10-15”,我们要推断这个日期是否在今天之前,网上看到好多推断的方法,都是拿这个日期转换成Date对象 然后与new Date()比較,使用comparetTo() 或者before()方法&#xff0c…

大型美容网站建设动态图表制作方法

ES6是JavaScript语言的新一代标准,是ECMAScript的第六个版本,加入了很多新的功能和语法,在很多框架,如在使用Vue,React等框架的项目中一般都采用ES6语法来编写的,下面对经常用到的ES6语法做简要的介绍。 1.let,const l…

国外社交网站设计欣赏高端ppt制作

之前的一段时间让我意识到,零碎的知识记录和发布对自己的学习和掌握来说意义不大,如果不能从基础知识开始建立生动的原理,发布这些博客只是让自己成为一个无情的背诵者。另外更可悲的一点是,会让自己误认为学会了自己发布的内容。…

怎么自己做网站推广百度站长工具平台登录

简介 主芯片STM32F103ZET6,读取内部温度其他知识 内部温度所在ADC通道 温度计算公式 V25跟Avg_Slope值 参考文档 stm32f103ze.pdf 电压计算公式 Vout Vref * (D / 2^n) 其中Vref代表参考电压, n为ADC的位数, D为ADC输入的数字信号。 实现…

做如美团式网站要多少钱平台网站开发价格

组织机构 部门 部门可以创建下级部门部门可以设置部门主管,可以是多人部门可以默认构建,沟通群可以设置部门信息,比如电话、简介可以设置部门的可见性,比如隐藏本部门,本部门将不会在组织机构、搜索,个人…

做网站asp和asp.net有没有专门做布料的网站

前言 在C语言中,当我们定义了一个结构体时,通常需要编写一个函数来初始化它,否则在创建结构体变量时容易忘记调用初始化函数,导致程序出错。但在C中,我们将不会有这样的烦恼,前提是编写了正确的构造函数。…

做网站推销好做吗编程网址

FDTD2018a安装问题记录 目录问题解决方案 目录 问题 解决方案 电脑名字如果是中文改成英文

宏大建设集团有限公司网站人事怎么做招聘网站比对分析

转载自 对Java的URL类支持的协议进行扩展的方法JAVA默认提供了对file,ftp,gopher,http,https,jar,mailto,netdoc协议的支持。当我们要利用这些协议来创建应用时,主要会涉及到如下几个类:java.net.URL、java.net.URLConnection、InputStream。URL类默认…

接单做网站wordpress后台管理插件

计算机内存原理 要说递归和栈的问题,首先就要说下计算机内存的基本原理。简单理解计算机内存原理可以将一台电脑看作超市的存包柜,每个柜子都有柜号(即计算机中的地址,如0x000000f)。当需要将数据存储到计算机中时&…

怎么在网上查网站空间是双线还是单线嘉兴网站建设方案策划

目录 ​​​​​​​一、文件和目录(II) 1、文件 2、目录 二、文件存取方法、存取控制(II) 1、文件存取方法 2、文件的访问 3、文件控制 三、常见嵌入式文件系统(I) 一、文件和目录(I…

可以做书的网站贷款网站建设

转载链接:http://www.jb51.net/css/72443.html 用css3的animation完成一个动画,当只有这个动画完成时才执行令一个事件,比如让动画保持在终止的状态或其他一些事件。我们该怎么办呢。 第一种方法: 用计时器,设定一个…

免费域名注册网站有哪些网站建设分享

下载Windows Live Writer整体安装包,最好是离线安装包 2.在xp系统上安装 3.查找C:\Program Files\Common Files\Windows Live\.cache目录 .cache目录是隐藏的,目录下面就是各个安装文件的msi安装包 4.拷贝相应的msi文件,到Windows 2003安装就…

茂名优化网站建设家装网站

前言 近日,艾伦人工智能研究所联合多个顶尖学术机构发布了史上首个100%开源的大模型“OLMo”,这一举措被认为是AI开源社区的一大里程碑。OLMo不仅公开了模型权重,还包括了完整的训练代码、数据集和训练过程,为后续的开源工作设立…

科技有限公司可以做网站建设吗媒体代发网站

文章目录 一、目标:容器事件和事件监听器二、设计:容器事件和事件监听器三、实现:容器事件和事件监听器3.1 工程结构3.2 容器事件和事件监听器类图3.3 定义和实现事件3.3.1 定义事件抽象类3.3.2 定义应用上下文事件实现类3.3.3 上下文刷新事件…

如何让网站上线中国最大的外贸平台

随着软件行业的飞速发展,互联网公司对开发者的技能要求也越来越高。而高并发、网络编程、微服务、海量数据的处理等技能,是每一个开发者进阶时的必学知识。为了帮助初级开发者快速掌握这些实用技术,本书以“理论+范例”的形式对各…