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

生物类培养基网站建设 中企动力站长源码之家

生物类培养基网站建设 中企动力,站长源码之家,诗词网页制作素材,自己做的网站怎样才有网址浏览☁️主页 Nowl 🔥专栏 《深度学习》 📑君子坐而论道,少年起而行之 ​​ 文章目录 一、GAN1.基本思想2.用途3.模型架构 二、具体任务与代码1.任务介绍2.导入库函数3.生成器与判别器4.预处理5.模型训练6.图片生成7.不同训练轮次的结果对比 一…

Image Description

☁️主页 Nowl

🔥专栏 《深度学习》

📑君子坐而论道,少年起而行之

​​

在这里插入图片描述

文章目录

  • 一、GAN
    • 1.基本思想
    • 2.用途
    • 3.模型架构
  • 二、具体任务与代码
    • 1.任务介绍
    • 2.导入库函数
    • 3.生成器与判别器
    • 4.预处理
    • 5.模型训练
    • 6.图片生成
    • 7.不同训练轮次的结果对比

一、GAN

1.基本思想

想象一下,市面上有许多仿制的画作,人们为了辨别这些伪造的画,就会提高自己的鉴别技能,然后仿制者为了躲过鉴别又会提高自己的伪造技能,这样反反复复,两个群体的技能不断得到提高,这就是GAN的基本思想

2.用途

我们知道GAN的全名是生成对抗网络,那么它就是以生成为主要任务,所以可以用在这些方面

  • 生成虚拟数据集,当数据集数量不够时,我们可以用这种方法生成数据
  • 图像清晰化,可以将模糊图片清晰化
  • 文本到图像的生成,可以训练文生图模型

GAN的用途还有很多,可以在学习过程中慢慢发现

3.模型架构

GAN的主要结构包含一个生成器和一个判别器,我们先输入一堆杂乱数据(被称为噪声)给生成器,接着让判别器将生成器生成的数据与真实的数据作对比,看是否能判别出来,以此往复训练

在这里插入图片描述

二、具体任务与代码

1.任务介绍

相信很多人都对手写数字数据集不陌生了,那我们就训练一个生成手写数字的GAN,注意:本示例代码需要的运行时间较长,请在高配置设备上运行或者减少训练回合数

在这里插入图片描述

2.导入库函数

先导入必要的库函数,包括torch用来处理神经网络方面的任务,numpy用来处理数据

import torch
import torch.nn as nn
import torch.optim as optim
from torch.autograd.variable import Variable
from torchvision import transforms, datasets
import numpy as np

3.生成器与判别器

使用torch定义生成器与判别器的基本结构,这里由于任务比较简单,只用定义线性层就行,再给线性层添加相应的激活函数就行了

# 定义生成器(Generator)和判别器(Discriminator)的简单网络结构
class Generator(nn.Module):def __init__(self):super(Generator, self).__init__()self.model = nn.Sequential(nn.Linear(100, 256),nn.ReLU(),nn.Linear(256, 784),nn.Tanh())def forward(self, noise):return self.model(noise)class Discriminator(nn.Module):def __init__(self):super(Discriminator, self).__init__()self.model = nn.Sequential(nn.Linear(784, 256),nn.LeakyReLU(0.2),nn.Linear(256, 1),nn.Sigmoid())def forward(self, image):return self.model(image)

4.预处理

这一部分定义了模型参数,加载了数据集,定义了损失函数与优化器,这些是神经网络训练时的一些基本参数

# 定义一些参数
batch_size = 100
learning_rate = 0.0002
epochs = 500# 加载MNIST数据集
transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,), (0.5,))
])mnist_data = datasets.MNIST(root='./data', train=True, transform=transform, download=True)
data_loader = torch.utils.data.DataLoader(dataset=mnist_data, batch_size=batch_size, shuffle=True)# 初始化生成器、判别器和优化器
generator = Generator()
discriminator = Discriminator()
optimizer_G = optim.Adam(generator.parameters(), lr=learning_rate)
optimizer_D = optim.Adam(discriminator.parameters(), lr=learning_rate)# 损失函数
criterion = nn.BCELoss()

5.模型训练

这一部分开始训练模型,通过反向传播逐步调整模型的参数,注意模型训练的过程,观察生成器和判别器分别是怎么在训练中互相作用不断提高的

# 训练 GAN
for epoch in range(epochs):for data, _ in data_loader:data = data.view(data.size(0), -1)real_data = Variable(data)target_real = Variable(torch.ones(data.size(0), 1))target_fake = Variable(torch.zeros(data.size(0), 1))# 训练判别器optimizer_D.zero_grad()output_real = discriminator(real_data)loss_real = criterion(output_real, target_real)loss_real.backward()noise = Variable(torch.randn(data.size(0), 100))fake_data = generator(noise)output_fake = discriminator(fake_data.detach())loss_fake = criterion(output_fake, target_fake)loss_fake.backward()optimizer_D.step()# 训练生成器optimizer_G.zero_grad()output = discriminator(fake_data)loss_G = criterion(output, target_real)loss_G.backward()optimizer_G.step()print(f'Epoch [{epoch+1}/{epochs}], Loss D: {loss_real.item()+loss_fake.item()}, Loss G: {loss_G.item()}')

6.图片生成

这一部分再一次随机生成了一些噪声,并把他们传入生成器生成图片,其中包含一些格式转化过程,再通过matplotlib绘图库显示结果

# 生成一些图片
num_samples = 16
noise = Variable(torch.randn(num_samples, 100))
generated_samples = generator(noise)
generated_samples = generated_samples.view(num_samples, 1, 28, 28).detach()import matplotlib.pyplot as plt
import torchvision.utils as vutilsplt.figure(figsize=(8, 8))
plt.axis("off")
plt.title("Generated Images")
plt.imshow(np.transpose(vutils.make_grid(generated_samples, nrow=4, padding=2, normalize=True).cpu(), (1, 2, 0))
)
plt.show()

7.不同训练轮次的结果对比

在这里插入图片描述

在这里插入图片描述

感谢阅读,觉得有用的话就订阅下《深度学习》专栏吧,有错误也欢迎指出
http://www.yayakq.cn/news/707109/

相关文章:

  • 网站建设需要注册什么类型的公司江苏建设工程有限公司简介
  • 免费做团购网站的软件好怎么识别网站是用什么语言做的
  • 做网站销售怎么做优化大师tv版
  • 网站建设怎样宣传比较好给自己做的网站换首页
  • 信息发布型网站建设的特点建盏名家罗建明简介
  • 外贸网站做流量需要登陆的网站如何做爬虫
  • wordpress如何安装模板常州淄博网站优化
  • 做外贸在什么网站做网站开发诺亚科技
  • 地方网站做的好的做管理信息的网站
  • flash网站项目背景前端seo优化方案
  • 网站建设方案计划书人员规划访问外国网站速度慢
  • 手机网站开发 和 网页有什么做数学题的网站
  • 怎么创网站wordpress百度影音
  • 做电脑网站宽度河北省建设工程招标投标信息网
  • 网站开发行业竞争大吗自己怎么做云购网站吗
  • 做鲜榨果汁店网站黄冈网站开发
  • 哪有做婚介网站的天水嘉通建设集团网站
  • 河北网站建设备案如何做网站开屏
  • 网站结构物理新泰市建设局网站
  • 佛山网站建设网站制作公司同ip多域名做同行业网站
  • wordpress双语网站深圳市长城建设有限公司网站
  • 怎么进行网站开发定州网站建设电话
  • 如何修改管理网站iss怎么做网站
  • 代做广联达 的网站商务网站的可行性分析包括
  • 电脑网站设计制作专做奢侈品的网站
  • 展览展会网站建设品牌网站建设专家
  • 宜宾网站建设08keji鞭打wordpress
  • 手机网站制作价格wordpress crossapple
  • 网站传送门怎么做外贸推广如何做
  • 网站备案号怎么做超链接如何更换网站模板