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

最牛的科技网站建设利用高权重网站做关键词

最牛的科技网站建设,利用高权重网站做关键词,少儿编程收费价目表,小程序服务器多少钱#x1f368; 本文为#x1f517;365天深度学习训练营 中的学习记录博客#x1f356; 原作者#xff1a;K同学啊 G1 GAN生成MNIST手写数字图像 1. 生成对抗网络 (GAN) 简介 生成对抗网络 (GAN) 是一种通过“对抗性”学习生成数据的深度学习模型#xff0c;通常用于生成… 本文为365天深度学习训练营 中的学习记录博客 原作者K同学啊 G1 GAN生成MNIST手写数字图像 1. 生成对抗网络 (GAN) 简介 生成对抗网络 (GAN) 是一种通过“对抗性”学习生成数据的深度学习模型通常用于生成图像、视频等数据。GAN 由两个网络组成 生成器 (Generator)用于生成假的数据样本试图让判别器无法分辨其为假的。判别器 (Discriminator)用于区分输入的数据是真实的还是生成器生成的。 GAN 的核心思想是生成器和判别器通过相互对抗学习生成器逐渐提高生成逼真数据的能力而判别器逐渐提高区分真假数据的能力。最后生成器生成的样本与真实样本之间的差异会越来越小。 GAN 的基本流程 判别器输入真实数据判别器输出一个接近1的值表示为真生成器生成假的数据并试图欺骗判别器判别器输出接近0的值表示为假生成器通过更新自身的参数试图让判别器认为生成的数据是真实的。 GAN 的目标是使得生成器生成的假数据能骗过判别器。 GAN 的损失函数 GAN 的训练目标是让生成器和判别器进行对抗训练其损失函数分为两个部分生成器损失和判别器损失。生成器的目标是最大化判别器判断生成数据为真的概率判别器的目标是最大化正确判断真实数据和生成数据的概率。 判别器的损失函数定义为 L D − [ E x ∼ p data [ log ⁡ D ( x ) ] E z ∼ p z [ log ⁡ ( 1 − D ( G ( z ) ) ) ] ] \mathcal{L}_D - \left[ \mathbb{E}_{x \sim p_{\text{data}}} \left[ \log D(x) \right] \mathbb{E}_{z \sim p_z} \left[ \log (1 - D(G(z))) \right] \right] LD​−[Ex∼pdata​​[logD(x)]Ez∼pz​​[log(1−D(G(z)))]] 生成器的损失函数定义为 L G − E z ∼ p z [ log ⁡ D ( G ( z ) ) ] \mathcal{L}_G - \mathbb{E}_{z \sim p_z} \left[ \log D(G(z)) \right] LG​−Ez∼pz​​[logD(G(z))] 其中 ( D(x) ) 表示判别器对真实数据 ( x ) 判别为真的概率( G(z) ) 是生成器通过噪声 ( z ) 生成的假数据( D(G(z)) ) 表示判别器对生成器生成数据的输出希望趋向于1。 2. PyTorch 实现 下面使用 PyTorch 实现 GAN 生成 MNIST 手写数字图像。 2.1 导入库与超参数设置 import os import numpy as np import torch import torch.nn as nn from torchvision import datasets, transforms from torch.utils.data import DataLoader from torchvision.utils import save_image# 创建文件夹 os.makedirs(./output/images/, exist_okTrue)# 超参数设置 n_epochs 50 batch_size 64 lr 0.0002 latent_dim 100 img_size 28 channels 1 img_shape (channels, img_size, img_size) img_area np.prod(img_shape)cuda True if torch.cuda.is_available() else False2.2 数据预处理 使用 torchvision.datasets.MNIST 下载并处理 MNIST 数据集。数据会被标准化到 [-1, 1] 区间并通过 DataLoader 转化为可迭代数据集。 # 下载MNIST数据集并进行预处理 mnist datasets.MNIST(root./data, trainTrue, downloadTrue,transformtransforms.Compose([transforms.Resize(img_size),transforms.ToTensor(),transforms.Normalize([0.5], [0.5])]))dataloader DataLoader(mnist, batch_sizebatch_size, shuffleTrue)2.3 定义生成器模型 生成器接受一个随机噪声向量 ( z )通过多层线性变换和激活函数逐步生成一个 28x28 的图像。 class Generator(nn.Module):def __init__(self):super(Generator, self).__init__()def block(in_feat, out_feat, normalizeTrue):layers [nn.Linear(in_feat, out_feat)]if normalize:layers.append(nn.BatchNorm1d(out_feat, 0.8))layers.append(nn.LeakyReLU(0.2, inplaceTrue))return layersself.model nn.Sequential(*block(latent_dim, 128, normalizeFalse),*block(128, 256),*block(256, 512),*block(512, 1024),nn.Linear(1024, img_area),nn.Tanh())def forward(self, z):img self.model(z)return img.view(img.size(0), *img_shape)2.4 定义判别器模型 判别器是一个二分类网络输入一个 28x28 的图像输出一个表示真假概率的值。 class Discriminator(nn.Module):def __init__(self):super(Discriminator, self).__init__()self.model nn.Sequential(nn.Linear(img_area, 512),nn.LeakyReLU(0.2, inplaceTrue),nn.Linear(512, 256),nn.LeakyReLU(0.2, inplaceTrue),nn.Linear(256, 1),nn.Sigmoid())def forward(self, img):img_flat img.view(img.size(0), -1)validity self.model(img_flat)return validity2.5 定义优化器与损失函数 generator Generator() discriminator Discriminator()# 定义损失函数 criterion nn.BCELoss()# 定义生成器和判别器的优化器 optimizer_G torch.optim.Adam(generator.parameters(), lrlr, betas(0.5, 0.999)) optimizer_D torch.optim.Adam(discriminator.parameters(), lrlr, betas(0.5, 0.999))if cuda:generator.cuda()discriminator.cuda()criterion.cuda()2.6 训练过程 2.6.1 训练判别器 判别器需要区分真实图像和生成的假图像通过两个损失值相加更新判别器的参数。 real_img Variable(imgs.type(torch.cuda.FloatTensor)) real_label Variable(torch.ones(imgs.size(0), 1).cuda()) fake_label Variable(torch.zeros(imgs.size(0), 1).cuda())real_out discriminator(real_img) loss_real criterion(real_out, real_label)z Variable(torch.randn(imgs.size(0), latent_dim).cuda()) fake_img generator(z).detach() fake_out discriminator(fake_img) loss_fake criterion(fake_out, fake_label)loss_D loss_real loss_fake optimizer_D.zero_grad() loss_D.backward() optimizer_D.step()2.6.2 训练生成器 生成器的目标是让判别器认为生成的数据是真实的因此生成器的损失是判别器对假图像的输出。 z Variable(torch.randn(imgs.size(0), latent_dim).cuda()) fake_img generator(z) output discriminator(fake_img)loss_G criterion(output, real_label) optimizer_G.zero_grad() loss_G.backward() optimizer_G.step()2.7 保存与可视化生成图像 if batches_done % sample_interval 0:save_image(fake_img.data[:25], ./output/images/%d.png % batches_done, nrow5, normalizeTrue)4. 总结 这周学习了如何使用 PyTorch 实现生成对抗网络 (GAN) 来生成 MNIST 手写数字图像。GAN 通过生成器与判别器之间的对抗学习不断提升生成图像的质量是一种非常强大的生成模型。可以在论文中将其作为数据增强的一种方式。
http://www.dnsts.com.cn/news/158711.html

相关文章:

  • 大兴网站制作农八师建设兵团社保网站
  • 七台河建设网站鞍山58同城最新招聘信息
  • 网站视频大全中企动力全球邮企业邮箱
  • 北京做网站的工作室小程序怎么开发自己的小程序
  • 网站流量统计主要指标包括手机免费代理ip网站
  • 济南网站推广徽hyhyk1济南网站开发公司排名
  • 自己制作的网站怎么做分页网站开发网页
  • 个人博客网站的建设结构图网页升级转跳大通知
  • 网站建设案例精粹做3d打印网站
  • 江苏省职业建设注册管理中心网站网站建设需要做哪些工作
  • 欧美网站设计特点昆明做网站建设的公司哪家好
  • 深圳做网站哪里好现在去北京政策最新
  • html5做网站济南百度seo排名公司
  • 优化文章对网站的重要性网站建设制作费用预算表
  • 海南住建部建设网站的网站泰安网络网站
  • php网站开发基础教程网站怎么做域名实名认证吗
  • 网站开发的经费预算企业所得税怎么算公式
  • 一般网站开发用什么语言wordpress lms
  • 五莲网站建设网站导航设计
  • 明年做哪个网站能致富学习做网站可以吗
  • 成都手机网站建设哪家公司好网站下雪特效
  • 网站建设中源码编程同样重要大型网站搜索怎么做的
  • nas可以做网站服务器吗海南企业年报网上申报入口
  • 网站推广计划怎么写建设工程造价信息网官网
  • 阿里云服务器做网站安全吗wordpress 显示简介
  • 建筑设计方案网站如何推广自己的业务
  • 苏州木渎做网站用什么程序做资讯类网站
  • 企业建设网站好处深圳做电商网站
  • 织梦网站怎么做301中国网络安全厂商排名
  • 北京商城网站建设报价单建立网站邮箱