ValueError:检查输入时出错:预期 input_15 具有形状(100,)但得到形状为(1,)的数组

问题描述 投票:0回答:0

首先,我将模型(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。但是,我在模型拟合过程中出错。 感谢建议/帮助!

python deep-learning tensorflow2.0 generative-adversarial-network
© www.soinside.com 2019 - 2024. All rights reserved.