我建立了一个模型(InceptionResnet v2)来对图像进行分类,我想用它来测量对象之间的相似性。
衡量这种相似性的一种方法是从两个向量中捕获中间层的结果并查看它们的距离。
我不知道如何选择图层,我的最后一层是:
转换 -> 展平(98304,) -> 密集(256,) -> 密集(softmax)
我在 Flatten 和 first Dense 之间犹豫不决,如何选择?
我建立了一个模型(InceptionResnet v2)来对图像进行分类,我想用它来测量对象之间的相似性。
衡量这种相似性的一种方法是从两个向量中捕获中间层的结果并查看它们的距离。
我不知道如何选择图层,我的最后一层是:
转换 -> 展平(98304,) -> 密集(256,) -> 密集(softmax)
我在 Flatten 和 first Dense 之间犹豫不决,如何选择?
对于相似度计算,您通常应该更喜欢最后一个(在 softmax 之前)密集层。该层通常将捕获图像的最高级别表示。当出于效率原因要计算相似度时,最好使向量的大小尽可能小。
我最近遇到了可以用于此目的的“连体”网络架构的概念。它涉及使用两个网络,它们的参数链接起来,输入成对的示例作为输入,并学习近似相似性度量。
这篇 2015 年的论文在架构中有一个距离层,也许可以通读一下,看看它是否与您的用例相似?