Как извлечь вложения из дискриминатора InfoGAN для поиска сходства?

Я пытаюсь принять Керас InfoGAN Реализация, чтобы по существу извлечь значения передачи (или вложения) для изображения, которое я подаю дискриминатору При этом я хочу выполнить поиск сходства с результирующими векторами, чтобы найти n наиболее похожих изображений на изображение, представленное в наборе данных.

Я хочу использовать Keras, поэтому я рассматриваю эту реализацию в качестве ссылки:

Я нашел это TensorFlow 0.11 реализация, где они предоставляют функциональность для достижения цели сходства, но у меня возникают проблемы при попытке сделать что-то подобное в Keras.

Я думаю, проще говоря, я хочу понять, из какого слоя лучше всего брать значения переноса в дискриминаторе, и как я могу это сделать в Keras с обученной моделью. Дискриминаторные слои:

    x = Convolution2D(64, (4, 4), strides=(2,2))(self.d_input)
    x = LeakyReLU(0.1)(x)
    x = Convolution2D(128, (4, 4), strides=(2,2))(x)
    x = LeakyReLU(0.1)(x)
    x = BatchNormalization()(x)
    x = Flatten()(x)
    x = Dense(1024)(x)
    x = LeakyReLU(0.1)(x)
    self.d_hidden = BatchNormalization()(x) # Store this to set up Q
    self.d_output = Dense(1, activation='sigmoid', name='d_output')(self.d_hidden)

    self.discriminator = Model(inputs=[self.d_input], outputs=[self.d_output], name='dis_model')
    self.opt_discriminator = Adam(lr=2e-4)
    self.discriminator.compile(loss='binary_crossentropy',
                               optimizer=self.opt_discriminator)

0 ответов

Другие вопросы по тегам