深度学习网络模型之GAN(代码)

这篇博客分享了如何使用TensorFlow实现GAN(生成对抗网络),包括数据处理、生成器和判别器的网络模型书写,以及训练代码。内容详细,注释清晰,适合深度学习初学者。
摘要由CSDN通过智能技术生成

GAN的代码附上

第一部分,数据处理,这里用的是mnist数据集

import tensorflow as tf
import numpy as np
#import datetime
import matplotlib.pyplot as plt

#如果”/tmp/data/”目录下存在mnist数据集,则加载,否则先下载后加载
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/",one_hot=True)#如果”MNIST_data/”目录下存在mnist数据集,则加载,否则先下载后加载
                                                             #one_hot:以Numpy数组的形式中存储着训练集、验证集、测试集
#MNIST 初始为784维向量  reshape可还原
sample_image = mnist.train.next_batch(1)[0]
print(sample_image.shape)

sample_image = sample_image.reshape([28,28])
plt.imshow(sample_image,cmap='Greys')#Matplotlib库中,调用imshow()函数实现热图绘制
plt.colorbar()
plt.show()
#print(sample_image.reshape)
#增加颜色类标的代码是plt.colorbar()
#参数cmap用于设置热图的Colormap

第二部分,网络模型的书写,这里主要包括两个部分,生成器和判别器。

首先是生成器


def generator(z,batch_size,z_dim,reuse_variables=None):  #z=placeholder[None,Z_dimensions],  batch_size=50,z_dim=10
    #tf.AUTO_REUSE
    with tf.variable_scope(tf.get_variable_scope(), reuse=tf.AUTO_REUSE ) as scope:
        g_w1=tf.get_variable('g_w1',[z_dim,3136],dtype=tf.float32,initializer=tf.truncated_normal_initializer(stddev=0.02))
        g_b1=tf.get_variable('g_b1',[3136],initializer=tf.truncated_normal_initializer(stddev=0.02))
        g1=tf.matmul(z,g_w1)+g_b1
        g1=tf.reshape(g1,[-1,56,56,1])
        g1=tf.contrib.layers.batch_norm(g1,epsilon=1e-5,scope='bn1')#标准化函数
        g1=tf.nn.relu(g1)

        #layer two
        g_w2=tf.get_variable('g_w2',[3,3,1,z_dim/2],dtype=tf.float32,initializer=tf.truncated_normal_initializer(stddev=0.02))
        g_b2=tf.get_variable('g_b2',[z_dim/2],initializer=tf.truncated_normal_initializer(stddev=0.02))
        g2=tf.nn.conv2d(g1,g_w2,strides=[1,2,2,1],padding='SAME')
        g2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值