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

相关推荐
明王明王14 小时前
Ubuntu 26.04 使用 Windows Spotlight:给 Bing Wallpaper 加上 Spotlight 支持
linux·windows·ubuntu
江湖有缘14 小时前
Docker开源项目: 基于Ubuntu系统部署ExpenseOwl自托管记账工具实战教程
ubuntu·docker·开源
一直C14 小时前
【数据结构】哈希表+算法复杂度与经典排序查找(C语言)
java·linux·开发语言·数据结构·算法·ubuntu·散列表
kobe_OKOK_18 小时前
ubuntu server 打包成一个压缩文件,并且在另一台电脑中解压缩
服务器·数据库·ubuntu
敲代码还房贷18 小时前
安装wsl报错:HCS_E_HYPERV_NOT_INSTALLED
linux·python·ubuntu
一直C18 小时前
【Linux应用编程】深入理解Linux多任务机制:进程原理、状态转换与进程控制实战
linux·开发语言·算法·ubuntu·vim·visual studio code
智者向内寻求力量20 小时前
【记录】ubuntu 24.04 安装在levnoval PC上之后,蓝牙设备找不到解决方法
linux·服务器·ubuntu
敲代码还房贷2 天前
VMware17 + Ubuntu22.04 共享 完整步骤
linux·python·ubuntu
好果不榨汁2 天前
网络安全攻防实战:基于 Ubuntu 的攻击机与防守机搭建与演练
安全·web安全·ubuntu
w01_02_032 天前
虚拟机, ubuntu , samba
linux·运维·ubuntu