ubuntu20.04 nerf开山之作

news2025/7/19 16:52:32

源码

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:

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安装的版本,尽量在网络好下)

conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia

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

然后安装miniconda(便于管理环境,可以不安装)
参考Ubuntu 20.04 安装 Miniconda3_ubuntu安装miniconda3-CSDN博客

conda创建环境

conda create -n nerf python=3.8

source activate nerf

跳回前面


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

pip install -r requirements.txt


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

数据下载

bash download_example_data.sh


执行

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...下一行加上

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加上:

import os
os.environ["KMP_DUPLICATE_LIB_OK"]  =  "TRUE"

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

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

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
 

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

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

相关文章

架构师选择题--软件架构设计

架构师选择题--软件架构设计 真题 真题 c 中间件分为5类: 交互是最基本的功能 b 公共服务:可复用的服务 b c 微服务去中心化 面向服务集中式 d 架构的组成: 构件 , 连接件 , 约束规则 做为部署单元拆分没有意义 a 接口是已经命名的一组操…

Xftp和Xshell的使用

目录 Xftp和Xshell的区别 Xftp安装教程、使用Xftp进行远程文件传输 一、Xftp安装教程 二、使用Xftp进行远程文件传输 三、连接至服务器 四、从 windows -> 服务器 传输文件 .Xshell安装教程、使用Xshell进行Linux远程登录 什么是xshell 一、远程登录的意义 二、…

微控制器中的晶振电路

文章目录 1234567 1 2 3 4 5 6 7

Redis命令

一、数据结构介绍。 redis是一个key-value的数据库,key一般是string,但是value有很多种类型。包括: 字符串(String):字符串是 Redis 最基础的数据结构之一,可以存储字符串、整数或浮点数。 哈…

JDBC增删改查示例

数据库表 CREATE TABLE customers ( id int NOT NULL AUTO_INCREMENT, name varchar(15) DEFAULT NULL, email varchar(20) DEFAULT NULL, birth date DEFAULT NULL, photo mediumblob, PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT39 DEFAULT CHARSETgb2312;…

Redis 面试必备 全知识点思维导图

脑图下载地址:https://mm.edrawsoft.cn/mobile-share/index.html?uuidcf5bf135744412-src&share_type1 事务 定义 事务是一个单独的隔离操作,事务中的所有操作都将序列化,有顺序的执行,事务执行的过程中不会被其他客服端发来的命令打断 作用 串联多个命令防…

【兔子王赠书第2期】《案例学Python(基础篇)》

文章目录 前言推荐图书本书特色本书目录本书样章本书读者对象粉丝福利丨评论免费赠书尾声 前言 随着人工智能和大数据的蓬勃发展,Python将会得到越来越多开发者的喜爱和应用。身边有很多朋友都开始使用Python语言进行开发。正是因为Python是一门如此受欢迎的编程语…

下载Jakarta

百度找到Jakarta的官网 https://jakarta.ee/zh/ 打开后在右上角有这两个按钮 其中starter按钮是 提供helloworld的,也就是【初体验】,可以根据版本号,jdk版本定制hello world; 另一个Download是下载【兼容产品】,点进…

Python合并多个相交矩形框

Python合并多个相交矩形框 前言前提条件相关介绍实验环境Python合并多个相交矩形框代码实现 前言 由于本人水平有限,难免出现错漏,敬请批评改正。更多精彩内容,可点击进入Python日常小操作专栏、YOLO系列专栏、自然语言处理专栏或我的个人主页…

小程序设计基本微信小程序的旅游社系统

项目介绍 现今市面上有关于旅游信息管理的微信小程序还是比较少的,所以本课题想对如今这么多的旅游景区做一个收集和分类。这样可以给身边喜欢旅游的朋友更好地推荐分享适合去旅行的地方。 前端采用HTML架构,遵循HTMLss JavaScript的开发方式&#xff0…

自动化测试框架指南

目录 定义测试自动化 不同类型的框架 以工具为中心的框架 面向项目的框架 关键字驱动的框架 完美测试自动化框架的主要组件 测试库 单元测试 集成和端到端测试 行为驱动开发 测试数据管理 mock,Stubs和虚拟化 实施模式的通用机制 测试结果报告 CI平台…

SpringBoot+自定义注解+AOP高级玩法打造通用开关

1.项目结构 2.引入依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot<…

英特尔 SGX 技术概述

目录 介绍概述指示结构Memory安全区页面缓存Enclave Page Cache &#xff08;EPC&#xff09;安全区页面缓存映射Enclave Page Cache Map (EPCM) Memory ManagementStructures页面信息Page Information (PAGEINFO)安全信息Security Information (SECINFO)分页加密元数据Paging …

ardupilot开发 --- 起飞前后 篇

起飞前检查 电机响应是否正确&#xff08;转向&#xff09;姿态响应是否正常&#xff08;roll pitch yaw&#xff09;GPS数据是否正常&#xff08;星数&#xff0c;RTK信号&#xff09;电源电压安全开关安全检测&#xff08;armed pre check&#xff09; 起飞前的必调参数 机…

SpringCloud 完整版--(Spring Cloud Netflix 体系)

目录 SpringCloudSpring Cloud Netflix 体系分布式概念&#xff1a;分析图单体应用分布式架构集群微服务分布式微服务集群 服务注册与发现Eureka作用&#xff1a;为什么使用Eureka&#xff1f;解答&#xff1a;分析图 搭建&#xff1a;1、注册中心Eureka-server搭建创建项目配置…

springboot苍穹外卖实战:三、新增员工(JWT令牌校验失败+用户名重复+ThreadLocal获取用户id解决方案)

新增员工 根据前端传递参数列表设计DTO 当前端提交的数据和实体类中对应的属性差别比较大时&#xff0c;建议使用DTO来封装数据。进入sky-pojo模块&#xff0c;在com.sky.dto包下&#xff0c;已定义EmployeeDTO。 EmployeeController /*** 新增员工* param employeeDTO* ret…

检测密码安全强度 和 凯撒加密

检测密码安全强度 按照含有数字,小写字母,大写字母,指定标点符号的种类,把安全强度分为强密码,中高,中低,弱密码. 编写程序,输入一个字符串,输出该字符串作为密码时的安全强度 from string import digits, ascii_lowercase, ascii_uppercasedef check(pwd):# 密码必须至少包含…

【前端学习】—使用多种方式实现数组去重(六)

【前端学习】—使用多种方式实现数组去重(六) 一、数组常用的几个方法 //[1,2,3,4,2,1]//[{name:"caicai",age:"10"},{name:"zhangsan",age:"20"}]const array=[

jmeter监听每秒点击数(Hits per Second)

jmeter监听每秒点击数&#xff08;Hits per Second&#xff09; 下载插件添加监听器执行压测&#xff0c;监听结果 下载插件 点击选项&#xff0c;点击Plugins Manager (has upgrades)&#xff0c;点击Available Plugins&#xff0c;搜索5 Additional Graphs安装。 添加监听…

C++新经典 | C++ 查漏补缺(内存)

目录 一、new和delete 1.new类对象时&#xff0c;括号问题 2.new做了什么事 3.delete做了什么事 4.new与malloc的区别 5.delete与free的区别 二、分配及释放内存 三、重载operator new和operator delete操作符 1.重载类中的operator new和operator delete操作符 &…