首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >存储128维特征向量的数据库/仓库

存储128维特征向量的数据库/仓库
EN

Data Science用户
提问于 2016-11-13 13:29:06
回答 1查看 2.7K关注 0票数 1

我使用开脸来提取128 D中的特征向量。我需要找到一个合适的数据库引擎来存储这些向量,以便将来进行比较(计算新提取的特征与存储在数据库中的特征之间的欧几里德距离)。

下面是我试图做的事情的一个例子:

我用OpenFace提取人脸表示,这是一个128维的特征向量。然后计算该向量与存储在数据库中的向量之间的欧几里德距离,并返回最小距离(小于0.9)的向量作为匹配。如果数据库中没有存储的向量与此条件匹配,则将新提取的特征作为新条目存储在数据集中。

什么是一个好的数据库引擎来实现这一点?

EN

回答 1

Data Science用户

发布于 2016-11-15 17:46:17

如果您真的需要这样做(我认为这不是一个好主意),使用波斯特格斯,您可以存储一个数组类型并编写一个存储过程来插入新的项。这个存储过程可以执行任意的距离检查,例如在存储之前,根据数据库中的所有其他向量检查新向量的距离。

我反对这种设计,因为我怀疑唯一性的标准可能会随着时间的推移而很容易改变。我认为最好是把所有的向量都储存起来,除了精确的匹配。然后,创建另一个使用唯一性定义的表。创建此表将在应用程序端处理。如果您对唯一性的定义发生了变化,那么只需创建一个新的表即可。您甚至可以比较几个不同的定义,看看您的结果是如何对它敏感的。如果您这样做,卡桑德拉是一个很好的数据库选择。它是专门为非规范化数据存储而设计的(您有相同的数据以不同的形式或变体存储,这样您的应用程序就可以得到它所需要的,而无需进一步的计算)。

*在您的帖子中,您指出,相似度< 0.9将导致存储一个新的向量。这就是我所说的独一无二的标准。

票数 2
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/15089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档