nerfstudio半离线配置踩坑记录

2024-08-29 02:36

本文主要是介绍nerfstudio半离线配置踩坑记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

安装torch2.1.2 with cuda11.8

由于清华镜像源(包括阿里源和豆瓣源)都没有torch2.1.2+cu118的包,因此只能从pytorch官网下载。
服务器上直接通过下面pip的方式安装会由于网络原因中断,无奈只能在本地先把torch的包下载下来再上传到服务器离线安装。

pip install torch==2.1.2+cu118 torchvision==0.16.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118

将torch包(torch-2.1.2+cu118-cp38-cp38-linux_x86_64.whl)上传到服务器后,pip离线安装命令如下。

pip install torch-2.1.2+cu118-cp38-cp38-linux_x86_64.whl

这时会发现安装torch需要下载多个依赖包,直接去pip源下载非常慢还容易因为网络中断,由于离线安装torch包,这里也没法通过-i https://pypi.tuna.tsinghua.edu.cn/simple 的方式换源(也可以有办法,但我试了不行),但可以设置全局永久替换来解决这个问题。

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

安装torchvision0.16.2+cu118类似。

安装 tiny-cuda-nn

这里就踩了更多坑了。
如果能正常访问github,那么按照nerfstudio教程,用下面这条命令就可以解决了。

pip install ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch

但服务器不能访问GitHub,没办法只能参考tiny-cuda-nn的README走离线安装。在这之前,先把ninja包安装了,由于上面给pip换过清华源了,所以这里安装很顺畅。
首先,检查gcc版本、cuda版本和cmake版本。
tiny-cuda-nn编译要求
然后在本地clone tiny-cuda-nn的库和它依赖的子库(cutlass和fmt包),如果你本地能顺利的clone完,那么万事大吉,可以按照readme进行cmake编译了。如果你和我一样,好不容易clone完tiny-cuda-nn,在clone子库的时候网络超时中断了,这个时候可以选择单独clone cutlass和fmt包。

git clone --recursive https://github.com/nvlabs/tiny-cuda-nn

clone子库不幸超时的解决方案:

cd tiny-cuda-nn/dependenciesgit clone https://github.com/NVIDIA/cutlass.gitgit clone https://github.com/fmtlib/fmt.git

下面就可以cmake离线编译tiny-cuda-nn了。(实际上可能还有两个坑在后面hh)

cd tiny-cuda-nn
tiny-cuda-nn$ cmake . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo

这一步可能会遇到找不到cuda compiler的情况。即使你使用nvcc -V查看到你本地已经按要求安装了11.8版的cuda。
这是由于cuda的版本和gcc的版本不兼容导致的,参考StackOverflow上的回答,11.8版的cuda最高支持到11版的gcc,如果你不幸gcc版本高了,没关系卸载重装就行。
cuda版本和兼容的gcc版本
没遇到cuda compiler问题的可以进行下一步cmake编译,如果你网络好是–recursive安装好cutlass和fmt包的,那么你应该不会遇到问题。

tiny-cuda-nn$ cmake --build build --config RelWithDebInfo -j

如果你是手动安装cutlass和fmt包的,那么你可能会在编译到65%时遇到问题,这是由于手动安装的包版本和tiny-cuda-nn要求的不一致了,解决办法是按照tiny-cuda-nn的版本对cutlass和fmt包分别通过git checkout到规定的版本。
在这里插入图片描述
以fmt包为例,直接checkout会报错,需要先git stash,然后再git checkout
在这里插入图片描述

解决完上述问题后,再执行cmake编译,这一步编译时间可能会有点长(不会太长,耐心等待下)。
在这里插入图片描述

至此,就算基本完成nerfstudio的安装了,后面就按步骤走就行。(至少我没遇到问题了)
在nerfstudio的conda环境里install tiny-cuda-nn。

tiny-cuda-nn$ cd bindings/torch
tiny-cuda-nn/bindings/torch$ python setup.py install

直接pip install安装nerfstudio。

pip install nerfstudio

搞定!

这篇关于nerfstudio半离线配置踩坑记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1116597

相关文章

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

mysql5.7.15winx64配置全过程

《mysql5.7.15winx64配置全过程》文章详细介绍了MySQL5.7.15免安装版的配置步骤,包括解压安装包、设置环境变量、修改配置文件、初始化数据目录、安装服务、启动数据库、登录及密码修改... 目录前言一、首先下载安装包二、安android装步骤1.第一步解压文件2.配置环境变量3.复制my-

Jenkins的安装与简单配置过程

《Jenkins的安装与简单配置过程》本文简述Jenkins在CentOS7.3上安装流程,包括Java环境配置、RPM包安装、修改JENKINS_HOME路径及权限、启动服务、插件安装与系统管理设置... 目录www.chinasem.cnJenkins安装访问并配置JenkinsJenkins配置邮件通知

Conda国内镜像源及配置过程

《Conda国内镜像源及配置过程》文章介绍Conda镜像源使用方法,涵盖临时指定单个/多个源、永久配置及恢复默认设置,同时说明main(官方稳定)、free(逐渐弃用)、conda-forge(社区更... 目录一、Conda国内镜像源二、Conda临时使用镜像源指定单个源临时指定多个源创建环境时临时指定源

MySQL配置多主复制的实现步骤

《MySQL配置多主复制的实现步骤》多主复制是一种允许多个MySQL服务器同时接受写操作的复制方式,本文就来介绍一下MySQL配置多主复制的实现步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录1. 环境准备2. 配置每台服务器2.1 修改每台服务器的配置文件3. 安装和配置插件4. 启动组复制4.

通过配置nginx访问服务器静态资源的过程

《通过配置nginx访问服务器静态资源的过程》文章介绍了图片存储路径设置、Nginx服务器配置及通过http://192.168.206.170:8007/a.png访问图片的方法,涵盖图片管理与服务... 目录1.图片存储路径2.nginx配置3.访问图片方式总结1.图片存储路径2.nginx配置

nginx配置错误日志的实现步骤

《nginx配置错误日志的实现步骤》配置nginx代理过程中,如果出现错误,需要看日志,可以把nginx日志配置出来,以便快速定位日志问题,下面就来介绍一下nginx配置错误日志的实现步骤,感兴趣的可... 目录前言nginx配置错误日志总结前言在配置nginx代理过程中,如果出现错误,需要看日志,可以把

基于Spring Boot 的小区人脸识别与出入记录管理系统功能

《基于SpringBoot的小区人脸识别与出入记录管理系统功能》文章介绍基于SpringBoot框架与百度AI人脸识别API的小区出入管理系统,实现自动识别、记录及查询功能,涵盖技术选型、数据模型... 目录系统功能概述技术栈选择核心依赖配置数据模型设计出入记录实体类出入记录查询表单出入记录 VO 类(用于