point transformer pytorch
0.1.5
การใช้งานเลเยอร์การเอาใจใส่ตนเองของ Point Transformer ใน Pytorch วงจรอย่างง่ายข้างต้นดูเหมือนจะช่วยให้กลุ่มของพวกเขามีประสิทธิภาพเหนือกว่าวิธีการก่อนหน้านี้ทั้งหมดในการจำแนกและแบ่งกลุ่มพอยต์คลาวด์
$ pip install point-transformer-pytorch
import torch
from point_transformer_pytorch import PointTransformerLayer
attn = PointTransformerLayer (
dim = 128 ,
pos_mlp_hidden_dim = 64 ,
attn_mlp_hidden_mult = 4
)
feats = torch . randn ( 1 , 16 , 128 )
pos = torch . randn ( 1 , 16 , 3 )
mask = torch . ones ( 1 , 16 ). bool ()
attn ( feats , pos , mask = mask ) # (1, 16, 128)
ความสนใจของเวกเตอร์ประเภทนี้มีราคาแพงกว่าความสนใจแบบเดิมมาก ในรายงาน พวกเขาใช้เพื่อนบ้านที่ใกล้ที่สุด k ในจุดต่างๆ เพื่อแยกความสนใจในจุดที่ห่างไกลออกไป คุณสามารถทำเช่นเดียวกันได้ด้วยการตั้งค่าพิเศษเพียงครั้งเดียว
import torch
from point_transformer_pytorch import PointTransformerLayer
attn = PointTransformerLayer (
dim = 128 ,
pos_mlp_hidden_dim = 64 ,
attn_mlp_hidden_mult = 4 ,
num_neighbors = 16 # only the 16 nearest neighbors would be attended to for each point
)
feats = torch . randn ( 1 , 2048 , 128 )
pos = torch . randn ( 1 , 2048 , 3 )
mask = torch . ones ( 1 , 2048 ). bool ()
attn ( feats , pos , mask = mask ) # (1, 16, 128)
@misc { zhao2020point ,
title = { Point Transformer } ,
author = { Hengshuang Zhao and Li Jiang and Jiaya Jia and Philip Torr and Vladlen Koltun } ,
year = { 2020 } ,
eprint = { 2012.09164 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CV }
}