import keras,os
from keras.models import*
from keras.layers import*
from keras.optimizers import*
from keras.losses import*
from keras import backend as K
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from PIL import Image
from keras.preprocessing import image
from keras.datasets import fashion_mnist,cifar10,cifar100,mnist
from keras.utils import to_categorical
os.environ["CUDA_VISIBLE_DEVICES"]=" 2"
2. 鉴别器和生成器的定义、创建
def generator(input_shape):
inputs =Input(input_shape)
# 先全连接到64*7*7的维度上
x =Dense(128*14*14)(inputs)
x =LeakyReLU(0.2)(x)
x =Reshape((14,14,128))(x)
x =Conv2D(256,5, padding ='same')(x)
x =LeakyReLU(0.2)(x)
x =Conv2DTranspose(256,4, strides =2, padding ='same')(x)
x =LeakyReLU(0.2)(x)
x =Conv2D(256,5, padding ='same')(x)
x =LeakyReLU(0.2)(x)
x =Conv2D(256,5, padding ='same')(x)
x =LeakyReLU(0.2)(x)
x =Conv2D(1,7, activation='tanh', padding ='same')(x)returnModel(inputs,x)
def discriminator(input_shape):
inputs =Input(input_shape)
# 28,28,1->14,14,32
x =Conv2D(128,3)(inputs)
x =LeakyReLU(0.2)(x)
x =Conv2D(128,4,strides =2)(x)
x =LeakyReLU(0.2)(x)
x =Conv2D(128,4,strides =2)(x)
x =LeakyReLU(0.2)(x)
x =Conv2D(128,4,strides =2)(x)
x =LeakyReLU(0.2)(x)
x =Flatten()(x)
x =Dropout(0.4)(x)
x =Dense(1, activation='sigmoid')(x) #分类层
returnModel(inputs,x)
gen =generator((100,))
dis =discriminator((28,28,1))
dis.compile(loss=keras.losses.binary_crossentropy,optimizer= keras.optimizers.RMSprop(lr =0.0008,clipvalue =1.0,decay=1e-8))