ER-NeRF本地运行只要梳理好依赖版本,运行起来就很顺畅
-
conda create -n ernerf python=3.10 创建本项目虚拟环境
-
conda install pytorch==1.12.1 torchvision==0.13.1 cudatoolkit=11.3 -c pytorch 若windows有多个版本的cuda,需要在环境变量中切换至cuda 11.3,主要是系统变量中的CUDA_PATH,NVCUDASAMPLES_ROOT,PATH进行编辑为自己需要的cuda版本
-
pip install -r requirements.txt 会遇到部分依赖包版本冲突,根据实际情况处理即可
-
pip install "git+https://github.com/facebookresearch/pytorch3d.git" 安装pytorch3d之前需先安装好pytorch3d的编译环境,如下:
conda install pytorch=1.13.0 torchvision pytorch-cuda=11.6 -c pytorch -c nvidia conda install -c fvcore -c iopath -c conda-forge fvcore iopath
因本环境采用的cuda版本是11.3,所以需手动安装 nvidiacub,并设置系统环境变量 CUB_HOME,指向位置为CMakeLists.txt所在路径,安装方式如下: 查看cuda 11.3对应的cub版本为1.11.0 下载cub1.11.0,下载后解压,注意解压路径不能有中文,然后添加至CUB_HOME,如下:以下cub的依赖也需要安装好安装完以上环境后再下载pytorch3d本地编译,我用的pytorch3d 0.7.1 版本,不需要修改任何源码。在ernerf虚拟环境中先配置visual studio环境变量
# 激活虚拟环境 ernerf conda activate ernerf # 进入pytorch3d文件夹的目录里面,先配置visual studio环境变量 set DISTUTILS_USE_SDK=1 set MSSdk=1 # 再进行编译 python setup.py install # 编译好了可以用conda检查环境里面有没有这个包 conda list pytorch3d
-
pip install tensorflow-gpu==2.8.0 安装 tensorflow-gpu==2.8.0时只遇到了一下异常
TypeError: Descriptors cannot be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0. If you cannot immediately regenerate your protos, some other possible workarounds are:1. Downgrade the protobuf package to 3.20.x or lower.2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).
通过降低protobuf版本即可,如下:
pip install protobuf==3.19.0
这个过程中主要是pytorch3d安装比较麻烦,一定要注意各库的版本冲突问题