Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用经过训练的暹罗网络预测100+类的大型测试集的标签?_Python_Tensorflow_Computer Vision_Image Comparison_Siamese Network - Fatal编程技术网

Python 如何使用经过训练的暹罗网络预测100+类的大型测试集的标签?

Python 如何使用经过训练的暹罗网络预测100+类的大型测试集的标签?,python,tensorflow,computer-vision,image-comparison,siamese-network,Python,Tensorflow,Computer Vision,Image Comparison,Siamese Network,我是否必须将每个测试图像与每个类的示例图像进行比较?该测试集包含104个类的7400个图像。那么这就是7400 x 104预测 在tpu上使用tensorflow,我能够非常有效地训练模型。但是,使用上述方法预测标签需要很长时间,此外,模型预测调用会导致内存泄漏,最终导致内核失败内存可能会膨胀到30+gb并计数 有多种方法可以做到这一点: 不建议这样做 基本上是你正在做的事情的子集。你可以吃一些 来自每个类的图像,并将其与测试图像进行比较。比方说 您从每个类中选择5个图像,因此必须执行5*104

我是否必须将每个测试图像与每个类的示例图像进行比较?该测试集包含104个类的7400个图像。那么这就是7400 x 104预测


在tpu上使用tensorflow,我能够非常有效地训练模型。但是,使用上述方法预测标签需要很长时间,此外,模型预测调用会导致内存泄漏,最终导致内核失败内存可能会膨胀到30+gb并计数

有多种方法可以做到这一点:

不建议这样做 基本上是你正在做的事情的子集。你可以吃一些 来自每个类的图像,并将其与测试图像进行比较。比方说 您从每个类中选择5个图像,因此必须执行5*104 预言。 您可以使用K-最近邻模型,其中您必须只对7400或这些图像的子集进行一次预测,即创建KNN模型,然后直接使用KNN分类器预测图像的类别。
如果您对KNN不太了解,或者不想了解代码实现,也可以参考

谢谢你的回复,阿卡什!快速跟进问题:我一直在使用此链接作为参考,看起来您的第一个要点我当前的方法相当于第9节中的模型验证。第10节中提到了kNN,但未使用该模型。你能详细说明一下如何将训练有素的暹罗人与上述kNN联系起来吗?我是从cnn顶层获取向量,然后合并kNN?另一种想法,或者在训练神经网络之后,我为标记的训练集和未标记的测试集生成特征向量。然后我在标记的序列向量上训练kNN分类器,然后在未标记的测试向量上预测?绝对是。1.使用培训数据对暹罗人进行培训,并根据验证数据进行验证。2.从训练模型中获取所有数据的向量。3.使用KNN模型使用这些向量构建模型。4.获取新图像的矢量。5.使用KNN分类器技术预测该数据点的类别。谢谢!这给了我很多指导。有一个没有太多背景的跟进,但你可能仍然有一些见解。我的暹罗模型在验证集上的AUC约为0.84。然而,knn的准确率约为26%。这合理吗?我知道0.84 Auc不是很好,但我希望看到比26%更准确的分类。你试过使用K值吗?