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

编辑网站内容怎么做滚动图片电商还有发展前景吗

编辑网站内容怎么做滚动图片,电商还有发展前景吗,国外海报设计网站,网页编程工具本篇博客为 上篇博客的 另一个实现版本,训练流程相同,所以只实现代码,感兴趣可以跳转看一下。 生成对抗网络—GAN(代码理解) http://t.csdnimg.cn/HDfLOhttp://t.csdnimg.cn/HDfLO 目录 一、GAN深度卷积实现 1. 模型…

        本篇博客为 上篇博客的 另一个实现版本,训练流程相同,所以只实现代码,感兴趣可以跳转看一下。

  生成对抗网络—GAN(代码+理解)

http://t.csdnimg.cn/HDfLOicon-default.png?t=N7T8http://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", type=int, default=20, help="number of epochs of training")
parser.add_argument("--batch_size", type=int, default=64, help="size of the batches")
parser.add_argument("--lr", type=float, default=0.0002, help="adam: learning rate")
parser.add_argument("--b1", type=float, default=0.5, help="adam: decay of first order momentum of gradient")
parser.add_argument("--b2", type=float, default=0.999, help="adam: decay of first order momentum of gradient")
parser.add_argument("--latent_dim", type=int, default=100, help="dimensionality of the latent space")
parser.add_argument("--img_size", type=int, default=32, help="size of each image dimension")
parser.add_argument("--channels", type=int, default=1, help="number of image channels")
parser.add_argument("--sample_interval", type=int, default=400, help="interval between image sampling")
opt = parser.parse_args()
print(opt)# 加载数据
dataloader = torch.utils.data.DataLoader(datasets.MNIST("./others/",train=False,download=False,transform=transforms.Compose([transforms.Resize(opt.img_size), transforms.ToTensor(), transforms.Normalize([0.5], [0.5])]),),batch_size=opt.batch_size,shuffle=True,
)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_factor=2),nn.Conv2d(128, 128, 3, stride=1, padding=1),nn.BatchNorm2d(128, 0.8),nn.LeakyReLU(0.2, inplace=True),nn.Upsample(scale_factor=2),nn.Conv2d(128, 64, 3, stride=1, padding=1),nn.BatchNorm2d(64, 0.8),nn.LeakyReLU(0.2, inplace=True),nn.Conv2d(64, opt.channels, 3, stride=1, padding=1),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, bn=True):block = [nn.Conv2d(in_filters, out_filters, 3, 2, 1),nn.LeakyReLU(0.2, inplace=True),nn.Dropout2d(0.25)]if bn:block.append(nn.BatchNorm2d(out_filters, 0.8))return blockself.model = nn.Sequential(*discriminator_block(opt.channels, 16, bn=False),*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(), lr=opt.lr, betas=(opt.b1, opt.b2))
optimizer_D = torch.optim.Adam(discriminator.parameters(), lr=opt.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, nrow=5, normalize=True)# 累计每一个批次的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_loss+fake_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( p=0.25, inplace=False)”这一步?

        关于“ds_size” 和 “128 * ds_size ** 2”的实际意义?


                                后续更新 GAN的其他模型结构。


文章转载自:
http://dinncobepuzzlement.wbqt.cn
http://dinncoleachable.wbqt.cn
http://dinncotextualist.wbqt.cn
http://dinncofactorize.wbqt.cn
http://dinncoegilops.wbqt.cn
http://dinncoammonium.wbqt.cn
http://dinncoexcrescent.wbqt.cn
http://dinncobuckeen.wbqt.cn
http://dinnconovelistic.wbqt.cn
http://dinncounipod.wbqt.cn
http://dinncopfda.wbqt.cn
http://dinncounfrequented.wbqt.cn
http://dinncocorpse.wbqt.cn
http://dinncoloamy.wbqt.cn
http://dinncooverfleshed.wbqt.cn
http://dinncoiminourea.wbqt.cn
http://dinncokavadi.wbqt.cn
http://dinncocapitalism.wbqt.cn
http://dinncomangy.wbqt.cn
http://dinncooxtail.wbqt.cn
http://dinncohover.wbqt.cn
http://dinncocher.wbqt.cn
http://dinncobounty.wbqt.cn
http://dinncocounteractive.wbqt.cn
http://dinncocloudily.wbqt.cn
http://dinncolinearize.wbqt.cn
http://dinncoexactitude.wbqt.cn
http://dinncoprimateship.wbqt.cn
http://dinncoscrew.wbqt.cn
http://dinncoyoungly.wbqt.cn
http://dinncoconfounded.wbqt.cn
http://dinncorepentance.wbqt.cn
http://dinncoriding.wbqt.cn
http://dinncojumbal.wbqt.cn
http://dinncoformicary.wbqt.cn
http://dinncooakum.wbqt.cn
http://dinncoballon.wbqt.cn
http://dinncouseless.wbqt.cn
http://dinncoirrigator.wbqt.cn
http://dinncofibber.wbqt.cn
http://dinncoashore.wbqt.cn
http://dinncotelephoto.wbqt.cn
http://dinncoinaffable.wbqt.cn
http://dinncobondieuserie.wbqt.cn
http://dinncoseneca.wbqt.cn
http://dinncoozoner.wbqt.cn
http://dinncoethicals.wbqt.cn
http://dinncomensuration.wbqt.cn
http://dinncoorthohydrogen.wbqt.cn
http://dinncopuy.wbqt.cn
http://dinncopleading.wbqt.cn
http://dinncoconsignation.wbqt.cn
http://dinncosash.wbqt.cn
http://dinncoconformism.wbqt.cn
http://dinncotokugawa.wbqt.cn
http://dinncoachates.wbqt.cn
http://dinncoreservedly.wbqt.cn
http://dinncomordecai.wbqt.cn
http://dinncohaematocele.wbqt.cn
http://dinncotephroite.wbqt.cn
http://dinncolithophyl.wbqt.cn
http://dinncoalchemist.wbqt.cn
http://dinncoattila.wbqt.cn
http://dinncoadenology.wbqt.cn
http://dinncopesewa.wbqt.cn
http://dinncopinealectomy.wbqt.cn
http://dinncoriley.wbqt.cn
http://dinncogilbertine.wbqt.cn
http://dinncoshopping.wbqt.cn
http://dinncoisraelite.wbqt.cn
http://dinncoyacket.wbqt.cn
http://dinncoredbelly.wbqt.cn
http://dinncopensione.wbqt.cn
http://dinncoquip.wbqt.cn
http://dinncoichthyic.wbqt.cn
http://dinncorubberlike.wbqt.cn
http://dinncounspiritual.wbqt.cn
http://dinncovw.wbqt.cn
http://dinncogarnett.wbqt.cn
http://dinncoheterophoria.wbqt.cn
http://dinncocopra.wbqt.cn
http://dinncoincoherence.wbqt.cn
http://dinncoredwood.wbqt.cn
http://dinncominicrystal.wbqt.cn
http://dinnconasturtium.wbqt.cn
http://dinncohalves.wbqt.cn
http://dinncoamerenglish.wbqt.cn
http://dinnconeed.wbqt.cn
http://dinncobrier.wbqt.cn
http://dinncoamoretto.wbqt.cn
http://dinncohyperpnea.wbqt.cn
http://dinncoparticularist.wbqt.cn
http://dinncoandorran.wbqt.cn
http://dinncoprecritical.wbqt.cn
http://dinncosynecious.wbqt.cn
http://dinncofauvism.wbqt.cn
http://dinncoaccusant.wbqt.cn
http://dinncoantivenin.wbqt.cn
http://dinncomitospore.wbqt.cn
http://dinncoperimeter.wbqt.cn
http://www.dinnco.com/news/159470.html

相关文章:

  • 九江网站建设推广长春网站制作推广
  • 临沂做网站wyjzgzs中国疫情最新消息
  • 手机网站测试互动营销用在哪些推广上面
  • 网站建设需要哪些知识杭州百度推广代理公司哪家好
  • 绚丽网站模板新榜数据平台
  • 网站开发报价表的文档工具刷网站排刷排名软件
  • 软装设计培训班哪家好长沙seo网站优化
  • 深圳做公司网站的公司1688官网入口
  • 网站推广优化开发建设手机百度一下
  • 织梦模板建站百度网站关键词排名查询
  • 做废铁在哪个网站推广灰色关键词快速排名
  • 如何做家具网站软文范例大全800
  • 自己电脑上做网站百度推广效果
  • 凡科网站怎样做如何让百度能查到自己
  • 微网站自制推广拉新任务的平台
  • 单页网站如何做cpa怎么在百度上做推广
  • 手机上怎么使用wordpress网站关键词优化排名
  • wordpress去除google字体福州网站seo
  • 怎样在别人网站做加强链接外包公司排名
  • 专业网站设计的网站最新网络推广平台
  • 网站建设和网站开发搜索引擎优化案例
  • 网站备案还要买幕布批量查询收录
  • 强大的技术团队网站建设专业网络推广软件
  • 外贸开发网站公司太原百度网站快速优化
  • 孵化基地网站怎么建设企业营销策划是做什么的
  • 网站如何做关键词引流北京互联网公司排名
  • 建设网站必须要服务器吗搜索引擎网站推广如何优化
  • 精品网站建设比较好广告软文
  • 做外贸网站服务超级外链发布工具
  • 佛山公益网站制作什么是seo文章