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

武汉网站制作开发短视频推广引流方案

武汉网站制作开发,短视频推广引流方案,管理网站建设,百度收录网站左侧图片文章目录 1. 前言1.1 判别器和生成器的作用?2.2 个人总结 2. 核心代码示例2.1 训练判别器网络2.2 训练生成器网络 参考文章 1. 前言 生成对抗网络的原文:Generative Adversarial Nets,该论文的精读视频:生成对抗网络GAN开山之作论…

文章目录

  • 1. 前言
    • 1.1 判别器和生成器的作用?
    • 2.2 个人总结
  • 2. 核心代码示例
    • 2.1 训练判别器网络
    • 2.2 训练生成器网络
  • 参考文章

1. 前言

  生成对抗网络的原文:Generative Adversarial Nets,该论文的精读视频:生成对抗网络GAN开山之作论文精读,该论文解析相关的视频:生成对抗网络GAN原理解析。下面是自己对生成对抗网络的理解。

1.1 判别器和生成器的作用?

  1. 生成器(Generator)

(1)作用:生成器的主要任务是生成看起来“真实”的数据(假数据)。它从一个随机噪声向量(通常是高斯分布或均匀分布的随机数)作为输入,经过一系列变换后输出与目标数据分布相似的数据样本。
(2)工作机制:接收随机噪声 z 作为输入;将 z 映射到目标数据空间(例如图像、音频等),生成伪造数据 G(z);目标是让生成的数据尽可能“欺骗”判别器,使其无法区分生成的数据和真实数据。

  1. 判别器(Discriminator)

(1)作用:判别器是一个二分类器,用于判断输入数据是来自真实数据分布还是生成器生成的伪造数据。
(2)工作机制:接收真实数据 x 和生成数据 G(z) 作为输入;输出一个概率值(" 例如0表示“假”,1表示“真” "),表示输入数据是真实数据的可能性;目标是尽可能准确地分辨出真实数据和伪造数据。

  1. 两者之间的关系

(1)对抗过程:生成器和判别器在训练过程中不断博弈。生成器试图生成更逼真的数据以欺骗判别器,而判别器则努力提高自己的辨别能力
(2)动态平衡:理想情况下,经过充分训练后,生成器能够生成几乎无法区分于真实数据的样本,而判别器对所有输入的判断概率接近 0.5(即无法分辨真假)。

  1. 真假数据的输入流程

在这里插入图片描述

2.2 个人总结

(1)对于生成器 G :随机噪声数据 z 通过生成器 G 得到 G(z),我们希望 G(z) 经过判别器 D 输出的概率 D[G(z)] 越大越好(预测概率 D[G(z)] ——> 1)。
(2)对于判别器 D:真实数据 x 通过判别器 D 输出概率 D(x),我们希望概率 D(x) 越大越好(预测概率 D(x) ——> 1);对于虚假数据 G(z),我们希望 G(z) 经过判别器 D 输出的概率 D[G(z)] 越小越好(预测概率 D[G(z)] ——> 0)。

2. 核心代码示例

class Discriminator(nn.Module):# 判别器网络...class Generator(nn.Module):# 生成器网络...# 创建生成器,判别器对象
generator = Generator()
discriminator = Discriminator()# 定义生成器,判别器对象相应的优化器
optimizer_G = torch.optim.Adam(generator.parameters(), lr=opt.lr, betas=(opt.b1, opt.b2))
optimizer_D = torch.optim.Adam(discriminator.parameters(), lr=opt.lr, betas=(opt.b1, opt.b2))# 定义二分类的交叉熵损失
criterion = torch.nn.BCELoss()

2.1 训练判别器网络

  1. 定义真实数据的label为1,虚假数据的label为0
real_label = Variable(torch.ones(imgs.size(0), 1)).cuda()  ## 定义真实的图片label为1
fake_label = Variable(torch.zeros(imgs.size(0), 1)).cuda()  ## 定义假的图片的label为0
  1. 计算真实数据的损失
real_out = discriminator(real_img)  ## 将真实图片放入判别器中, 输出的值越接近1越好
loss_real_D = criterion(real_out, real_label)  ## 得到真实图片的loss
  1. 计算虚假数据的损失
z = Variable(torch.randn(imgs.size(0), opt.latent_dim)).cuda()  ## 随机生成一些噪声, 大小为(128, 100)
fake_img = generator(z).detach()  ## 随机噪声放入生成网络中,生成一张假的图片。
fake_out = discriminator(fake_img)  ## 判别器判断假的图片, 输出的值越接近0越好
loss_fake_D = criterion(fake_out, fake_label)  ## 得到假的图片的loss
  1. 利用损失函数优化判别器网络
loss_D = loss_real_D + loss_fake_D  ## 损失包括判真损失和判假损失
optimizer_D.zero_grad()  ## 在反向传播之前,先将梯度归0
loss_D.backward()  ## 将误差反向传播
optimizer_D.step()  ## 更新参数

2.2 训练生成器网络

  1. 定义虚假数据的label为1
real_label = Variable(torch.ones(imgs.size(0), 1)).cuda()
  1. 计算生成器网络的损失
z = Variable(torch.randn(imgs.size(0), opt.latent_dim)).cuda()  ## 得到随机噪声
fake_img = generator(z)  ## 随机噪声输入到生成器中,得到一副假的图片
output = discriminator(fake_img)  ## 经过判别器得到的结果
loss_G = criterion(output, real_label)  ## 得到的假的图片与真实的图片的label的loss
  1. 利用损失函数优化生成器网络
optimizer_G.zero_grad()  ## 梯度归0
loss_G.backward()  ## 进行反向传播
optimizer_G.step()  ## step()一般用在反向传播后面,用于更新生成网络的参数

参考文章

生成对抗网络(GAN)
生成对抗网络——GAN原理与代码
GAN(生成对抗网络)的系统全面介绍(醍醐灌顶)
Pytorch生成对抗网络(GAN)官方入门教程

http://www.dtcms.com/wzjs/270350.html

相关文章:

  • 免费个人二级域名网站中山网站建设
  • 网页建立站点百度网址查询
  • 关于开通网站建设的请示自媒体135网站免费下载安装
  • 建设积分网站一键搭建网站工具
  • 个商个体户可以建设网站不广州新塘网站seo优化
  • 有没有专门做装修的网站seo网络推广培训班
  • 网页游戏排行榜知乎廊坊自动seo
  • 腾讯云10g数字盘做网站够么必应bing搜索引擎
  • b2c网站程序中国网站排名前100
  • 郑州外贸网站建设竞价托管开户
  • 新疆知名的网站建设公司seo网站快速整站优化技术
  • wordpress清除多余附件福州seo关键字推广
  • 做招商网站百度ai搜索引擎
  • 辽宁品牌建设促进会 网站企业网站建设方案策划书
  • 展示型网站aso优化哪家好
  • 吴江企业网站制作广州seo关键词优化外包
  • dreamweaver网页设计形考任务一东莞营销网站建设优化
  • 预约支付wordpressseo网站推广专员
  • 手机网站用什么软件哈尔滨企业网站seo
  • 上海网站建设的价长沙网络营销顾问
  • 东莞网站建设公司招聘信息一站式海外推广平台
  • 青岛专业做网站优化网站怎么优化到首页
  • 苹果如何做网站网站流量统计分析报告
  • php网站模板源码下载seo人人网
  • iis怎么做网站空间域名注册费用
  • 网站做视频在线观看网址网络营销和网络推广
  • 揭阳门户网站开发网络推广渠道公司
  • 初中信息科技怎么自己做网站seo是什么seo怎么做
  • 网站成功案例分析app推广赚钱平台
  • 用scala做的网站关于华大18年专注seo服务网站制作应用开发