首页 > 解决方案 > 如何使用 keras 知道 WGAN 中生成图像的标签

问题描述

我正在研究医学图像分类问题,并且遇到低数据集问题。所以想使用WGAN生成图像。在给定的代码中,WGAN 代码示例取自 MNIST 数据集。图像生成后,很容易识别它们属于哪个类别的数字。但是在医学图像的情况下,生成图像后很难确定生成的图像属于哪个类别,因为它们是从以下给出的代码中分组保存的:

def sample_images(self, epoch):
        r, c = 5, 5
        noise = np.random.normal(0, 1, (r * c, self.latent_dim))
        gen_imgs = self.generator.predict(noise)

        # Rescale images 0 - 1
        gen_imgs = 0.5 * gen_imgs + 0.5

        fig, axs = plt.subplots(r, c)
        cnt = 0
        for i in range(r):
            for j in range(c):
                axs[i,j].imshow(gen_imgs[cnt, :,:,0], cmap='gray')
                axs[i,j].axis('off')
                cnt += 1
        fig.savefig("images/mnist_%d.png" % epoch)
        plt.close()

所以我必须执行哪些更改才能获取生成图像的标签。

标签: pythontensorflowkeras

解决方案


vanilla 版本中的 WGAN 不能有条件地生成图像。因此,你训练的 WGAN 只能生成图像,而不知道它们属于哪个类。

为了能够生成特定标签的图像,请查看条件甘斯。这是一篇帮助您入门的中篇文章。

另一种选择是从原始训练数据中训练一个鉴别器,并使用该鉴别器来帮助您手动对图像进行分类。


推荐阅读