import torch
from torch import nn, optim, autograd # autograd 是一个自动求导的包
import numpy as np
import visdom
import random
h_dim = 400
batchsz = 512
viz = visdom.Visdom()
# 新建两个网络结构 Generator and Discriminator
class Generator(nn.Module):
def __init__(self):
super(Generator, self).__init__()
# 这里的输入输出虽然看起来都是2,但是输入的2是我们可以人为设定的,输出的2是网络真实输出的,这里用2是因为二维更好可视化
self.net = nn.Sequential(
# z: [b,2] => [b,2]
nn.Linear(2, h_dim),
nn.ReLU(True),
nn.Linear(h_dim, h_dim),
nn.ReLU(True),
nn.Linear(h_dim, h_dim),
nn.ReLU(True),
nn.Linear(h_dim, 2),
)
def forward(self, z):
output = self.net(z)
return output
class Discriminator(nn.Module):
def __init__(self):
super(Discriminator, self).__init__()
self.net = nn.Sequential(
nn.Linear(2, h_dim),
GAN实战:以高斯混合模型为例
于 2022-01-19 19:46:16 首次发布