nerfstudio半离线配置踩坑记录

news2024/12/27 21:36:47

安装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/dependencies
 
git clone https://github.com/NVIDIA/cutlass.git
 
git 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

搞定!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8.Linux_Makefile

Makefile 1、基本知识 语法: 目标:依赖 //依赖可以是0个或多个,依赖之间用空格分隔命令 //命令前面必须有tab键 目标:最终要生成的文件依赖:生成目标所需要的文件命令:怎么样通过依赖来生成目标的 make访问mak…

pve首页查看功耗拓展脚本

作者:TP唉 https://www.bilibili.com/read/cv26924314/?jump_opus1 出处:bilibili 如图所示想要这全方位信息很难吗?不,很简单只需要在shell里粘贴两串代码轻松搞定! 命令1:(curl -Lf -o /tmp/temp.sh ht…

CleanClip: macOS 上最干净的剪贴板管理工具

在日常工作中,我们经常需要复制粘贴各种内容。但是 macOS 自带的剪贴板功能非常有限,只能保存最后一次复制的内容。这就是为什么我们需要一个强大的剪贴板管理工具 - CleanClip。 CleanClip 是什么? CleanClip 是一款专为 Mac 用户设计的剪贴板管理工具,它可能是 …

day13JS-MoseEvent事件

1. MouseEvent的类别 mousedown :按下键mouseup :释放键click :左键单击dblclick :左键双击contextmenu :右键菜单mousemove :鼠标移动mouseover : 鼠标经过 。 可以做事件委托,子元素可以冒泡…

FUNCTION_ALV 下拉框的实现

下拉框可以用drdn_field或者使用DRDN_HNDL,这个文章主要是下拉框的基本使用,核心就是在fieldcat内表里面设置好下拉框的字段或者组的编号 文章目录 drdn_field使用DRDN_HNDL复制状态完整代码核心代码运行结果 drdn_field 使用DRDN_HNDL 复制状态 完整代码…

AcWing852.spfa判断负环

cnt数组表示&#xff1a;cnt【j】表示边j #include<iostream> #include<cstring> #include<algorithm> #include<queue> #define N 2010 #define M 10010 using namespace std; int n,m; int h[N],w[M],e[M],ne[M],idx; int dis[N],cnt[N]; bool st[N…

ps笔刷设置使用介绍

形状动态 建议开启&#xff0c;作用是笔刷会有粗细变换 传递 不透明度抖动 . 选择钢笔压力&#xff0c;作用就是压感&#xff0c;压力值&#xff0c;有粗细深浅轻重变化 调到这画的时候就不会特别浅 流量抖动 选择钢笔压力&#xff0c;开了就有虚边 方便画过渡。 一般画…

JavaWeb实战教程:如何一步步构建房产信息管理系统?MySQL助力数据管理

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…

Unable to delete file: .....(路径) signing-config.json无法删除

运行了一个去年很久之前的项目,在打包的时候弹出这个错误,提示要删除这个json文件,尝试了很多次无法删除,最后想到可能是文件权限的问题 Execution failed for task :app:clean. > Unable to delete file: D:\xxxxxx\xxxxxx\app\build\intermediates\signing_config\debug\…

基于Python、Django的企业门户网站设计

一、框架设计 1.1 创建项目和应用 企业门户网站的结构如下图所示。 因此,在文件夹下创建hengDaProject项目。在该项目下添加homeApp、aboutApp、newsApp、productsApp、serviceApp、scienceApp、contactApp应用。该操作参见:https://blog.csdn.net/qq_42148307/article/det…

【归纳总结】常见排序算法及其实现:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快排、归并排序

思维导图&#xff1a; 目录 思维导图&#xff1a; 一、插入排序 1.直接插入排序&#xff1a; a:基本思想&#xff1a; b:基本步骤&#xff1a; c:复杂度分析 d:Java代码实现&#xff1a; 2.希尔排序&#xff08;缩小增量排序&#xff09; a:基本思想&#xff1a; c…

python_每天定时向数据库插入数据

每天的零点十分&#xff0c;定时向mysql数据库插入&#xff0c;昨天新增的文件和昨天下载文件的记录。第一次运行的时候&#xff0c;会全量同步昨天之前的数据。 import os import threading from datetime import datetime, timedelta import time import schedule from pymy…

仓颉编程语言亮相全国大学生计算机系统能力大赛

2024年8月18日-22日&#xff0c;由全国高等学校计算机教育研究会、系统能力培养研究专家组、系统能力培养研究项目发起高校主办&#xff0c;杭州电子科技大学承办的2024全国大学生计算机系统能力大赛编译系统设计赛&#xff08;华为毕昇杯&#xff09;及操作系统设计赛在杭电下…

企业防泄密首选!哪款公司防泄密软件更强?看这里,一文解惑!

早在2011年&#xff0c;前苹果员工Paul Devine泄露苹果公司的机密信息&#xff0c;涉及新产品的预测、计划蓝图、价格和产品特征&#xff0c;还为苹果公司的合作伙伴、供应商和代工厂商提供的关于苹果公司的数据&#xff0c;这使得这些供应商和代工厂商拥有了与苹果谈判的筹码&…

Wireless Communications - 模拟调制

AM/DSB/VSB/SSB的调制与解调 AM DSB SSB 滤波法 相移法 VSB 相干解调 线性调制的抗噪声分析 DSB SSB FM/PM 的调制与解调 NBFM WBFM 调频信号的产生和解调 模拟调制对比

SpringBootFFmpeg实现M3U8切片转码播放(本地)

文章目录 参考概述代码pom.xmlffmpegFFmpegUtilsMediaInfoTranscodeConfig application.ymlApplicationUploadControllerindex.html 测试 参考 springboot-ffmpeg-demo gitee代码 SpringBoot FFmpeg实现一个简单的M3U8切片转码系统 FFmpeg音视频核心技术精讲 - 百度网盘 概…

【STM32】红外遥控

红外遥控&#xff0c;掌握了就能装逼了&#xff0c;哈哈哈哈哈哈。 大部分图片来源&#xff1a;正点原子HAL库课程 专栏目录&#xff1a;记录自己的嵌入式学习之路-CSDN博客 1 器件特性 这里载波发射周期的发射与不发射时间实际上是因为载波是38kHz、占空为三分之一的方波&a…

符号译码_网络同步赛

哎……又是 If平推字符 #include <bits/stdc++.h> using namespace std; signed main(){char x;while(cin>>x){if(x==1){cin>>x;if(x==1)cout<<">";else if(x == 0){cin>>x;if(x==1)cout<<"]";else if(x==0)cout&…

Three.js湖边小屋,包含gltf渲染、天空和水纹、光照阴影、运动的点光源、相机位置和文字切屏、粒子效果等

前期准备 使用vue3vitethree.jsgsap 开发 npm install three gsap 代码 <script setup> // 导入three.js import * as THREE from three; // 导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls.js; // 加载模型 import { GLT…

SQLserver中的游标的分类和游标的生命周期

SQLserver中的游标的分类 在 SQL Server 中&#xff0c;游标&#xff08;Cursor&#xff09;是一种数据库对象&#xff0c;用于逐行处理结果集中的数据。游标可以用于复杂的数据处理任务&#xff0c;尤其是那些不能通过简单的 SELECT 语句和 JOIN 操作完成的任务。SQL Server …