如何使用训练有素的孪生网络为 100+ 类 的大型测试集预测标签?

How to use trained siamese network to predict labels for large test set with 100+ classes?

我是否必须将每个测试图像与每个 class 中的示例图像进行比较?测试集包含 104 classes 中的大约 7400 张图像。那么这将是 7400 x 104 预测?

在 tpu 上使用 tensorflow 我能够非常有效地训练模型。然而,使用上述方法预测标签需要很长时间,而且模型预测调用会导致内存泄漏,最终导致内核失败(内存可能会爆炸 30+gb 并且还在增加)。

您可以通过多种方式执行此操作:

  • (不推荐)这是 基本上是你实际做的事情的一部分。你可以拿一些 每个 class 的图像并将其与您的测试图像进​​行比较。让我们说 你 select 每个 class 5 张图片所以你必须做 5*104 预测。
  • 您可以使用 K - 最近邻模型,您只需对 7400 张(或这些图像的子集)图像进行一次预测,即创建一个 KNN 模型,然后直接使用 KNN 分类器来预测 class 图像。

如果你对KNN不是很了解或者想看代码实现,也可以参考Blog