point transformer v3结构

VIPpoint transformer v3结构
分割结构:embedding->enc->decembedding->enc0->enc1->enc2->enc3->enc4->dec3->dec2->dec1->dec0embedding->block0->block1->dow->block0->block1->dow->block0->block1->dow->block0->block1-&gt
开通可读全文 ·575 人阅读
最低0.47元/天 解锁文章

在这里插入图片描述

分割结构:

embedding->enc->dec
embedding->enc0->enc1->enc2->enc3->enc4->dec3->dec2->dec1->dec0
embedding
->block0->block1
->dow->block0->block1
->dow->block0->block1
->dow->block0->block1->block2->block3->block4->block5
->dow->block0->block1
->up->block0->block1
->up->block0->block1
->up->block0->block1
->up->block0->block1
embedding:SubMConv3d->BatchNorm1d->GELU
SubMConv3d:输入为上一步sparsify()生成的sparse_conv_feat,它由feat[108413, 6]和grid_coord[108413, 3]变化而来。
            经过这一步,feat变成[108413, 32]。
            feat中存着法向量和颜色,grid是体素化后的坐标。
BatchNorm1d:输入feat。更新了feat和sparse_conv_feat。
GELU:输入feat。更新了feat和sparse_conv_feat。
block:cpe->norm1->attn->norm2->mlp

cpe:SubMConv3d->Liner->LayerNorm
SubMConv3d:输入为sparse_conv_feat[108413, 32],更新feat和sparse_conv_feat[108413, 32]。
Liner:输入为sparse_conv_feat[108413, 32],更新feat和sparse_conv_feat[108413, 32]。
LayerNorm:输入为sparse_conv_feat[108413, 32],更新feat和sparse_conv_feat[108413, 32]。
DefaultSegmentorV2(
  (seg_head): Linear(in_features=64, out_features=13, bias=True)
  (backbone): PointTransformerV3(
    (embedding): Embedding(
      (stem): PointSequential(
        (conv): SubMConv3d(6, 32, kernel_size=[5, 5, 5], stride=[1, 1, 1], padding=[1, 1, 1], dilation=[1, 1, 1], output_padding=[0, 0, 0], bias=False, algo=ConvAlgo.Native)
        (norm): BatchNorm1d(32, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
        (act): GELU(approximate='none')
      )
    )
    (enc): PointSequential(
      (enc0): PointSequential(
        (block0): Block(
          (cpe): PointSequential(
            (0): SubMConv3d(32, 32, kernel_size=[3, 3, 3], stride=[1, 1, 1], padding=[0, 0, 0], dilation=[1, 1, 1], output_padding=[0, 0, 0], algo=ConvAlgo.MaskImplicitGemm)
            (1): Linear(in_features=32, out_features=32, bias=True)
            (2): LayerNorm((32,), eps=1e-05, elementwise_affine=True)
          )
          (norm1): PointSequential(
            (0): LayerNorm((32,), eps=1e-05, elementwise_affine=True)
          )
          (attn): SerializedAttention(
            (attn_drop): Dropout(p=0.0, inplace=False)
            (qkv): Linear(in_features=32, out_features=96, bias=True)
            (proj): Linear(in_features=32, out_features=32, bias=True)
            (proj_drop): Dropout(p=0.0, inplace=False)
            (softmax): Softmax(dim=-1)
            (rpe): RPE()
          )
          (norm2): PointSequential(
            (0): LayerNorm((32,), eps=1e-05, elementwise_affine=True)
          )
          (mlp): PointSequential(
            (0): MLP(
              (fc1): Linear(in_features=32, out_features=128, bias=True)
              (act): GELU(approximate='none')
              (fc2): Linear(in_features=128, out_features=32, bias=True)
              (drop): Dropout(p=0.0, inplace=False)
            )
          )
          (drop_path): PointSequential(
            (0): Identity()
          )
        )
        (block1): Block(
          (cpe): PointSequential(
            (0): SubMConv3d(32, 32, kernel_size=[3, 3, 3], stride=[1, 1, 1], padding=[0, 0, 0], dilation=[1, 1, 1], output_padding=[0, 0, 0], algo=ConvAlgo.MaskImplicitGemm)
            (1): Linear(in_features=32, out_features=32, bias=True)
            (2): LayerNorm((32,), eps=1e-05, elementwise_affine=True)
          )
          (norm1): PointSequential(
            (0): LayerNorm((32,), eps=1e-05, elementwise_affine=True)
          )
          (attn): SerializedAttention(
            (attn_drop): Dropout(p=0.0, inplace=False)
            (qkv): Linear(in_features=32, out_features=96, bias=True)
            (proj): Linear(in_features=32, out_features=32, bias=True)
            (proj_drop): Dropout(p=0.0, inplace=False)
            (softmax): Softmax(dim=-1)
            (rpe): RPE()
          )
          (norm2): PointSequential(
            (0): LayerNorm((32,), eps=1e-05, elementwise_affine=True)
          )
          (mlp): PointSequential(
            (0): MLP(
              (fc1): Linear(in_features=32, out_features=128, bias=True)
              (act): GELU(approximate='none')
              (fc2): Linear(in_features=128, out_features=32, bias=True)
              (drop): Dropout(p=0.0, inplace=False)
            )
          )
          (drop_path): PointSequential(
            (0): DropPath(drop_prob=0.023)
          )
        )
      )
      (enc1): PointSequential(
        (down): SerializedPooling(
          (proj): Linear(in_features=32, out_features=64, bias=True)
          (norm): PointSequential(
            (0): BatchNorm1d(64, eps=0.001, momentum=0.01, affine=True, track_running_stats=True)
          )
          (act): PointSequential(
            (0): GELU(approximate='none')
          )
        )
        (block0): Block(
          (cpe): PointSequential(
            (0): SubMConv3d(64, 64, kernel_size=[3, 3, 3], stride=[1, 1, 1], padding=[0, 0, 0], dilation=[1, 1, 1], output_padding=[0, 0, 0], algo=ConvAlgo.MaskImplicitGemm)
            (1): Linear(in_features=64, out_features=64, bias=True)
            (2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)
          )
          (norm1): PointSequential(
            (0): LayerNorm((64,), eps=1e-05, elementwise_affine=True)
          )
          (attn): SerializedAttention(
            (attn_drop): Dropout(p=0.0, inplace=False)
            (qkv): Linear(in_features=64, out_features=192, bias=True)
            (proj): Linear(in_features=64, out_features=64, bias=True)
            (proj_drop): Dropout(p=0.0, inplace=False)
            (softmax): Softmax(dim=-1)
            (rpe): RPE()
          )
          (norm2): PointSequential(
            (0): LayerNorm((64,), eps=1e-05, elementwise_affine=True)
          )
          (mlp): PointSequential(
            (0): MLP(
              (fc1): Linear(in_features=64, out_features=256, bias=True)
              (act): GELU(approximate='none')
              (fc2): Linear(in_features=256, out_features=64, bias=True)
              (drop): Dropout(p=0.0, inplace=False)
            )
          )
          (drop_path): PointSequential(
            (0): DropPath(drop_prob=0.046)
          )
        )
        (block1): Block(
          (cpe): PointSequential(
            (0): SubMConv3d(64, 64, kernel_size=[3, 3, 3], stride=[1, 1, 1], padding=[0, 0, 0], dilation=[1, 1, 1], output_padding=[0, 0, 0], algo=ConvAlgo.MaskImplicitGemm)
            (1): Linear(in_features=64, out_features=64, bias=True)
            (2): LayerNorm((64,), eps=1e-05, elementwise_affine=True)
          )
          (norm1): PointSequential(
            (0): LayerNorm((64,), eps=1e-05, elementwise_affine=True)
          )
          (attn): SerializedAttention(
            (attn_drop): Dropout(p=0.0, inplace=False)
            (qkv): Linear(in_features=64, out_features=192, bias=True)
            (proj): Linear(in_features=64, out_features=64, bias=True)
            (proj_drop): Dropout(p=0.0, inplace=False)
            (softmax): Softmax(dim=-1)
            (rpe): RPE()
          )
          (norm2): PointSequential(
            (0): LayerNorm((64,), eps=1e-05, elementwise_affine=True)
          )
          (mlp): PointSequential(
            (0): MLP(
              (fc1): Linear(in_features=64, out_features=256, bias=True)
              (act): GELU(approximate='none')
              (fc2): Linear(in_features=256, out_features=64, bias=True)
              (drop): Dropout(p=0.0, inplace=False)
            )
          )
          (drop_path)
使用Everything清理垃圾文件的实战方案(持续更新) 本文主要介绍了使用Everything清理垃圾文件的实战方案,希望能对同学们有所帮助。 文章目录 1. Everything工作原理简述 2. Everything实战清理垃圾文件 2.1 清理应用无用文件 2.2 清理无用但遗忘的文件 2.3 使用Python代码自动化删除重复文件 2.2w 阅读·14 点赞·17 收藏 阅读详情

相关推荐

ArcGIS-裁剪遥感影像及dem图像

6、选择【工具箱】-【数据管理工具】-【栅格】-【裁剪】。在【输入栅格】里选择要裁剪的dem,在【输出范围】里选择刚创建的裁剪范围。选择一个输出路径,其他参数保存默认。2、起一个名称,要素类型选择【面】。点击【编辑】选择与要裁剪的dem一致的地理坐标系。1、创建需要裁剪区域的面层shp,右击选择【新建】-【shapefile】3、点击编辑器,选择开始编辑。4、选择【裁剪范围】,点击确定。5、画出想要裁剪的范围并保存。

siwenaiyou的博客 1万+

Ubuntu桌面消失?可能是lightdm配置在捣鬼:详细解析/etc/lightdm.conf的优先级机制与实战修复

本文详细解析了Ubuntu系统因lightdm显示管理器配置错误导致桌面消失的问题。通过分析/etc/lightdm.conf的优先级加载机制,提供了从systemctl诊断、调试模式运行到实战修复配置语法错误(如缺失[Seat:*]组)的完整方案。文章还探讨了在系统无法启动时使用chroot或恢复模式进行高级救援,并对比了lightdm与gdm3在NVIDIA驱动环境下的不同表现,帮助用户高效恢复图形界面。

weixin_29313547的博客 411

NVIDIA DGX Spark实战:如何在桌面上轻松运行200B参数大模型(附配置教程)

本文提供了NVIDIA DGX Spark在桌面端运行200B参数大模型的完整实战指南。详细介绍了从硬件初始化、系统配置、容器化环境搭建,到模型加载、量化、推理流水线编写及性能调优的全过程。重点阐述了如何利用其统一内存架构和TensorRT-LLM等工具进行高效本地推理,并探讨了通过双机互联扩展以应对超大规模模型的方法。

i3j4k5的博客 771

2025数学建模国赛A题1-4问详解(论文+完整代码)

本文介绍了数学建模国赛A题的解题思路,重点分析了三维遮蔽模型的建立和运动学代码实现。相比第一题,第二题增加了未知参数求解,需要采用遗传算法等非线性优化方法。文章强调该模型由专业团队原创开发,代码可运行,并提醒参赛者警惕市场上的保奖班现象。整体内容聚焦于竞赛解题技巧和原创性保证。

Eloveeeee的博客 2782

杰理 JL701N/JL703N USB MIDI 使用教程

摘要:本教程介绍如何在杰理JL701N/JL703N音箱的可视化SDK中配置USB MIDI功能。主要步骤包括:1)启用PC模式;2)修改SDK宏定义启用USB MIDI;3)实现MIDI数据接收处理逻辑;4)调用接口发送MIDI数据;5)使用MIDI-OX测试功能。针对低版本SDK可能出现的设备识别问题,提供了在midi.c文件中添加特定代码行的解决方案。使用前需确保SDK版本达标,并注意备份原始文件。

qq_42014563的博客 1252

YOLO11全网首发优化:卷积魔改创新 | AAAI 2025 | 一种新颖的风车形卷积(PConv)符合微弱小目标的像素高斯空间分布,增强特征提取,显著增加接受野

我们提出了一种新颖的风车形卷积(PConv)作为骨干网络下层标准卷积的替代品。PConv能更好地符合微弱小目标的像素高斯空间分布,增强特征提取,显著增加接受野,且只引入最小的参数增加。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1966

LVGL 组件对齐方式说明

本文说明 LVGL(以 v8 为例)中常用的 lv_align_t对齐选项的含义与用法,对应界面设计工具里下拉列表中的以及等命名。

摸鱼专家 125

Mamba SSM 实战:IMDb 文本分类 + Mamba-ssm 全流程

Mamba SSM 文本分类链路:IMDb 二分类 → MambaLMHeadModel (d_model=256, n_layer=8, d_state=16, exp2=2) → 末 token 分类头。5 epoch 达 89.2% 准确率 (与 BERT-base 持平), 但显存降低 44% (3.5GB vs 6.2GB)。建议序列长度 ≥ 1024 再选 Mamba, 短序列 (< 512) 用 BERT 更高效。扩展时注意d_state。

m0_71589036的博客 54

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: pointcept环境搭建
下一篇: AnomalyGPT: Detecting Industrial Anomalies Using Large Vision-Language Models翻译

双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —
weixin_45625419
博客等级 码龄7年 73粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值