- 博客(249)
- 收藏
- 关注
原创 【[特殊字符]工具记录】Cursor + Overleaf:如何将本地 Cursor 和 Overleaf 网页端建立远程连接
回到 Cursor,在 Overleaf Workshop 的设置界面,将刚才复制的字符串粘贴到。希望这篇指南能帮你解决连接问题,享受在本地 Cursor 里丝滑编写 LaTeX 的体验!,但因为 Overleaf 现在的页面是动态加载的,搜索结果往往会被大量的。其实不需要去翻复杂的网络请求日志,这里分享一个最快、最准确的方法。请求淹没,很难定位到包含 Cookie 的主请求。通常的教程会让你去 Network 面板搜。在使用 Cursor 的。
2026-04-24 14:16:59
296
原创 【C++入门5】C++ / CUDA 与 Python 扩展:.h、.cpp、.cu 与编译入门
一篇面向「会写 Python、想懂 C++ 扩展」读者的技术笔记,涵盖源文件角色、编译流程,以及如何被 Python 调用。
2026-03-12 20:33:41
410
原创 【SLURM 入门】sbatch 等概念与常用命令
一篇面向「提交作业、看队列、取消作业」的 SLURM 简明入门,适合在集群上跑训练、数据处理时查阅。
2026-03-11 21:10:41
439
原创 【vs code(cursor) ssh连不上服务器(4)】Cursor远程连接服务器卡死(Waiting for server log)故障排查全流程
排查发现:当前用户后台堆积了大量Cursor进程(包括CLI进程、终端集成进程),而其他用户的Cursor进程正常运行,说明故障是当前用户的进程堆积导致,与其他用户无关。本次排查中,目录权限为drwxrwxr-x,所属用户与当前用户一致,权限正常,排除权限导致的日志无法写入问题,确定故障为Cursor进程启动异常。多次重连导致进程堆积:每次连接卡死时,关闭窗口未彻底终止后台进程,反复重连后,旧进程残留,新进程无法正常启动,形成“堆积堵死”;」,输入服务器信息和密码;
2026-03-10 22:14:08
911
原创 【C++入门4】flexible_dual_grid.cpp 中的 C++ 语法速查
含义:定义结构体,可带成员函数。类似 Python 的 dataclass,但更底层。
2026-03-02 16:25:17
656
原创 【C++入门3】3D 基础实现总结(下)-边界几何/四边形/QEF求解
3D几何计算与QEF求解技术摘要 本文系统梳理了Flexible Dual Grid中的3D几何计算与QEF求解方法。主要内容包括:1) 线段几何处理,涉及方向向量计算、正交投影矩阵构建和DDA体素穿越算法;2) 四边形三角剖分优化策略;3) QEF求解技术,包含正则化项添加、边界约束优化(单轴、双轴和三轴约束)及误差评估;4) 体素网格拓扑关系管理。文章提供了完整的C++实现代码片段,可作为Dual Contouring和QEF相关算法的实用参考,特别适合需要处理复杂3D几何约束的图形学应用开发。
2026-03-02 15:31:07
832
原创 【C++入门2】3D 基础实现总结(上)-三角形和平面几何
本文梳理了3D几何计算在Dual Contouring/QEF算法中的关键实现,主要包括:1)基础线性插值工具;2)三角形几何计算(边向量、法线、平面方程);3)三角形与体素网格的相交测试方法(包围盒、投影法、扫描线填充);4)QEF相关计算(平面距离平方矩阵)。这些几何运算为网格处理提供了数学基础,支持从三角形网格生成对偶网格的完整流程。文章可作为3D几何算法实现的参考指南,特别适用于体素化、曲面重建等应用场景。
2026-03-02 15:26:50
652
原创 【3D-AICG 系列-15】Trellis 2 的 O-voxel Shape: Flexible Dual Grid 代码与论文对应
本文详细解析了Trellis 2中Flexible Dual Grid的C++实现代码。核心流程分为两步:首先通过三个函数(intersect_qef、face_qef、boundry_qef)收集网格与体素的相交约束信息,构建二次误差函数(QEF)矩阵;然后对每个活跃体素求解QEF,找到最优代表点(dual vertex)。输入为三角网格顶点和面片数据,输出包括活跃体素索引、每个体素内的代表点坐标以及相交方向标记。整个过程实现了从三角网格到稀疏体素表示的精确转换,为后续3D生成任务奠定基础。
2026-02-25 22:17:39
705
原创 【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
摘要:C++与Python的性能差异源于类型系统的不同实现方式。C++采用静态类型,编译器在编译时就能确定类型并直接生成机器码,CPU可直接执行。Python使用动态类型,运行时才确定类型,解释器需频繁查表选择实现,导致额外开销。CPU仅执行机器码,而类型系统决定了代码如何转换为机器指令——C++通过编译时优化生成高效指令,Python则依赖解释器动态处理,因此密集计算场景C++通常快一个数量级。这种差异解释了为何性能关键路径常用C++,而Python更适合胶水逻辑和快速开发。
2026-02-25 21:25:11
563
原创 【3D-AICG 系列-14】Trellis 2 的 Texturing Pipeline 保留单层薄壳,而 Textured GLB 会变成双层
摘要 本文分析了TRELLIS2系统两条纹理化路径的架构差异:Image-to-3D Pipeline通过to_glb()会生成双层闭合薄壳,而Texturing Pipeline保留原始单层结构。关键差异在于to_glb()中的remesh_narrow_band_dc算法使用无符号距离场(UDF)重建几何,必然产生内外两层等值面。Texturing Pipeline直接在输入mesh上操作,不改变拓扑。前者为优化渲染质量而牺牲几何准确性,后者则保持原始结构以满足仿真需求。文章通过代码流程对比揭示了这一工
2026-02-24 22:13:34
671
原创 【C++ debug】在 VS Code 中无 Attach 调试 Python 调用的 C++ 扩展
VS Code 中通过 gdb + launch.json 进行 debug 断点调试
2026-02-24 17:51:31
751
原创 【3D-AICG 系列-13】Trellis 2 的 SC-VAE 的 Training Loss 细节
本文是对Trellis v2形状VAE训练流程的代码解析,主要对应论文3.2.2节的VAE训练部分。文章详细梳理了论文符号与代码变量的对应关系,包括对偶顶点位置、面标志、剪枝掩码等关键要素。重点分析了第一阶段损失函数的五个组成部分:对偶顶点MSE损失(λv=0.01)、面标志BCE损失(λδ=0.1)、剪枝掩码BCE损失(λρ=0.1)、材质L1损失以及KL散度项,并提供了对应代码片段的具体实现说明。这些损失函数共同构成了形状VAE的训练目标,通过逐项对照论文公式与代码实现,揭示了Trellis v2在3D
2026-02-23 14:46:37
1579
原创 【3D-AICG 系列-12】Trellis 2 的 Shape VAE 的设计细节 Sparse Residual Autoencoding Layer
本文解析了Trellis2论文中3.2.1节Sparse Residual Autoencoding Layer的公式与代码对应关系。重点包括:1)下采样阶段通过SparseSpatial2Channel实现stack操作,将fine voxel坐标映射为coarse坐标;2)残差连接使用avg_groups对8C通道分组取平均;3)上采样阶段通过SparseChannel2Spatial实现unstack操作,还原feature维度。完整流程展示了主路径与shortcut相加的残差连接机制。
2026-02-23 14:30:00
700
原创 【3D-AICG 系列-11】Trellis 2 的 Shape VAE 训练流程梳理
本文梳理了3D AICG系列中Trellis v2的shape_vae_next_dc_f16c32模型训练全流程。主要内容包括: 数据预处理:通过dump_mesh.py和dual_grid.py将3D资产转换为标准mesh pickle和dual grid.vxz文件格式 数据加载:FlexiDualGridDataset读取预处理数据,包含mesh顶点/面片和dual grid顶点偏移两个关键部分 训练流程:ShapeVaeTrainer通过编码器-解码器结构处理数据,编码器将输入下采样到32通道潜在
2026-02-23 14:23:09
870
原创 【3D-AICG 系列-10】Trellis v2 只在 512/1024上训却能生成 1536
Flow model 是分辨率无关的:处理稀疏 token,不直接依赖空间分辨率。Resolution 主要影响后处理:坐标量化、decoder 网格大小、最终体素粒度。实际限制:token 数量。如果 1536 导致 token 过多,会自动降分辨率(最低 1024)。因此,用 512/1024 训练的 flow model 可以生成 1536 的模型,因为 flow model 本身不依赖分辨率,resolution 主要控制后处理的网格粒度。
2026-02-10 16:22:01
731
原创 【3D AICG 系列-9】Trellis2 推理流程图超详细介绍
本文详细解析了Trellis 2的两种3D生成流程:图像到3D生成(Image-to-3D)和纹理生成(Texturing)。Image-to-3D流程包含6个关键步骤:图像预处理、特征提取、稀疏结构采样、形状采样、纹理采样和解码为带纹理的Mesh,支持512/1024单阶段和1024/1536级联生成模式。
2026-02-08 22:09:03
1211
原创 【3D AICG 系列-8】PartUV 流程图详解
本文介绍了PartUV系统的详细流程,该系统用于3D网格的部件级UV展开。系统采用分层处理架构,包含预处理层(Python)、核心展开层(C++)、打包层(Python)和输出层。核心展开过程采用递归算法,通过多种展开方法评估失真,并根据阈值决定是否继续分割。系统还实现了部件边界平滑、合并展开等优化算法,支持并行处理以提高效率。最终输出带UV坐标的3D网格,可用于后续纹理映射等应用。
2026-02-08 21:56:55
783
原创 【3D AICG 系列-7】PartUV 代码流程深度解析
本文介绍了PartUV系统,这是一个基于部件层次的3D网格UV展开解决方案。该系统通过三个核心层次实现:Python接口层、C++核心算法层和UV打包层。关键流程包括预处理阶段(网格修复和部件树生成)、递归UV展开阶段(采用多种展开方法并评估
2026-02-08 21:44:09
651
原创 【3D AICG 系列-6】OmniPart 训练流程梳理
本文详细解析了OmniPart训练代码的技术实现,重点介绍了基于Flow Matching的part-aware 3D生成模型训练流程。文章分为两个主要阶段:稀疏结构流学习(Stage 1)和结构化潜在流学习(Stage 2)。
2026-02-07 23:35:05
784
原创 【RoPE】Flux 中的 Image Tokenization
内容:每个空间位置的特征向量,通过重组原始潜在表示获得作用:包含图像的语义和视觉信息,用于模型的条件生成image_ids内容:每个空间位置的坐标信息(0, 行, 列)作用:帮助模型定位和组织特征,维持空间结构信息这两个组件共同工作,使模型能够理解和处理图像的潜在表示,同时保持空间结构信息,这对于图像生成和编辑任务至关重要。
2026-02-07 23:33:39
624
原创 【3D-AICG 系列-5】Trellis 2 的 Pipeline 推理流程的各个中间结果和形状
本文解析了Trellis2 Pipeline输出的关键信息,包括稀疏结构、形状/纹理SLAT表示及其解码过程。稀疏结构使用64×64×64体素网格,仅存储2671个非空体素坐标。Shape和Texture SLAT分别包含2671个32维特征token,对应相同空间位置。
2026-02-06 11:05:10
699
原创 【3D-AICG 系列-4】Trellis 2 的Shape SLAT Flow Matching DiT 训练流程
本文梳理了Trellis.2中Shape SLAT Flow的训练流程,从配置入口到loss计算的全链路分析。主要包括:1) 入口文件train.py初始化数据集、模型和训练器;2) Trainer创建DataLoader但暂不读取数据;3) 训练时触发npz/png/json文件读取;4) 核心的Flow Matching损失计算过程,涉及噪声采样、扩散过程、DINOv3特征提取和MSE损失。通过调用链路+数据结构+配置对照的方式,帮助定位数据格式、显存和loss异常问题。
2026-02-06 10:00:36
723
原创 【3D-AICG 系列-3】Trellis 2 的O-voxel (下) Material: Volumetric Surface Attributes
本文详细解析了Trellis 2中O-voxel的材质转换过程,实现了PBR材质到体素化属性的双向转换。文章分为编码(PBR→O-voxel)和解码(O-voxel→PBR)两部分,重点介绍了体素采样、表面投影和纹理映射等关键技术。
2026-02-05 12:01:50
846
原创 【3D-AICG 系列-2】Trellis 2 的O-voxel (上) Shape: Flexible Dual Grid
本文详细解析了Trellis 2中Flexible Dual Grid实现Mesh与O-Voxel双向转换的技术方案。编码过程(Mesh→O-Voxel)包含三个关键步骤:1)通过三向扫描线填充构建网格,2)收集Hermite数据(边相交标记、交点均值和QEF矩阵),3)通过最小化二次误差函数求解最优对偶顶点位置。
2026-02-05 10:55:35
825
原创 【3D-AICG 系列-1】Trellis v1 和 Trellis v2 的区别和改进
本文对比分析了微软TRELLIS 3D生成模型的v1与v2版本架构差异。v1采用统一8维SLat表示同时编码几何和纹理,而v2将形状与纹理分离建模,分别使用32维latent。
2026-02-05 10:11:05
1863
原创 【3DV 进阶-12】Trellis.2 数据处理脚本细节
提取的是纯几何信息(三角化白模),用于后续的形状处理和体素化,保存为 .pickle 文件,包含vertices 和 faces数组提取的是完整 PBR 材质信息(带贴图的彩色模型),用于后续的纹理体素化。(耗时比较久):基础颜色:金属度:粗糙度:透明度alphaMode:透明模式(OPAQUE/BLEND/MASK)保存为.pickle文件,包含materials和objects字典。
2026-02-04 20:53:37
869
原创 【Tmux】从进程PID追溯到tmux窗口的完整排查流程
进程-TTY关联:Linux中每个前台进程(包括tmux启动的进程)都会绑定伪终端(pts/x),这是定位的核心桥梁;SID与tmux会话:tmux会话是一个独立的终端会话,其主进程会作为该会话下所有进程的SID;tmux会话-窗口-pts映射:tmux的每个窗口对应一个唯一的伪终端,通过遍历匹配pts即可定位目标窗口。
2025-12-15 13:58:01
547
原创 【3DV 进阶-10】Trellis 中的表示 SLat 理解
SLAT 是一种统一的3D latent表示,专为高质量、多格式3D生成设计。其核心思想是:在稀疏3D网格上定义局部 latent 向量,通过融合强大视觉基础模型提取的多视角特征,同时编码3D资产的几何结构(geometry)和纹理外观(texture),并支持解码为多种3D格式(如3D Gaussians、Radiance Fields、网格meshes)。
2025-12-07 12:46:23
848
原创 【3DV 进阶-9】Hunyuan3D2.1 中的 MoE
专家(Experts):多个专门处理特定类型任务的神经网络门控网络(Gate):决定每个输入应该使用哪些专家的智能路由系统稀疏激活(Sparse Activation):虽然有很多专家,但每次只激活部分专家,保持计算效率串联(错误理解)Token → Expert 1 → Expert 2 → Expert 3 → ... → 输出问题:所有专家都要参与,计算成本 = 8 倍问题:无法实现稀疏激活并联(正确实现)
2025-12-06 10:30:33
1134
原创 【Pytorch 深入理解(3)】训练时的 GPU 显存占用三大头-模型参数、优化器状态与激活值
模型参数是神经网络中可学习的权重和偏置,是模型存储"知识"的地方。优化器状态是优化器为了更新参数而保存的辅助信息,是优化算法的"记忆"。激活值是神经网络前向传播时每层的输出,是计算的"中间结果"。模型参数:模型的"大脑"固定大小,不随 batch size 变化通常占显存的 20-30%优化方法:量化、剪枝、参数共享优化器状态:训练的"记忆"固定大小,是参数的 2-3 倍(Adam)通常占显存的 40-60%优化方法:8-bit 优化器、使用 SGD、ZeRO激活值:计算的"中间结果"
2025-12-06 10:01:01
1003
原创 【Pytorch 深入理解(2)】减少训练显存-Gradient Checkpointing
检查点(Checkpoint):只保存关键位置的激活值丢弃中间值:非检查点的激活值被丢弃,释放显存重新计算:反向传播时,从检查点重新计算需要的激活值创建一个包装函数,将模块的前向传播逻辑封装起来PyTorch 的checkpoint需要这个函数来知道如何重新计算检查点通常设置为每 4-6 层一个检查点数量约为总层数的 1/4 到 1/6加上重新计算的开销,总显存节省约为 50-60%这就是为什么你观察到"节省了将近一半的 GPU memory"。
2025-12-01 15:43:25
1313
原创 【系统资源监控-1】Blender批量渲染中的负载、CPU、GPU和进程管理
系统负载(Load Average)是Linux/Unix系统中一个重要的性能指标,表示等待CPU资源的进程数量(包括正在运行和等待运行的进程)。CPU使用率表示当前时刻CPU实际工作的百分比,反映CPU的忙碌程度。GPU使用率表示GPU计算单元的使用百分比,反映GPU的忙碌程度。进程是正在运行的程序实例,每个进程都有独立的资源空间。系统负载 vs CPU使用率负载包括等待I/O的进程负载高不一定意味着CPU使用率高需要结合CPU核心数判断负载是否正常GPU vs CPU。
2025-12-01 14:36:10
900
原创 【代码规范1】深度学习框架中的动态配置加载技术:从YAML到Python类的优雅映射
动态配置加载技术为深度学习框架提供了强大的灵活性,通过字符串路径实现配置与代码的解耦,是现代深度学习项目架构设计的重要模式。这种技术不仅提高了代码的可维护性和扩展性,还为插件化架构和模块化设计提供了坚实的基础。在实际应用中,我们需要权衡灵活性与性能,合理使用缓存机制,并做好错误处理,才能充分发挥这种技术的优势。本文基于Hunyuan3D项目的实际代码分析,展示了动态配置加载技术在深度学习框架中的具体应用。
2025-11-29 22:47:21
637
原创 【ModelScope-1】数据集稀疏检出(Sparse Checkout)来下载指定目录
稀疏检出(Sparse Checkout)是 Git 的功能,允许只检出仓库中的指定目录或文件,而不是整个仓库。对于大型数据集,这能显著减少下载时间和存储占用。使用克隆仓库使用初始化使用指定要下载的目录验证下载结果这种方法可以显著减少下载时间和存储空间,适合只需要部分数据集的场景。注意事项确保有足够的磁盘空间妥善保管 OAuth token大型数据集下载可能需要数小时,建议使用screen或tmux保持会话参考资源Git Sparse Checkout 官方文档。
2025-11-29 22:45:58
1359
原创 【PyTorch Lightning (3)】训练时推理 vs 传统 Checkpoint 推理:深入理解两种推理模式
PyTorch Lightning 的训练时推理功能为训练过程监控提供了强大的支持。实时监控模型性能无需额外的文件 I/O 操作使用最新的模型权重(包括 EMA)在训练循环中无缝集成推理逻辑模型部署和生产环境独立的评估任务跨训练会话的模型使用理解这两种模式的区别,有助于我们在不同的场景中选择最合适的推理方式,提高开发效率和模型性能。
2025-11-16 02:05:42
767
原创 【3DV 进阶-8】Hunyuan3D2.1 数据预处理详解- 水密化和采样 watertight and sample
摘要:本文详细解析了Hunyuan3D2.1预处理流程,包括水密化重建与多模态数据采样。首先对输入模型进行归一化处理,然后通过SDF计算和Marching Cubes实现水密化重建。接着进行表面点采样,包含均匀采样和锐边采样两种策略。最后通过近场/体积采样生成SDF数据,保存为多模态监督数据。整个流程为3D生成模型提供了规范化、高质量的训练数据。
2025-11-12 21:06:04
1003
原创 【3DV 进阶-7】Hunyuan3D2.1-ShapeVAE 整体流程
【代码】【3DV 进阶-7】Hunyuan3D2.1-ShapeVAE 整体流程。
2025-11-12 17:01:50
497
原创 【3DV 进阶-5】3D生成中 Inductive Bias (归纳偏置)的技术路线图
对抗“scaling瓶颈”:无需依赖海量数据和超大模型,小模型也能生成“懂规则”的3D物体;从“形似”到“神似”:让生成的3D模型不仅外观像,更具备物理合理性、功能可用性,真正贴近真实世界的3D规律。这份路线图覆盖了文本中“几何、物理、拓扑、功能”四大维度,也整合了“网络设计+损失函数”的技术路径,希望能帮你清晰把握3D生成中归纳偏置的技术脉络~
2025-11-02 19:43:49
994
CLIP 模型从 .pt 到 .onnx 的 python 转化代码
2024-05-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅