- 博客(76)
- 问答 (6)
- 收藏
- 关注
原创 gsplat中的3D Gaussian Splatting as Markov Chain Monte Carlo的代码解读
当然,计算新的尺度(Scale)涉及到一些复杂的数学运算。这个公式是基于论文中的公式 (9) 推导出来的。通过一个嵌套的循环来计算新的尺度。这个过程涉及到二项式系数(,然后用这个系数来调整原始的尺度值,得到新的尺度值。)和一些数学运算,包括幂运算和平方根运算。具体来说,内核函数计算了一个系数。为 0.0,用于累加分母的值。这个过程体现了采样数量(通过。参数)对新的尺度计算的影响。首先,初始化一个变量。然后,使用二项式系数。使用嵌套循环计算分母。
2024-07-09 19:50:48 660
原创 Surface splatting (2D Gaussian splatting)代码分析
【代码】Surface splatting (2D Gaussian splatting)代码分析。
2024-07-07 12:18:25 226 1
原创 widows下 vscode 的 terminal / powershell,ctrl+v失灵,输出^v
Emacs 模式是一种文本编辑模式,最初源自于 Emacs 文本编辑器,后来被广泛应用于各种命令行和文本编辑环境中。Emacs 模式以其丰富的快捷键和强大的编辑功能而闻名。在 Emacs 模式下,用户可以通过组合键(通常是Ctrl和Meta键,Meta键在现代键盘上通常对应Alt键)来执行各种编辑操作。Ctrl+A:移动光标到行首Ctrl+E:移动光标到行尾Ctrl+B:光标向后移动一个字符Ctrl+F:光标向前移动一个字符Ctrl+P:上一条历史命令Ctrl+N:下一条历史命令Ctrl+D。
2024-06-27 18:52:21 870
原创 windows powershell 自动补全/自动suggestion
具体最新版本:https://www.powershellgallery.com/packages/PSReadLine/在~\Documents\PowerShell\Microsoft.PowerShell_profile.ps1。
2024-06-24 19:24:51 283
原创 NumPy2.0近期更新导致用不了
ABI 是应用程序二进制接口的缩写,它定义了如何在二进制层面进行交互,包括函数调用约定、数据类型的大小和布局等。ABI 的更改意味着旧版本的代码可能无法与新版本的代码无缝兼容,因为二进制层面的接口发生了变化。这可能会影响到依赖 NumPy 的第三方库和应用程序,需要它们进行相应的更新和重新编译。
2024-06-21 22:51:17 4498
原创 colmap如何利用GPS信息or如何对齐给定坐标系
是Colmap中用于地理配准的工具,它能够将重建的三维模型与地理坐标系对齐。此工具使用RANSAC算法来估计模型与目标坐标系之间的3D相似变换。
2024-06-11 17:21:10 598
原创 vscode copilot git commit 生成效果太差,用其他模型替换
我们可以用close ai,其相当于等效替代:https://referer.shadowai.xyz/r/20560。刚好,gitlens 最近开发了 AI commit的功能,其提供配置url + api可以实现自定义模型。git commit 这种较为复杂的内容还是交给大模型做比较合适。在 vscode 的 output 中可以看到。但是我是怎么知道要填后面的这么长一串的呢?首先,填短的肯定是用不了,这个我试过。不一样,我是为什么要填这个长的呢?其实,这个就看个人的思考能力了。
2024-06-10 14:47:00 475
原创 Nerfstudio Gaussian Splatting 相机姿态可微/求导的具体实现方式
总的来说,这段代码是用于计算视图矩阵的梯度,这些梯度可以用于优化相机的位置和朝向,以最小化投影高斯分布的某种损失函数。这段代码是用于计算视图矩阵(view matrix)的梯度,视图矩阵通常用于3D图形和计算机视觉中,用于将世界坐标转换为相机坐标。在深度学习中,视图矩阵通常用于表示相机的位置和朝向。:通过两层循环,计算所有高斯分布的梯度相对于旋转矩阵的和。外层循环遍历旋转矩阵的行,内层循环遍历旋转矩阵的列。创建一个与视图矩阵形状相同的全零张量,用于存储梯度。计算所有高斯分布的梯度相对于平移向量的和。
2024-06-07 10:24:48 568
原创 Nerstudio 相机优化代码理解
这个函数计算的是SO(3)(三维旋转群)和R^3(三维平移空间)的直积群的指数映射。它假定输入的切向量前三个分量是平移分量,后三个分量是SO(3)的切向量(通常表示为旋转向量或轴角表示法)。函数首先计算旋转部分的指数映射,然后与平移部分结合,生成最终的[R|t]变换矩阵。这两个函数的主要差异在于它们处理旋转部分的方式不同,以及它们对切向量的解释略有不同。总的来说,这两个函数都是用于从SE(3)的切空间到SE(3)本身的映射,但是它们在处理旋转部分时采用了不同的策略,这可能会影响它们的性能和适用性。
2024-06-05 22:11:51 370
原创 cudart link错误自动修复脚本
安装的envs/xxx/lib/libcudart.so 会link到错的。如果手动修复太复杂,我写了一个脚本自动修复。在conda安装cuda环境时。
2024-06-04 18:59:48 186
原创 lightning的hook顺序
on_before_optimizer_step: 优化器步骤之前。on_train_epoch_start: 每个训练周期开始。on_train_batch_start: 每个训练批次开始。on_train_batch_end: 每个训练批次结束。on_train_epoch_end: 每个训练周期结束。on_before_zero_grad: 清空梯度之前。on_after_zero_grad: 清空梯度之后。on_train_start: 训练开始。on_train_end: 训练结束。
2024-05-22 10:46:25 273
原创 -lcudart一直找不到
一般libcudart.so是链接到一个其他的文件,如libcudart.so->libcudart.so.10.9.8,请确保这个link是正确的,即libcudart.so.10.9.8存在,可以通过ls -l查看link情况。首先确保你的文件存在,一般在。确保编译时指定库的路径,如果不是,请重新设置。
2024-03-16 15:45:20 485
原创 通过设置MAX_JOBS=1防止pytorch编译时内存溢出
Allowing ninja to set a default number of workers… (overridable by setting the environment variable MAX_JOBS=N)
2024-03-16 13:17:43 955 2
原创 waymo open dataset v2.0.0 (Perception dataset) 大小
【代码】waymo open dataset v2.0.0 (Perception dataset) 大小。
2024-01-30 23:23:48 494
原创 梯度裁剪中的NaN值处理 - 深入探究torch.nn.utils.clip_grad_norm_和torch.nn.utils.clip_grad_value_
在深度学习中,梯度裁剪是一种常用的技术,用于防止训练过程中梯度爆炸的问题。PyTorch提供了两个梯度裁剪函数 - torch.nn.utils.clip_grad_norm_ 和 torch.nn.utils.clip_grad_value_。本博客将深入探讨这些函数的计算方法,以及它们如何处理梯度中的NaN值。
2023-12-26 22:54:51 2313
原创 混合精度训练:显存减少还是增加?
在混合精度训练中,模型的权重参数通常以f32的形式保存,但在前向传递过程中,这些参数会被转换为f16,用于计算中间结果和损失函数。然后,在反向传播过程中,我们将f16梯度转换回f32,并使用f32梯度来更新模型的参数。综上所述,尽管混合精度训练需要同时保存f32和f16的参数,但由于f16参数占用的内存较小,并且梯度计算使用了降低精度的方法,整体的显存使用量通常会减少。但是,有一个普遍的疑问是,虽然混合精度训练可以减少显存使用量,但它同时保存了f32和f16的参数,这是否会导致显存增加?
2023-12-19 20:18:08 964
原创 torch代码是否异步执行情况分析
猜测循环会并行执行,不需要等待上一个循环的结果。,猜测循环会顺序执行,需要等待上一个循环的结果。torch按顺序执行代码,没有异步。两种情况没太大差异,说明判断错误。
2023-10-08 19:21:36 215
原创 pytorch-lightning的trainer的optimaze_step的详细分析
【代码】pytorch-lightning的trainer的optimaze_step的详细分析。
2023-09-15 10:56:51 436
原创 cudart.so vs cuda.so的区别
API的访问,而libcuart.so提供了对。libcuda.so提供对CUDA。在wsl中cuda.so位于。
2023-09-11 15:55:15 282
原创 分布式训练如何节省内存加载数据集
一个简单的防止冗余数据集副本的方法是依靠 torch.multiprocessing 通过共享内存自动在分 spawned 进程之间共享数据。为此,所有数据预加载都应在 DataModule.我们知道,分布式训练数据集加载内存占用和节点数量成正比,每个节点都会加载一份数据集到内存,多个节点就会有多个数据集复制。对于内存中的数据集,每个进程都将在内存中保存一个(冗余的)数据集副本,内存消耗将随着进程数线性增加。() 中在主进程上进行。结果,所有张量数据将在使用“ddp_spawn”策略时自动共享。
2023-08-28 19:51:46 246
原创 “LegionFanControl“ cannot write to a closed textwriter
最近的 Microsoft Defender 数据库更新将 Legion Fan Control 的组件 rwdrv.sys 标记为 HackTool,这可能会导致 Defender 将其隔离或删除,从而导致该应用程序无法正常工作。将 rwdrv.sys 文件添加到 Defender 的白名单。这意味着 Defender 将不再认为该文件是恶意软件,并允许它运行。
2023-08-17 17:24:10 1356
原创 torch.profiler
PyTorch Profiler 是一个工具,它允许在训练和推理期间收集性能指标。Profiler 的上下文管理器 API 可用于更好地了解哪些模型操作最昂贵,检查它们的输入形状和调用堆栈,研究设备内核活动并可视化执行跟踪。性能指标:例如内存使用、CPU 和 GPU 使用、操作时间等。
2023-08-13 23:32:05 1516
原创 Autocasting和GradScaler
为了防止下溢,梯度缩放会将网络的损失乘以一个缩放因子,并在缩放的损失上调用反向传递。然后,通过网络流回的梯度将按相同的因子进行缩放。换句话说,梯度值具有更大的幅度,因此不会刷新为零。BFloat16 (Brain Floating Point)是一种16bit的浮点数格式,动态表达范围和float32是一样的,但是精度低。如果特定操作的前向传递具有 float16 输入,则该操作的反向传递将生成 float16 梯度。在优化器更新参数之前,应先unscaled每个参数的梯度,以便缩放因子不会干扰学习率。
2023-08-13 22:15:55 667
原创 vscode copilot长时间没反应
参考:https://github.com/orgs/community/discussions/29127。首先看一下OUPUT插件信息有什么异常。可以在vscode里设置一下代理。那是请求没有相应的原因。
2023-07-04 16:28:36 3045
原创 [Docker] 错误之Error response from daemon: could not select device driver ““ with capabilities: [[gpu]]
这是由于没有配置好docker运行环境导致的,执行安装容器运行环境(Ubuntu为例)Nvidia Docker安装后,使用镜像创建容器时出错,命令如下。安装后重新启动docker。
2023-05-17 11:33:56 1087
原创 如何在每次启动终端时自动启动上次的conda环境
每次我们启动bash时,默认为base环境,我们可以通过添加。写一个记忆脚本,记录上次启动的环境,并在开始时自动启动。但是这样还不够智能,我们有时想用自动化启动环境。,还要修改上面的内容。
2023-03-24 21:02:43 823
原创 【wsl2】opengl相关问题
sudo apt-get install libgl1sudo apt-get install python-openglexport LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6
2023-03-12 13:19:48 263
空空如也
markdown缩进后公式、代码不生效?
2022-09-01
Axios Get 请求不稳定,初始化连接时慢时快
2022-08-31
javascript 为什么 1 in [1] 为 false
2022-03-11
用python写代码时如何让IED知道对象的类型?
2020-12-29
python如何创建指定维度的列表
2020-07-23
请问QT组件提升后不显示,是什么原因?
2019-11-17
能用双线性内插法放缩RGB图像吗?
2019-09-05
C语言getch()函数连用问题
2018-12-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人