Linux安装xFormers教程
创始人
2024-05-07 23:31:21
0

参考文章:手把手教你在linux中手动编译并安装xformers

作者:青空朝颜モ出处:bilibili

官方安装方法

官方仓库传送门:https://github.com/facebookresearch/xformers.git

官方给了两种方式安装xFormers,这里给出官方仓库安装方法的翻译

  • (推荐)使用二进制文件:我们为Linux和最新的PyTorch版本提供二进制文件。在conda中安装pytorch之后,使用conda安装xFormers:

    conda install xformers -c xformers/label/dev
    
  • 或者从源码安装,如果没有二进制文件可用(例如windows),你也可以从源码文件安装:

    #(可选)使构建更快
    pip install ninja
    # 如果运行和构建在不同的GPU类型上,请设置TORCH_CUDA_ARCH_LIST
    pip install -v -U git+https://github.com/facebookresearch/xformers.git@main#egg=xformers
    # (这可能需要几十分钟)
    

    实测:安装ninja后,xFormers安装速度提升非常多,3分钟内完成安装

  • pip wheel包:pip上没有可用的wheel包,请从Conda或从源码安装

然而,官方给出的两种方法在无代理的情况下,安装得很慢。且国内镜像源无镜像可下。

推荐安装方法:克隆/下载Github仓库源码,手动编译安装

1. 克隆仓库

git clone https://github.com/facebookresearch/xformers.git

最好使用SSH链接进行克隆,避免https被墙。SSH克隆方法请自行参考

这里引用一篇博主觉得不错的SSH克隆方法文章:git通过SSH指定秘钥文件克隆代码的三种方法 作者:第九系艾文

image-20230105220117394

2. 进入克隆到本地的文件夹

cd xformers

3. 克隆第三方库

git submodule update --init --recursive

4. 安装xFormers依赖

pip install -r requirements.txt

依赖如下,也可自行安装:

torch>=1.12
numpy
pyre-extensions==0.0.23
einops

5. 编译xFormers

pip install -e .

6. (非必须)验证安装

python -m xformers.info

为解决克隆失败情况,我上传了下载即可安装的源码包至阿里云盘

下载后传至linux服务器,解压缩后进入xformers文件夹即可安装

链接:https://pan.baidu.com/s/1Ip5HxtAyKCxzGxiCXa29lg?pwd=yu2x
提取码:yu2x

参考命令:

# 解压缩
unzip xformers
# 进入目录
cd xformers
# 编译安装xFormers
pip install -e .

一些报错及解决方法

报错:nvcc fatal : Unknown option -extended-lambda

解决方法:

  • 提升本机cuda版本。博主在cuda-10.1下安装报错,随后将cuda升级至11.6并安装最新版本的Pytorch解决该问题

    参考环境:pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6

安装时自动卸载Torch并安装最新的

可行的解决方法,下列选其一即可:

  • 安装xFormers依赖时去除requirement.txt中的torch一项。注意:此做法可能会导致后续安装失败。

  • 卸载当前版本的Torch,使用Conda命令安装。

    参考PyTorch官网的Conda安装命令。

    点击此跳转PyTorch官网查看安装命令

    image-20230105223601703

    旧版本PyTorch安装命令点击此跳转

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...