首先,我将模型(DCGAN)定义为:
latent_dim=100 频道=1
def build_generator():
model = Sequential()
model.add(Dense(128 * 7 * 7, activation="relu", input_dim=latent_dim))
model.add(Reshape((7, 7, 128)))
model.add(UpSampling2D())
model.add(Conv2D(128, kernel_size=3, padding="same"))
model.add(BatchNormalization(momentum=0.8))
model.add(Activation("relu"))
model.add(UpSampling2D())
model.add(Conv2D(64, kernel_size=3, padding="same"))
model.add(BatchNormalization(momentum=0.8))
model.add(Activation("relu"))
model.add(Conv2D(channels, kernel_size=3, padding="same"))
model.add(Activation("tanh"))
model.summary()
noise = Input(shape=(latent_dim,))
img = model(noise)
return Model(noise, img)
def build_discriminator():
model = Sequential()
model.add(Conv2D(32, kernel_size=3, strides=2, input_shape=x_train.shape[1:], padding="same"))
model.add(LeakyReLU(alpha=0.2))
model.add(Dropout(0.25))
model.add(Conv2D(64, kernel_size=3, strides=2, padding="same"))
model.add(ZeroPadding2D(padding=((0, 1), (0, 1))))
model.add(BatchNormalization(momentum=0.8))
model.add(LeakyReLU(alpha=0.2))
model.add(Dropout(0.25))
model.add(Conv2D(128, kernel_size=3, strides=2, padding="same"))
model.add(BatchNormalization(momentum=0.8))
model.add(LeakyReLU(alpha=0.2))
model.add(Dropout(0.25))
model.add(Conv2D(256, kernel_size=3, strides=1, padding="same"))
model.add(BatchNormalization(momentum=0.8))
model.add(LeakyReLU(alpha=0.2))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(1, activation='sigmoid'))
model.summary()
img = Input(shape=x_train.shape[1:])
validity = model(img)
return Model(img, validity)
from tensorflow.keras.optimizers import Adam
optimizer = Adam(0.0002, 0.5)
discriminator = build_discriminator()
discriminator.compile(loss='binary_crossentropy',
optimizer=optimizer,
metrics=['accuracy'])
generator = build_generator()
z = Input(shape=(100,))
img = generator(z)
discriminator.trainable = False
valid = discriminator(img)
model = Model(z, valid)
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
import numpy as np
x_train= np.resize(x_train,[1,])
#While executing the following:
classifier = KerasClassifier(model=model, clip_values=(min_, max_))
classifier.fit(x_train,y_train, nb_epochs=1, batch_size=128)
ValueError:检查输入时出错:预期 input_15 具有形状(100,)但得到形状为(1,)的数组
我在模型编译期间将 binary_crossentropy 转换为 categorial_crossentropy,它仍然给出相同的错误,resize helped for the numpy array size。但是,我在模型拟合过程中出错。 感谢建议/帮助!