简单聊聊3D高斯与传统深度学习在使用CUDA时的不同

本文参考链接:

https://www.youtube.com/watch?v=1buFrKUaqwM

最近在看3D高斯的源代码,发现其中submodules文件夹下有许多的.cu文件。进一步的,发现其中的代码是使用C++实现的,且涉及对CUDA核心的直接使用。代码用CUDA直接实现了3D高斯实验中的一些计算问题。如计算3D高斯在二维屏幕上的投影、将投影转化成近似圆、计算tile等操作...

令我疑惑的是3DGS的源代码明明使用了Pytorch,这些涉及算法核心原理的步骤为什么不直接使用pytorch实现,为什么会多出这些.cu源码?

原来,Pytorch之所以称为"深度学习框架",是因为pytorch是一种更高层的封装,pytorch集成了许多在深度学习中使用的算子,如卷积、池化、激活函数等。这些算子显然在一般的深度学习任务中能够非常方便的使用,提高工作效率。

3DGS与此的不同之处在于,3DGS是一门渲染技术,本质上并不涉及这些常规的深度学习算子 操作。3DGS为了能够使用GPU进行并行运算,其源码部分进行了自定义的算子,这些算子能够实现3DGS所需要的光栅化操作。

而在整个代码的外层,仍是由pytorch进行对接,而核心的计算部分,是自定义的算子。而非pytorch本身集成的算子。

所以本质上,3DGS只是与一般的神经网络思路相同,包含前向传播和反向传播两个过程。并没有卷积等提取图像特征的工作,取而代之的是图像的光栅化技术。

相关推荐
得贤招聘官3 小时前
精准招聘新纪元:AI 重构选才逻辑
人工智能
ChatPPT_YOO4 小时前
智能演示时代:8款免费AI PPT生成工具全面评测
人工智能·powerpoint·ai生成ppt·ppt制作
却道天凉_好个秋4 小时前
OpenCV(二十一):图像的放大与缩小
人工智能·opencv·计算机视觉
风暴之零4 小时前
卡尔曼滤波学习
人工智能·学习·机器学习
DatGuy5 小时前
Week 24: 深度学习补遗:Vision Transformer (ViT) 复现
人工智能·深度学习·transformer
盼小辉丶5 小时前
使用互信息进行无监督学习
深度学习·keras·无监督学习
A尘埃5 小时前
项目三:信息抽取与图谱问答(医疗科研文献知识图谱与智能问答平台)
人工智能·windows·知识图谱
鹿鸣悠悠5 小时前
AI测试(含大模型)与普通测试的区别及实施方法
人工智能
闲看云起5 小时前
一文了解RoPE(旋转位置编码)
人工智能·语言模型·自然语言处理
whaosoft-1435 小时前
51c视觉~合集50
人工智能