周报(1)<仅供自己学习>

文章目录

  • 一.pytorch学习
    • 1.配置GPU
    • 2.数据读取
      • 问题1(已解决
      • 问题2(已解决
    • 3.卷积的学习
  • 二.NeRF学习
    • 1.介绍部分
      • 问题1(已解决
    • 2.神经辐射场表示
      • 问题2(已解决
      • 问题3(已解决
      • 问题4(已解决
      • 问题5:什么是视图依赖(已解决
    • 3.体渲染部分
      • 问题1:体积密度到底是什么?(已解决
      • 问题2:体渲染第一个积分公式的理解(已解决
      • 问题3:分层抽样(已解决
      • 问题4:位置编码

一.pytorch学习

1.配置GPU

os.environ[‘CUDA_VISIBLE_DEVICE’]=0’    xxx.cuda()
device=torch.device[‘cuda:1if torch cuda is avilable()else ‘cpu’]
xxx.to_device(device)

2.数据读取

问题1(已解决

问题:为什么要先转换为PIL?
PIL可以调整尺寸并且转化为ToTensor

data_transform=transform.Compose([transforms.ToPILimage(),transform.Resize(size),transform.ToTensor()])
#官方读取:
train_data=datasets.FashionMNST(root=./,train=True,download=True,tramsfrom=data_transform)
csv:
def __init__(self,df,transform=None)
self.df=df
self.transform=transform:
#图像简单处理
self.images=df.iloc[:,1:].values.astype(np.uint8)
self.labels=df.iloc[:,0:1].values
def __len__:
return len(self.images)
def __getitem__(self,idx):
image=self.images[idx].reshape(28,28,1)
label=int(self.labels[idx])
if self.transform is not None:
image=self.transform(image)
else:
image=torch.tensor(image)
lable=torch.tensor(lable,dytpe=torch.long)
return image,lable

问题2(已解决

问题:为什么要转换为int?
原本是字符串

3.卷积的学习

卷积的目的:特征划分之后提取最有用的特征,使得特征减少。

#模型构造
class CNN(nn.Module)
##初始化
def __init__(self):
super(CNN,self).__init__():
self.conv(个人属性)=nn.Sequential(
nn.Conv2d(1,32,5),
nn.RuLu(),
nn.MaxPool2d(2,stride=2)
nn.Conv2d(32,64,5),
nn.RuLu(),
nn.MaxPool2d(2,stride=2)
nn.Droput(0.3)
)
self.fn=nn.Sequential(
nn.Linear(64*4*4,512)
nn.ReLu()
nn.Linear(512,10)
)
##前向传播函数
def forward(self,x):
x=self.conv(x)
x=x.view(-1,64*4*4)
x=self.fc(x)
return x
##准确率函数
def accuracy(predictions,labels):
pred=torch.max(predictions.data,1)[1]
rights=pred.eq(labels.data.view_as(pred)).sum()
return rights,len(labels)
##实例化
net=CNN()
##损失函数
criterion=nn.CrossEntropyLoss()
##优化器(怎么实现的?)
optimizer=optim.Adam(net.parameters(),lr=0.001)
for epoch in range(num_epochs):
train_rights=[]
for batch_idx,(data,target) in enumerate(train_loader):	
net.train()
output=net(data)
loss=criterion(output,target)
optimizer.zero_grad()
loss.backward()
optimizer.step()
right=accuracy(output,target)
train_rights.append()
 net.eval()(评估模式)

二.NeRF学习

  1. 学会了NeRF的输入输出以及NeRF的过程

1.介绍部分

问题1(已解决

已知相机姿态的图像?相机姿态也就是指的是两个观察角么?
可以获得获取到相机位置和方向信息的图片

2.神经辐射场表示

问题2(已解决

1.5D函数是什么(不是一组5D点么,怎么会有函数)?
2.文中所说可以通过相机光线获得一组3D点,再根据两个观察方向输入神经网络(这两个观察方向怎么确定的?)
3.两个观察方向就可以确定相机光线的位置么?

两个观察方向决定:光线从相机射向场景中某一点的方向,其中θ表示与z轴的夹角(俯仰角),而φ表示与x-y平面的夹角(极坐标)
这里的“5D函数”实际上是指一个将5D坐标映射到输出值(颜色和密度)的数学模型
这个就是5D函数

问题3(已解决

x和d是什么玩意F是什么玩意?
x是空间坐标,d是两个方位角

问题4(已解决

怎么限制两个相关
(构建MLP体现了)

问题5:什么是视图依赖(已解决

不仅考虑像素空间位置还会考虑观察者的方向
体现在这个公式d就是观察方向

3.体渲染部分

问题1:体积密度到底是什么?(已解决

文中说是射线在位置 x 处终止于无穷小粒子的微分概率。

可以理解为σ(x) 指的是在空间中位置 x 处单位体积对光线的阻挡能力

从数学上说

如果 σ(x) 很小,这意味着在位置 x 的单位体积内粒子较少,射线穿过这个体积而没有被终止的概率较高。
如果 σ(x) 很大,这意味着在位置 x 的单位体积内粒子较多,射线穿过这个体积时被终止的概率较高。

问题2:体渲染第一个积分公式的理解(已解决

第一种思想:
参考了这篇文章
可以联系Max文章
结合了两种模型,发射模型和吸收模型

解出

根据文章内容写出该项是背景光所以约去(NeRF文章中不考虑背景光)
为什么是背景光?
我的理解可能是那些从介质外部进入并穿过介质到达观察者的光。这部分光可能来自于远处的光源,如太阳,或者是场景中的其他照明。
最终

第二种思想:

T(s)表示从s=0点到s=s点光没有被遮挡的概率,是一个积累量,感觉类似与光线在每个位置的权重
乘上体积密度和颜色值积累就可以表现出反应了物体的反射,吸收等光效应的光点。
T(s+ds)=T(s)(1-体积密度*ds)体积密度是概率密度函数。

问题3:分层抽样(已解决

抽出一份Ci


抽出的一份认为体积密度和颜色值不变
将T值拆解
化简得到:


将T(0->tn)拆解就是
T(0->tn)=(1-a0)(1-a2)…(1-an-1)

问题4:位置编码

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1-5岁幼儿胼胝体的表面形态测量

摘要 胼胝体(CC)是大脑中的一个大型白质纤维束,它参与各种认知、感觉和运动过程。尽管CC与多种发育和精神疾病有关,但关于这一结构的正常发育(特别是在幼儿阶段)还有很多待解开的谜团。虽然早期文献中报道了性别二态性,但这些研究的观察结果…

Armv8-R内存模型详解

目录 1.内存模型的必要性 2.Armv8-R内存模型分类 2.1 Normal memory 2.2 Device Memory 2.2.1 Gathering 2.2.2 Reordering 2.2.3 Early Write Acknowledgement 3.小结 大家好,今天是悲伤的肌肉。 在调研区域控制器芯片时,发现了S32Z、Stellar …

从Centos7升级到Rocky linux 9后,网卡连接显示‘Wired connection 1‘问题解决方法

问题描述 从Centos7升级到Rocky9后, 发现网卡eth0的IP不正确。通过nmcli查看网卡连接,找不到name为eth0的连接,只显示’Wired connection 1’ 查看/etc/NetworkManager/system-connections/,发现找不到网卡配置文件。 原因分析 centos7使…

git取消合并:--hard 或 --merge

第一步:查了git日志 git reflog如下,运行上述命令后,可以看见所有的提交哈希(id) 第二步 查看到上述所有的提交记录后,有如下方法去回退 方法1:--hard 确定上一次提交的哈希值 git reset…

RK3568笔记三十八:DS18B20驱动开发测试

若该文为原创文章,转载请注明原文出处。 DS18B20驱动参考的是讯为电子的单总线驱动第十四期 | 单总线_北京迅为的博客-CSDN博客 博客很详细,具体不描述。 只是记录测试下DS18B20读取温度。 一、介绍 流程基本和按键驱动差不多,主要功能是…

内存RAS技术介绍:内存故障预测

故障预测是内存可靠性、可用性和服务性(RAS)领域中的一个重要方面,旨在提前识别潜在的不可纠正错误(UE),以防止系统崩溃或数据丢失。 4.1 错误日志记录与预测基础 错误一般通过Linux内核模块Mcelog记录到…

Matlab 判断直线上一点

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 判断一个点是否位于一直线上有很多方法,这里使用一种很有趣的坐标:Plucker线坐标,它的定义如下所示: 这个坐标有个很有趣的性质,我们可以使用Plucker坐标矢量构建一个Plucker矩阵: 则它与位于对应线上的齐次点…

鸿蒙语言基础类库:【@system.configuration (应用配置)】

应用配置 说明: 从API Version 7 开始,该接口不再维护,推荐使用新接口[ohos.i18n]和[ohos.intl]。本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import configurati…

uniapp启动图延时效果,启动图的配置

今天阐述uniapp开发中给启动图做延迟效果,不然启动图太快了,一闪就过去了; 一:修改配置文件:manifest.json "app-plus" : {"splashscreen" : {"alwaysShowBeforeRender" : false,"…

vue学习day09-自定义指令、插槽

29、自定义指令 (1)概念:自己定义的指令,可以封装一些dom操作,扩展额外的功能。 (2)分类: 1)全局注册 2)局部注册 3)示例: 让表…

前端Vue组件化实践:自定义银行卡号格式化组件的探索与应用

在前端开发中,随着业务逻辑的复杂化和应用规模的扩大,传统的一体式开发方式逐渐显露出其局限性。任何微小的改动或新功能的增加都可能牵一发而动全身,导致整体逻辑的修改,进而增加了开发成本和维护难度。为了解决这一问题&#xf…

Java软件设计模式-单例设计模式

目录 1.软件设计模式的概念 2.设计模式分类 2.1 创建型模式 2.2 结构型模式 2.3 行为型模式 3.单例设计模式 3.1 单例模式的结构 3.2 单例模式的实现 3.2.1 饿汉式-方式1(静态变量方式) 3.2.2 懒汉式-方式1(线程不安全) 3.…

数据结构之初始二叉树(2)

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 二叉树的前置知识(概念、性质、、遍历) 通过上篇文章的学习,我们…

STM32第十八课:SPIFlash

目录 需求一、SPI概要二、SPI配置1.开时钟2.配置IO3.配置&使能SPI 三、FLash操作函数1.SPI发送数据2.FLASH写使能3.FLASH等待操作完成4.FLASH页写操作5.FLASH读操作6.FLASH扇区擦除 四、需求实现 需求 通过SPI控制FLash进行数据的保存和删除。 一、SPI概要 在我们使用UA…

oracle控制文件详解以及新增控制文件

文章目录 oracle控制文件1、 控制文件包含的主要信息如下:2、查看目前系统的控制文件信息,主要是查看相关的字典视图 oracle新增控制文件 oracle控制文件 控制文件是一个很小的二进制文件(10MB左右),含有数据库结构信息,包括数据…

(leetcode学习)15. 三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1&a…

浅谈全量微调和PEFT高效微调(LoRA)

浅谈全量微调和LoRA微调 全量微调Full Fine-Tuning 全量微调是指在预训练的大型模型基础上调整所有层和参数,‌使其适应特定任务的过程。‌这一过程使用较小的学习率和特定任务的数据进行,‌可以充分利用预训练模型的通用特征 高效微调 高效微调&…

PyQt5图形界面--基础笔记

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QToolTip, QLabel, QLineEdit from PyQt5.QtGui import QIcon, QFont, QPixmap import sys https://www.bitbug.net/ 将图片转换为ico格式, 用来更改打包的文件图标 -F 只产生exe文件, 其他临时文件不产生 -…

深度学习论文: XFeat: Accelerated Features for Lightweight Image Matching

深度学习论文: XFeat: Accelerated Features for Lightweight Image Matching XFeat: Accelerated Features for Lightweight Image Matching PDF:https://arxiv.org/pdf/2404.19174 PyTorch: https://github.com/shanglianlm0525/PyTorch-Networks 1 概述 本文创新性地推出了…

kubernetes——Istio(三)

一、安全 将单一应用程序分解为微服务可提供各种好处,包括更好的灵活性、 可伸缩性以及服务复用的能力。但是,微服务也有特殊的安全需求: 为了抵御中间人攻击,需要流量加密。为了提供灵活的服务访问控制,需要双向 TL…