如何从InfoGAN鉴别器中提取嵌入以进行相似性搜索?

时间:2018-02-16 16:12:15

标签: python tensorflow neural-network keras generative

我试图采用Keras InfoGAN实现来基本上为我提供鉴别器的图像提取传输值(或嵌入)。有了这个,我想用结果向量进行相似性搜索,找到与数据集中提供的 n个最相似的图像。

我想使用Keras,因此我将this实施作为参考:

我找到了this 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 个答案:

没有答案