Закомментируй BatchNormalization в дискриминаторе, должно помочь. Я хз почему так def build_discriminator(self):
функция создания блока CNN block для уменьшения размера изображения
def add_discriminator_block(x_block, filters):
block = Conv2D(filters, filter_size, padding='same')(x_block)
#block = BatchNormalization()(block)
block = Conv2D(filters, filter_size, padding='same', strides=2)(block)
#block = BatchNormalization()(block)
block = LeakyReLU(0.3)(block)
return block
start_filters = 16
filter_size = [5, 5]
#inp = Input(shape=(self.img_rows, self.img_cols, self.channels))
inp = Input(shape=(64, 64, self))
# строим дискриминатор для уменьшения изображения
x = add_discriminator_block(inp, start_filters)
x = add_discriminator_block(x, start_filters * 2)
x = add_discriminator_block(x, start_filters * 4)
x = add_discriminator_block(x, start_filters * 8)
# усреднение и возврат бинарного вывода
x = GlobalAveragePooling2D()(x)
x = Dense(1, activation='sigmoid')(x)
model = Model(inputs=inp, outputs=x)
print('discriminator')
model.summary()
return model