pip3 install faiss-cpu

当然找不到预编译的包

手动下载

git clone https://github.com/facebookresearch/faiss.git
cd faiss
#能需要切换到特定版本标签,例如 v1.7.1,这个版本Cmake 3.18可以过,因为apt install安装的cmake只更新到这里,再往后要自己编译了
git checkout v1.7.1

安装编译依赖:

这是最关键也最容易出错的一步。Faiss 依赖于:

  • C++ 编译器: g++ (通常通过 build-essential 包安装) CMake: 用于构建C++项目。 (sudo apt install cmake)
  • BLAS 库: 一个基础线性代数子程序库,如 OpenBLAS (推荐), ATLAS,
  • MKL。在树莓派上,通常安装 OpenBLAS:sudo apt install libopenblas-dev。这是性能的关键。
  • SWIG: 用于生成 Python 绑定,sudo apt install swig
  • OpenMP (可选但默认启用): 用于并行处理。有时在ARM平台上,如果遇到问题,可能需要禁用它或确保有合适的编译器支持。

sudo apt-get install libatlas-base-dev libatlas3-base

修改camkelist【重点】

如果你也是armv7l处理器架构,那就需要修改
定位到faiss/faiss/python/CMakeLists.txt

替换代码块:
找到下面显示的代码块(它应该在第 21-25 行左右):

替换此(原始块):

if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND NOT WIN32)set_source_files_properties(${source} PROPERTIESSWIG_FLAGS -DSWIGWORDSIZE64)
endif()

替换为

if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND NOT WIN32)if(CMAKE_SIZEOF_VOID_P EQUAL 8)# 64-bit systemset_source_files_properties(${source} PROPERTIESSWIG_FLAGS -DSWIGWORDSIZE64)else()# 32-bit systemset_source_files_properties(${source} PROPERTIESSWIG_FLAGS -DSWIGWORDSIZE32)endif()
endif()

配置编译选项 (CMake):

Faiss 使用 CMake 来配置构建。需要指定一些选项,例如:

  • Python 的路径和库。
  • 是否启用 GPU (在 faiss-cpu 的情况下应禁用)。
  • BLAS 库的类型和路径。
  • 是否构建 Python 接口。
cmake -DFAISS_ENABLE_GPU=OFF \-DFAISS_ENABLE_PYTHON=ON \-DCMAKE_BUILD_TYPE=Release \-DBUILD_SHARED_LIBS=ON \-DCMAKE_SWIG_FLAGS="-DSWIGWORDSIZE32" \..

编译安装

make -j4sudo make installcd build/faiss/python
python3 setup.py install
pip3 install .

验证安装

python -c "import faiss; print('Faiss version:', faiss.__version__)"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/82891.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/82891.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/82891.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++之string的模拟实现

string 手写C字符串类类的基本结构与成员变量一、构造函数与析构函数二、赋值运算符重载三、迭代器支持四、内存管理与扩容机制五、字符串操作函数六、运算符重载总结 手写C字符串类 从零实现一个简易版std::string 类的基本结构与成员变量 namespace zzh { class string { …

修改Docker镜像源

配置文件位置: sudo vim /etc/docker/daemon.json Docker 或 containerd 的镜像加速器配置,旨在提高从 Docker Hub 拉取镜像的速度。 { "features": { "buildkit": true, "containerd-snapshotter": true }, …

服务器带宽线路的区别(GIA、CN2、BGP、CMI等)

服务器带宽线路的区别(GIA、CN2、BGP、CMI等) 一、BGP线路 1. 定义与技术特点 BGP(Border Gateway Protocol,边界网关协议)是一种用于不同自治系统(AS)之间交换路由信息的协议,属…

从0到1搭建AI绘画模型:Stable Diffusion微调全流程避坑指南

从0到1搭建AI绘画模型:Stable Diffusion微调全流程避坑指南 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 从0到1搭建AI绘画模型:Stable Diffusion微调全流程避坑指南摘要引言一、数据集构…

VSCode + GD32F407 构建烧录

前言 最近调试一块 GD32F407VET6(168Mhz,8Mhz晶振) 板子时,踩了一些“启动失败”的坑。本以为是时钟配置有误,最后发现是链接脚本(.ld 文件)没有配置好,导致程序根本没能正常执行 ma…

AI绘画提示词:从零开始掌握Prompt Engineering的艺术

文章目录 什么是AI绘画提示词?提示词的基本结构主体描述场景/背景风格指定技术参数负面提示人物肖像模板风景模板 高级技巧权重调整混合风格颜色控制情绪氛围 常见问题与解决方法手部变形问题构图不理想风格不够突出 提示词示例库科幻场景奇幻人物静物画 结语 在当今…

在 Linux 上安装 Minikube:轻松搭建本地 Kubernetes 单节点集群

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、Minikube 是什么? Minikube 是 Kubernetes 官方推出的轻量级工具,专为开发者设计,用于在本地快速搭建单节点 Kube…

day41 python图像识别任务

目录 一、数据预处理:为模型打下坚实基础 二、模型构建:多层感知机的实现 三、训练过程:迭代优化与性能评估 四、测试结果:模型性能的最终检验 五、总结与展望 在深度学习的旅程中,多层感知机(MLP&…

JS数组 concat() 与扩展运算符的深度解析与最佳实践

文章目录 前言一、语法对比1. Array.prototype.concat()2. 扩展运算符(解构赋值) 二、性能差异(大规模数组)关键差异原因 三、适用场景建议总结 前言 最近工作中遇到了一个大规模数组合并相关的问题,在数据合并时有些…

一套qt c++的串口通信

实现了创建线程使用串口的功能 具备功能: 1.线程使用串口 2.定时发送队列内容,防止粘包 3.没处理接收粘包,根据你的需求来,handleReadyRead函数中,可以通过m_receiveBuffer来缓存接收,然后拆分数据来处理 源码 seri…

设计模式-发布订阅

文章目录 发布订阅概念发布订阅 vs 监听者例子代码 发布订阅概念 发布/订阅者模式最大的特点就是实现了松耦合,也就是说你可以让发布者发布消息、订阅者接受消息,而不是寻找一种方式把两个分离 的系统连接在一起。当然这种松耦合也是发布/订阅者模式最大…

windows-cmd 如何查询cpu、内存、磁盘的使用情况

在 Windows 中,您可以使用命令提示符(CMD)通过一些命令来查询 CPU、内存和磁盘的使用情况。以下是常用的命令和方法: 1. 查询 CPU 使用情况 使用 wmic 命令 wmic cpu get loadpercentage 这个命令会显示当前 CPU 的使用百分比…

allWebPlugin中间件VLC专用版之截图功能介绍

背景 VLC控件原有接口具有视频截图方法,即video对象的takeSnapshot方法,但是该方法返回的是一个IPicture对象,不适合在谷歌等现代浏览器上使用。因此,本人增加一个新的视频截图方法takeSnapshot2B64方法,直接将视频截图…

第Y5周:yolo.py文件解读

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 本次任务:将YOLOv5s网络模型中的C3模块按照下图方式修改形成C2模块,并将C2模块插入第2层与第3层之间,且跑通YOLOv5s。 任务…

宝塔安装ssh证书报错:/usr/bin/curl: symbol lookup error: curl_easy_header

原因: 你当前的 curl 命令版本是 7.70.0(不是系统默认版本,应该是你手动安装的)。它链接的是 /usr/local/lib/libcurl.so.4,而不是 CentOS 系统默认的 /usr/lib64/libcurl.so.4。/usr/local/lib/libcurl.so.4 很可能是…

Apache SeaTunnel 引擎深度解析:原理、技术与高效实践

Apache SeaTunnel 作为新一代高性能分布式数据集成平台,其核心引擎设计融合了现代大数据处理架构的精髓。 Apache SeaTunnel引擎通过分布式架构革新、精细化资源控制及企业级可靠性设计,显著提升了数据集成管道的执行效率与运维体验。其模块化设计允许用…

测试用例及黑盒测试方法

一、测试用例 1.1 基本要素 测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等4个主要要素。 1.1.1 测试环境 定义:测试执行所需的软硬件…

硬件工程师笔记——运算放大电路Multisim电路仿真实验汇总

目录 1 运算放大电路基础 1.1 概述 1.1.1 基本结构 1.1.2 理想特性 1.2 运算放大分析方法 1.2.1 虚短 1.2.2虚断 1.2.3 叠加定理 2 同向比例运算放大电路 2.1 概述 2.1.1 基本电路结构 2.1.2 电路原理 2.2 仿真分析 2.2.1 电压增益 2.2.2 相位分析 3 反向比例运…

板凳-------Mysql cookbook学习 (九)

第4章:表管理 4.0 引言 MySQL :: 员工样例数据库 :: 3 安装 https://dev.mysql.com/doc/employee/en/employees-installation.html Employees 数据库与几种不同的 存储引擎,默认情况下启用 InnoDB 引擎。编…

MySQL省市区数据表

数据结构简单展示一下 具体的可以点击文章最后的链接地址下载 连接地址中有两个文件一个是详细的另一个是简洁的 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- ---------------------------- -- Table structure for ln_new_region -- ---------------------------- DROP…