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

怎么做网站推广林芝地区汽车网站建设需要多少钱

怎么做网站推广林芝地区,汽车网站建设需要多少钱,网页设计公司logo放哪个位置,seo点击排名器本篇博客为 上篇博客的 另一个实现版本#xff0c;训练流程相同#xff0c;所以只实现代码#xff0c;感兴趣可以跳转看一下。 生成对抗网络—GAN#xff08;代码理解#xff09; http://t.csdnimg.cn/HDfLOhttp://t.csdnimg.cn/HDfLO 目录 一、GAN深度卷积实现 1. 模型… 本篇博客为 上篇博客的 另一个实现版本训练流程相同所以只实现代码感兴趣可以跳转看一下。   生成对抗网络—GAN代码理解 http://t.csdnimg.cn/HDfLOhttp://t.csdnimg.cn/HDfLO 目录 一、GAN深度卷积实现 1. 模型结构 1生成器Generator 2判别器Discriminator 2. 代码实现 3. 运行结果展示 二、学习中产生的疑问及文心一言回答 1. 模型初始化 2. 模型训练时 3. 优化器定义 4. 训练数据 5. 模型结构 1生成器         2判别器 一、GAN深度卷积实现 1. 模型结构 1生成器Generator 2判别器Discriminator 2. 代码实现 import torch import torch.nn as nn import argparse import torchvision.transforms as transforms import matplotlib.pyplot as plt from torch.utils.data import DataLoader from torchvision import datasets import numpy as npparser argparse.ArgumentParser() parser.add_argument(--n_epochs, typeint, default20, helpnumber of epochs of training) parser.add_argument(--batch_size, typeint, default64, helpsize of the batches) parser.add_argument(--lr, typefloat, default0.0002, helpadam: learning rate) parser.add_argument(--b1, typefloat, default0.5, helpadam: decay of first order momentum of gradient) parser.add_argument(--b2, typefloat, default0.999, helpadam: decay of first order momentum of gradient) parser.add_argument(--latent_dim, typeint, default100, helpdimensionality of the latent space) parser.add_argument(--img_size, typeint, default32, helpsize of each image dimension) parser.add_argument(--channels, typeint, default1, helpnumber of image channels) parser.add_argument(--sample_interval, typeint, default400, helpinterval between image sampling) opt parser.parse_args() print(opt)# 加载数据 dataloader torch.utils.data.DataLoader(datasets.MNIST(./others/,trainFalse,downloadFalse,transformtransforms.Compose([transforms.Resize(opt.img_size), transforms.ToTensor(), transforms.Normalize([0.5], [0.5])]),),batch_sizeopt.batch_size,shuffleTrue, )def weights_init_normal(m):classname m.__class__.__name__if classname.find(Conv) ! -1:torch.nn.init.normal_(m.weight.data, 0.0, 0.02)elif classname.find(BatchNorm2d) ! -1:torch.nn.init.normal_(m.weight.data, 1.0, 0.02) # 给定均值和标准差的正态分布N(mean,std)中生成值torch.nn.init.constant_(m.bias.data, 0.0)class Generator(nn.Module):def __init__(self):super(Generator, self).__init__()self.init_size opt.img_size // 4 # 原为28*28现为32*32两边各多了2self.l1 nn.Sequential(nn.Linear(opt.latent_dim, 128 * self.init_size ** 2))self.conv_blocks nn.Sequential(nn.BatchNorm2d(128), # 调整数据的分布使其 更适合于 下一层的 激活函数或学习nn.Upsample(scale_factor2),nn.Conv2d(128, 128, 3, stride1, padding1),nn.BatchNorm2d(128, 0.8),nn.LeakyReLU(0.2, inplaceTrue),nn.Upsample(scale_factor2),nn.Conv2d(128, 64, 3, stride1, padding1),nn.BatchNorm2d(64, 0.8),nn.LeakyReLU(0.2, inplaceTrue),nn.Conv2d(64, opt.channels, 3, stride1, padding1),nn.Tanh(),)def forward(self, z):out self.l1(z)out out.view(out.shape[0], 128, self.init_size, self.init_size)img self.conv_blocks(out)return imgclass Discriminator(nn.Module):def __init__(self):super(Discriminator, self).__init__()def discriminator_block(in_filters, out_filters, bnTrue):block [nn.Conv2d(in_filters, out_filters, 3, 2, 1),nn.LeakyReLU(0.2, inplaceTrue),nn.Dropout2d(0.25)]if bn:block.append(nn.BatchNorm2d(out_filters, 0.8))return blockself.model nn.Sequential(*discriminator_block(opt.channels, 16, bnFalse),*discriminator_block(16, 32),*discriminator_block(32, 64),*discriminator_block(64, 128),)# 下采样图片进行 4次卷积操作变为ds_size * ds_size尺寸大小ds_size opt.img_size // 2 ** 4self.adv_layer nn.Sequential(nn.Linear(128 * ds_size ** 2, 1),nn.Sigmoid())def forward(self, img):out self.model(img)out out.view(out.shape[0], -1)validity self.adv_layer(out)return validity# 实例化 generator Generator() discriminator Discriminator()# 初始化参数 generator.apply(weights_init_normal) discriminator.apply(weights_init_normal)# 优化器 optimizer_G torch.optim.Adam(generator.parameters(), lropt.lr, betas(opt.b1, opt.b2)) optimizer_D torch.optim.Adam(discriminator.parameters(), lropt.lr, betas(opt.b1, opt.b2))# 交叉熵损失函数 adversarial_loss torch.nn.BCELoss()def gen_img_plot(model, epoch, text_input):prediction np.squeeze(model(text_input).detach().cpu().numpy()[:16])plt.figure(figsize(4, 4))for i in range(16):plt.subplot(4, 4, i 1)plt.imshow((prediction[i] 1) / 2)plt.axis(off)plt.show()# ---------- # Training # ---------- D_loss_ [] # 记录训练过程中判别器的损失 G_loss_ [] # 记录训练过程中生成器的损失 for epoch in range(opt.n_epochs):# 初始化损失值D_epoch_loss 0G_epoch_loss 0count len(dataloader) # 返回批次数for i, (imgs, _) in enumerate(dataloader):valid torch.ones(imgs.shape[0], 1)fake torch.zeros(imgs.shape[0], 1)# -----------------# Train Generator# -----------------optimizer_G.zero_grad()z torch.randn(imgs.shape[0], opt.latent_dim)gen_imgs generator(z)g_loss adversarial_loss(discriminator(gen_imgs), valid)g_loss.backward()optimizer_G.step()# ---------------------# Train Discriminator# ---------------------optimizer_D.zero_grad()real_loss adversarial_loss(discriminator(imgs), valid)fake_loss adversarial_loss(discriminator(gen_imgs.detach()), fake)d_loss (real_loss fake_loss) / 2d_loss.backward()optimizer_D.step()print([Epoch %d/%d] [Batch %d/%d] [D loss: %f] [G loss: %f]% (epoch, opt.n_epochs, i, len(dataloader), d_loss.item(), g_loss.item()))# batches_done epoch * len(dataloader) i# if batches_done % opt.sample_interval 0:# save_image(gen_imgs.data[:25], others/images/%d.png % batches_done, nrow5, normalizeTrue)# 累计每一个批次的losswith torch.no_grad():D_epoch_loss d_lossG_epoch_loss g_loss# 求平均损失with torch.no_grad():D_epoch_loss / countG_epoch_loss / countD_loss_.append(D_epoch_loss.item())G_loss_.append(G_epoch_loss.item())text_input torch.randn(opt.batch_size, opt.latent_dim)gen_img_plot(generator, epoch, text_input)x [epoch 1 for epoch in range(opt.n_epochs)] plt.figure() plt.plot(x, G_loss_, r) plt.plot(x, D_loss_, b) plt.ylabel(loss) plt.xlabel(epoch) plt.legend([G_loss,D_loss]) plt.show() 3. 运行结果展示 二、学习中产生的疑问及文心一言回答 1. 模型初始化 函数 weights_init_normal 用于初始化 模型参数为什么要 以 均值和标准差 的正态分布中采样的数 为标准 2. 模型训练时 这里“d_loss (real_loss fake_loss) / 2” 中的 “/ 2” 操作在 实际训练中 有什么作用 由(real_loss fake_loss) / 2的 得到 的 d_loss 与real_lossfake_loss得到的 d_loss 进行 回溯两者结果会 有什么不同吗 3. 优化器定义 设置 betas(opt.b1, opt.b2) 有什么 实际的作用通俗易懂的讲一下 betas(opt.b1, opt.b2) 是怎样 更新学习率的 4. 训练数据 这里我们用的data为 MNIST为什么img_size设置为 32不是 28 5. 模型结构 1生成器         解释一下为什么是“Upsample, Conv2d, BatchNorm2d, LeakyReLU ”这种顺序 2判别器 模型的 基本 运算步骤是什么其中为什么需要 “Dropout2d( p0.25, inplaceFalse)”这一步 关于“ds_size” 和 “128 * ds_size ** 2”的实际意义 后续更新 GAN的其他模型结构。
http://www.hkea.cn/news/14405706/

相关文章:

  • php网站开发账号密码沪佳装修口碑怎么样
  • 做网站挂广告赚多少去外包公司的利与弊
  • 哪些专业能建网站个人网站如何搭建
  • 铜仁网站网站建设建立网站大概需要多长时间
  • 网站图标代码ofo的网站用什么做的
  • wordpress多站点文章调用如何建立虚拟架构网站
  • wordpress表单统计插件下载南沙网站建设优化
  • 怎么才能把网站优化做好网站客户端制作多少钱
  • 电子商务网站的基础建设天水+网站建设
  • 如何建设机器人教育网站织梦的网站关键词
  • 网站 备案 多久许昌企业网站建设
  • 自建营销型网站模板外贸平台都有什么网站
  • 网站怎么做cp备案号做app网站的软件叫什么名字
  • 太原关键词网站排名中小企业管理软件
  • 东莞专业微网站建设推广绵阳公司网站制作公司
  • 建设网站报价单来个手机能看的网站2021
  • 仿70网站分类目录源码桂平网站制作
  • 惠州自适应网站建设连锁酒店的网站建设
  • 网站建设考虑事项jsp网站开发平台
  • 花园设计网站推荐线上推广具体应该怎么做
  • 网站建设更新做兼职的翻译网站吗
  • 智能网站建设商家字体设计网站有哪些
  • wordpress精选主题深圳网站优化包年
  • .net开发手机网站网站诚信认证电话销售
  • 企业手机网站cms系统加强网站内容建设
  • 徐州市城乡建设局门户网站帝国cms更改网站ico
  • 班级网页设计图片淮安网站排名优化公司
  • 写论文的网站网站开发费用怎么做账
  • 网站服务器制作上海人才市场档案存放中心
  • 网站建设的色彩搭配wordpress安装不了 404