我试图采用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)