首先,代码引用自https://github.com/wiseodd/generative-models
感谢这位网友的代码支持。
每个月总有30天不想看论文,所以直接看源码或许是一个好办法。因为有些时候它的改动就那么一点点。而论文却要用晦涩难懂的语言证明上十几页。
上边这个链接中给出了很多GAN和VAE以及各种变体的源码,并且写得清晰易懂,再次感谢这位网友的贡献。
ConditionalGAN顾名思义是条件GAN,就是给GAN增加一个条件。具体是怎么回事呢?看代码:
这段代码使用mnist数据集,来生成手写数字。以下代码可以直接正确运行。
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import os
mnist = input_data.read_data_sets('../../MNIST_data', one_hot=True)
mb_size = 64
Z_dim = 100
X_dim = mnist.train.images.shape[1]
y_dim = mnist.train.labels.shape[1]
h_dim = 128
def xavier_init(size):
in_dim = size[0]
xavier_stddev = 1. / tf.sqrt(in_dim / 2.)
return tf.random_normal(shape=size, stddev=xavier_stddev)
""" Discriminator Net model &