GAN学习手册(一)对训练normal distribution的解读

本文详细解读了训练GAN以生成正态分布的过程,包括generator和discriminator的角色,以及代码实现的关键点。讨论了节点数量和层数变化对模型效果的影响,并提供了不同配置的实验结果。
摘要由CSDN通过智能技术生成

GAN学习手册(一)对训练normal distribution的解读

原文章及代码:
https://towardsdatascience.com/training-a-gan-to-sample-from-the-normal-distribution-4095a11e78de

在这边文章中,我们的generator和discriminator的目标不同。
generator:把随机数训练成正态分布。
discriminator:在含有一半真实数据和一半generator的结果数据的数据集中作区分。
下面我们拆分每个部分的代码做一个详细的解读。

def uniform_to_normal(z):
    '''
    Map a value from ~U(-1, 1) to ~N(0, 1)
    '''
    norm = stats.norm(0, 1)
    return norm.ppf((z+1)/2)

在这里,norm是表示均值是0,方差是1的正态分布,return的是F(x)=(z+1)/2时的x值。

def generate_noise(samples, dimensions=2):
    '''
    Generate a matrix of random noise in [-1, 1] with shape (samples, dimensions) 
    '''
    return np.random.uniform(-1, 1, (samples, dimensions))

这里我们return了大小为sample*2在间隔[-1,1]的随机数。

知识点⚠️:shape(高维>2,行数,列),当数组中存在2组2张3行4列的表时,数据就是4维,shape返回(2,2,3,4)。
更多关于维度细节

def build_generator(LATENT_DIM, output_dim):
    '''
    Build a generator mapping (R, R) to ([-1,1], [-1,1])
    '''
    input_layer = layers.Input((LATENT_DIM,))
    X = input_layer
    for i in range
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值