【记录贴!】记录调试nerf-pytorch踩过的坑

简单来说,nerf(神经辐射场)是一个结合了某种全连接深度网络,通过少量目标视角下的照片就能合成任意视角照片的技术。从代码入手算法进而掌握技术是一件高效的学习方式,本帖主要围绕nerf源码的安装debug步骤展开。后续会介绍算法的具体原理。

PS:如果对nerf,计算机图形学,隐式渲染有兴趣的同学,欢迎加群一起讨论交流呀!

点击链接加入群聊【神经辐射场,可微渲染,计算机图形学,三维重建】:https://jq.qq.com/?_wv=1027&k=2vCLSdQ9

环境:windows

平台:pycharm(搭建pytorch环境)

首先简要罗列一下安装步骤:

1.下载源代码(github如果无法打开或者出现加载慢,下载卡顿可以尝试修改host文件或者使用gitee,具体百度即可,不再详述)

https:///github.xom/yenchenlin/nerf-pytorch.git
下载好后如图所示

2.准备anaconda,pycharm

两软件都可通过官网免费下载。anaconda建议安装适配本机的版本,跨本版容易出现深度学习环境不兼容的问题。

官网链接:

Anaconda | The World's Most Popular Data Science Platform

Download PyCharm: Python IDE for Professional Developers by JetBrains

如图为anaconda下载界面,卡顿可以右键在新标签页打开。

3.安装库,数据集,此步骤可能会很慢,速度都是几百k,等了很久才下好。这里附一个网盘链接

bash download_example_data.sh

链接:https://pan.baidu.com/s/1ZkU7hi3gdmZrZH7npELuzg 
提取码:nkq1 
--来自百度网盘超级会员V5的分享

4.环境配置及运行

函数库安装:

torch==1.11.0        注:根据个人电脑配置定,大于0.9.1即可(本机采用1.13.0)
imageio
imageio-ffmpeg
matplotlib
configargparse
tensorboard>=2.0
tqdm
opencv-python

以上库采用

pip install -r requirements.txt

即可,个人认为还是单独下载合适,有些库的安装是依赖其他库的。方便查看问题 

注:pytorch安装需要配套cuda,所以我是单独安装的pytorch。

打开官网根据配置选择cuda版本(一般默认):

Start Locally | PyTorch

 复制粘贴划线部分并移步命令行下载即可。(网上有说把后面-c pytorch -c conda-forge这块删掉会快一点,但我这样下载之后cuda就会报错,索性还是用国外源

pytorch环境配置,参考链接

(2条消息) 利用Anaconda安装pytorch和paddle深度学习环境+pycharm安装---免额外安装CUDA和cudnn(适合小白的保姆级教学)_炮哥带你学的博客-CSDN博客

5.运行,打开pycharm,选择配置好的pytorch环境,点击下方Terminal并输入

python run_nerf.py --config configs/lego.txt

如果到目前为止一切顺利,那么,恭喜你完成了最简单的部分,接下来我们进入主题
 

6.报错记录与调试:

错误一:CUDA error: CUBLAS_STATUS_ALLOC_FAILED when calling `cublasCreate(handle) 

解决方案:晚上搜了很多都是有关batch,代码部分的修改,可能不同的电脑的运行环境不一样,所以源代码未必能直接跑通。然鹅,,,我的问题不在于此

是的,我犯了一个十分低级的错误:中文路径!

我的源代码路径是存贮在中文命名的文件夹里,后来放到一个纯英文路径,问题咔一下就解决了,很快啊~

错误二:RuntimeError: CUDA out of memory. Tried to allocate 2.10 GiB (GPU 0; 14.76 GiB total capac ****************

解决方案,这里按照优先顺序提供三种解决方案

(1)降低迭代次数。(对于仅为了验证并实现算法,对精度没有什么要求的新手强烈推荐)。

比如源码这里应该是10万还是20万次来着,跑的越久显卡功耗是越大的,当我迭代了50000次后,发现就开始爆内存,于是我就把他改成了40000,20000,甚至2000,最终同样可以运行出结果。但这里改完之后不要忘了修改视频导出参数设置,不然跑不出来结果。

视频参数设置:

比如这里的frequency of render_poses video saving就是渲染结果mp4的保存频率(理论上只需要小于上面的迭代次数N_iters即可,其他需要保存的内容根据情况修改

以上工作修改后,再次运行即可

(2)修改batch_size

如图,尽量是2的倍数,比如

32*32,或者32*4

修改后运行

(3)修改 chunk以及netchunk

chunk:并行处理的光束个数

netchunk:并行法搜送给神经网络的特征点数

比如我这里就分别改为1024,修改后即可正常运行 

  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值