使用 CNN 生成图像嵌入

数据挖掘 美国有线电视新闻网
2021-10-09 11:49:53

我有一个使用 cifar -10 数据集的 CNN 模型。该模型是使用 Keras (Tensorflow) 构建的。

现在基于这个模型,我必须生成一个图像嵌入(向量)。这意味着 - 输入图像出现,我必须输出该图像的嵌入向量。

我不知道该怎么做。这不是一个直接的预测/分类输出。相反,我必须输出输入图像的嵌入(这与预测的嵌入不同,但仍然是嵌入向量)。

有什么建议吗?

1个回答

您应该使用类似autoencoder的东西。基本上。您通过 CNN(编码器)传递图像,层大小减小。该网络的最后一层是产生嵌入的层(即输入的低维表示),您在此处使用的神经元数量是输入图像的向量嵌入的长度。

现在,您的嵌入只有在实际对图像中的数据进行编码时才有用。为了实现这一点,您需要另一个网络(解码器),它将图像嵌入作为输入,并输出与输入具有相同维度的图像。在这里,您尝试最小化一个损失函数,该函数告诉您从嵌入生成的图像与初始图像之间的距离(它可能是像素值之间的欧几里德距离)。

最后,如果需要输出图像的嵌入,只需将图像通过编码器网络并收集输出即可。

这是一个简单的教程。