ubuntu20.04 nerf开山之作

源码

GitHub - yenchenlin/nerf-pytorch: A PyTorch implementation of NeRF (Neural Radiance Fields) that reproduces the results.

代码的相关解读

NeRF代码解读-相机参数与坐标系变换 - 知乎

原文题目:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

git:

cpp 复制代码
git clone https://github.com/yenchenlin/nerf-pytorch.git2 
cd nerf-pytorch

环境配置(建议先跳到下面miniconda,不用conda的直接去github)

#########################################################################

在终端输入

pip install -r requirements.txt

(注意这个requirements.txt最好是用tab补全,我直接复制执行会报错)

pip的时候会经常timeout

可参考

Python下载库超时Connection to files.pythonhosted.org timed out问题解决(换源)-CSDN博客

总结就是

pip命令+ -i +镜像地址。(可独立安装requirements.txt各自的库)例如 pip install numpy -i https://mirrors.aliyun.com/pypi/simple/

正常用阿里云就可以,有条件的可以挂tizi

正常后面会有cuda版本和gpu显卡的问题

这里提前处理

首先点开自己的软件与更新,选择附加驱动里自己适合的nvidia驱动,我的535或者525都可以,那我就装低版本的525。因为后面cuda的版本是跟这个相对应,我选择535后要选择cuda12.2,但是pytorch现在才到cuda12.1。导致我们没法成功安装pytorch。所以只能525+cuda12.0+pytorch(支持的cuda12.1)

先安装好nvidia驱动,然后在终端输入
nvidia-smi

查看对应的cuda版本

然后在官网(下cuda)

CUDA Toolkit Archive | NVIDIA Developer

下载对应的cuda版本(4G左右)

具体nvidia驱动和cuda安装可以参考我这篇

ubuntu20.04 nerf Instant-ngp-CSDN博客

然后去官网(下pytorch)

Start Locally | PyTorch

选择对应的pytorch torchvision torchaudio(可高于cuda安装的版本,尽量在网络好下)

cpp 复制代码
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

###############################################################################

然后安装miniconda(便于管理环境,可以不安装)

参考Ubuntu 20.04 安装 Miniconda3_ubuntu安装miniconda3-CSDN博客

conda创建环境

cpp 复制代码
conda create -n nerf python=3.8

source activate nerf

跳回前面


当然前面的配置都可以不用,官网就给了下面的。上面只是为了管理环境和提前处理cuda的错误

cpp 复制代码
pip install -r requirements.txt

(这个配置要在conda的nerf环境下)

数据下载

cpp 复制代码
bash download_example_data.sh

执行

cpp 复制代码
python run_nerf.py --config configs/lego.txt
python run_nerf.py --config configs/fern.txt

上面那个我4G的显存报溢出,但是第二行的可以跑

然后就会报错
cuda和显卡的问题就看前面,已经解决。

错误2,assert not step_t.is_cuda, "If capturable=False, state_steps should not be CUDA

tensors

在run_nerf.py的 optimizer = torch...下一行加上

cpp 复制代码
optimizer.param_groups[0]['capturable'] = True

错误3

OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.

参考这篇博客

https://blog.csdn.net/qq_45266796/article/details/109028605,

在run_nerf.py加上:

cpp 复制代码
import os
os.environ["KMP_DUPLICATE_LIB_OK"]  =  "TRUE"

错误4

TypeError: read() got an unexpected keyword argument 'ignoregamma'

作者查阅很久没有找到,最终找了imageio的doc来尝试修改,改了之后可以运行;目前认为应该是imageio这个库更新导致识别格式不同的后果。根据打印的栈,在load_llff.py的相应错误处改为:

cpp 复制代码
return imageio.imread(f, format="PNG-PIL", ignoregamma=True)

错误3,4来源于NeRF运行遇到的两个错误 - 知乎

至此,nerf可以跑通,但是就是有点费显卡和电脑(跑了40分钟才5%,还要13小时。亏我还是12代i7,3050Ti,别人还是2020年的论文,不过看到3090和20G显存,nvidia460也跑了8个小时,我就让他跑一页吧)

2023.10.17

相关推荐
欧云服务器4 天前
怎么让脚本命令可以同时在centos、debian、ubuntu执行?
ubuntu·centos·debian
智渊AI4 天前
Ubuntu 20.04/22.04 下通过 NVM 安装 Node.js 22(LTS 稳定版)
ubuntu·node.js·vim
The️5 天前
Linux驱动开发之Read_Write函数
linux·运维·服务器·驱动开发·ubuntu·交互
再战300年5 天前
Samba在ubuntu上安装部署
linux·运维·ubuntu
qwfys2005 天前
How to install golang 1.26.0 to Ubuntu 24.04
ubuntu·golang·install
木尧大兄弟5 天前
Ubuntu 系统安装 OpenClaw 并接入飞书记录
linux·ubuntu·飞书·openclaw
小虾爬滑丫爬5 天前
ubuntu上设置Tomcat 开机启动
ubuntu·tomcat·开机启动
老师用之于民5 天前
【DAY25】线程与进程通信:共享内存、同步机制及实现方案
linux·c语言·ubuntu·visual studio code
小虾爬滑丫爬5 天前
Ubuntu 上设置防火墙
ubuntu·防火墙
林开落L5 天前
解决云服务器内存不足:2 分钟搞定 Ubuntu swap 交换区配置(新手友好版)
运维·服务器·ubuntu·swap交换区