我有一个使用 cifar -10 数据集的 CNN 模型。该模型是使用 Keras (Tensorflow) 构建的。
现在基于这个模型,我必须生成一个图像嵌入(向量)。这意味着 - 输入图像出现,我必须输出该图像的嵌入向量。
我不知道该怎么做。这不是一个直接的预测/分类输出。相反,我必须输出输入图像的嵌入(这与预测的嵌入不同,但仍然是嵌入向量)。
有什么建议吗?
我有一个使用 cifar -10 数据集的 CNN 模型。该模型是使用 Keras (Tensorflow) 构建的。
现在基于这个模型,我必须生成一个图像嵌入(向量)。这意味着 - 输入图像出现,我必须输出该图像的嵌入向量。
我不知道该怎么做。这不是一个直接的预测/分类输出。相反,我必须输出输入图像的嵌入(这与预测的嵌入不同,但仍然是嵌入向量)。
有什么建议吗?
您应该使用类似autoencoder的东西。基本上。您通过 CNN(编码器)传递图像,层大小减小。该网络的最后一层是产生嵌入的层(即输入的低维表示),您在此处使用的神经元数量是输入图像的向量嵌入的长度。
现在,您的嵌入只有在实际对图像中的数据进行编码时才有用。为了实现这一点,您需要另一个网络(解码器),它将图像嵌入作为输入,并输出与输入具有相同维度的图像。在这里,您尝试最小化一个损失函数,该函数告诉您从嵌入生成的图像与初始图像之间的距离(它可能是像素值之间的欧几里德距离)。
最后,如果需要输出图像的嵌入,只需将图像通过编码器网络并收集输出即可。