首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C++中,python的faiss.normalize_L2()相当于什么?

在C++中,python的faiss.normalize_L2()相当于什么?
EN

Stack Overflow用户
提问于 2022-01-31 10:12:56
回答 1查看 558关注 0票数 2

我想使用FAISS对C++中的100 k人脸嵌入进行相似性搜索。对于距离计算器,我想使用余弦相似。为此,我根据需要的文档选择faiss::IndexFlatIP .But,以便在将向量添加到索引之前对其进行规范化。在python中,文档建议使用以下代码:

代码语言:javascript
运行
复制
index = faiss.IndexFlatIP(dimensions)
faiss.normalize_L2(embeddings)

但是,由于我想在C++中实现相同的东西,我注意到在C++中找不到类似于pythonfaiss.normalize_L2()中的任何函数。有人能帮忙吗?谢谢已经提前了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-31 11:15:22

您可以构建和使用Faiss库的Faiss接口(参见)。

如果只希望在L2中对C++中的向量进行规范化:

代码语言:javascript
运行
复制
std::vector<float> data;

float sum = 0;
for (auto item : data) sum += item * item;

float norm = std::sqrt(sum);
for (auto &item : data) item /= norm;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70924232

复制
相关文章

相似问题

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