应用场景
本文介绍的是在完全离线的linux服务器上部署make it 3d。
(抱一思,因为我也是完全离线的环境,所以效果图截不出来,凑合着看吧~)
准备工作:
1. 导入cuda环境
首先,我默认你装好了cuda,没装的话网上搜一下教程吧。下面这一步一定要干,否则后面可能出错!!!
#下面填你cuda安装的地址
export PATH=/usr/local/cuda-11.7/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH
2.配置基本环境
这一步比较简单,在有网机器中下载make_it_3D,下载requirement.txt里所有的安装包,然后拷到离线环境中。
或者直接在有网环境下pip安装,到时候把site-package拷过去也行。
特别提示:pytorch版本一定要和上一步的cuda版本一致,否则编译tiny cuda nn的时候可能出错。例如 虽然cuda11.7的环境下可以跑torch1.13.1+cu116,但是可能跑不了tiny cuda nn
然后在离线服务器中安装raymaching:
cd Make-It-3D
pip install ./raymarching
3.离线安装高版本cmake
从cmake官网下载并拷进离线机器中,
可以下高点的,我下的是3.28的。这个安装过于简单这里就不赘述了。记得export相关的环境变量:
#下面填你cmake安装的地址
export PATH=/usr/local/cmake/bin:$PATH
4.离线安装高版本gcc
在有网机器上从带学of波京宁镜像网下载gcc7.5.2以后的版本,本文所选的是gcc9.2.0。
打开该压缩包,查看contrib/download_prerequisites文件找到所需要下载的依赖配置(大概在30-33行)。
下载依赖子包:
https://ftp.gnu.org/pub/gnu/gmp/gmp-6.1.0.tar.bz2
http://mirror.hust.edu.cn/gnu/mpfr/mpfr-3.1.4.tar.bz2
https://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure/isl-0.18.tar.bz2
将以上子包丢在gcc-9.2.0文件夹里(不需要解压),然后拷到离线机器上,运行如下命令会自动解压并建立软连接啥的:
./contrib/download_prerequisites
离线机器上要记得装bzip2哦!没装的想办法装一个。
然后运行如下命令进行安装:
mkdir /usr/local/gcc9 #安装的地址
./configure --prefix=/usr/local/gcc9 --disable-checking --enable-languages=c,c++ --disable-multilib
make && make install
装完后记得export一下环境变量。
export PATH=/usr/local/gcc9/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/gcc9/lib64:$LD_LIBRARY_PATH
最后,执行gcc -v看看是不是装好了。
安装所需git库:
1.安装tiny-cuda-nn
在有网的机器上,从这里下载tiny-cuda-nn,然后进入tiny-cuda-nn/dependencies下载子库,大致的步骤是:
git clone https://github.com/nvlabs/tiny-cuda-nn
cd tiny-cuda-nn/dependencies
git clone https://github.com/NVIDIA/cutlass.git
git clone https://github.com/fmtlib/fmt.git
然后把tiny-cuda-nn一整个文件夹拷到要离线部署的机器上,运行:
cd tiny-cuda-nn/bindings/torch
python setup.py install
最后pip list看一看是否装好。
2.安装pytorch3d
首先,从有网机器上下载fvcore和iopath的安装包,拷到离线机器上安装好。这俩东西pip就能装好的,有些在你装其他包的时候就帮你装过了,这里就不赘述了。
然后,下载pytorch3d:
git clone https://github.com/facebookresearch/pytorch3d.git
然后拷到离线机器上运行如下命令安装:
cd pytorch3d
pip install -e .
最运行如下命令看一看是否装好:
python
>>>import torch
>>>import pytorch3d
>>>from pytorch3d import import _C
3.安装剩余库
下载如下几个库:
git clone https://github.com/openai/CLIP.git
git clone https://github.com/huggingface/diffusers.git
git clone https://github.com/huggingface/huggingface_hub.git
git clone https://github.com/S-aiueo32/contextual_loss_pytorch.git
然后拷进离线机器中,分别cd到这几个包的文件夹下,运行:
python setup.py sdist
cd dist
pip install (dist文件夹里的东西)
最后,pip list看一下是不是都装好了
下载模型权重:
1.下载DPT模型
从make it 3d官网指定的网址下载DPT模型,网址大概是:dpt_hybrid 。
下载好后直接在Make-It-3D-master下创建一个dpt_weights文件夹并放入其中,注意不是在Make-It-3D-master/DPT/下创建dpt_weights。
2.下载扩散模型相关
以上步骤完成后就可以跑一个demo试试:
python main.py --workspace test1 --ref_path /data/Make-It_3D/demo/astronaut.png --phi_range 135 225 --iters 2000
期间会报一个socket.gaierror的错误,因为还没下载相应的模型。
这些模型对应代码里xxx.from_pretrained()函数,直接一个一个去抱脸下载,然后放在相关位置就行了。
不知道位置的话,可以pdb进去看这个函数cache的位置就行,或者直接改位置,可以参考这篇文章,这个稍微动点脑子就能解决的。
至此,环境配置结束,祝童鞋门玩的开心!