update
This commit is contained in:
parent
5fb50b9eda
commit
4a38583069
|
@ -1,5 +1,2 @@
|
|||
from __future__ import absolute_import
|
||||
from .curvenet_seg import CurveNet
|
||||
from .pointMLP31 import model31G, model31J, model31K, model31D, model31A
|
||||
from .pointMLP32 import model32A, model32B, model32C, model32D, model32E, model32F, model32G
|
||||
from .pointMLP33 import model33A, model33B, model33C, model33D, model33E, model33F, model33G
|
||||
from .pointMLP import pointMLP
|
||||
|
|
|
@ -1,13 +1,3 @@
|
|||
"""
|
||||
Based on PointMLP9, change to 128, 256, 512, 512
|
||||
Based on PointMLP4, use fps replace random sample.
|
||||
Based on PointMLP3, change dropout to 0.1
|
||||
Based on PointMLP2, add blocks in decode, change channel numbers.
|
||||
Based on PointMLP1, using poseExtraction to replace MLP in decode.
|
||||
PointsformerE2, 1)change relu to GELU, 2) change backbone to model24.
|
||||
"""
|
||||
|
||||
|
||||
|
||||
import torch
|
||||
import torch.nn as nn
|
||||
|
@ -337,14 +327,14 @@ class PointNetFeaturePropagation(nn.Module):
|
|||
|
||||
|
||||
|
||||
class PointMLP31(nn.Module):
|
||||
class PointMLP(nn.Module):
|
||||
def __init__(self, num_classes=50,points=2048, embed_dim=64, groups=1, res_expansion=1.0,
|
||||
activation="relu", bias=True, use_xyz=True, normalize="anchor",
|
||||
dim_expansion=[2, 2, 2, 2], pre_blocks=[2, 2, 2, 2], pos_blocks=[2, 2, 2, 2],
|
||||
k_neighbors=[32, 32, 32, 32], reducers=[4, 4, 4, 4],
|
||||
de_dims=[512, 256, 128, 128], de_blocks=[2,2,2,2],
|
||||
gmp_dim=64,cls_dim=64, **kwargs):
|
||||
super(PointMLP31, self).__init__()
|
||||
super(PointMLP, self).__init__()
|
||||
self.stages = len(pre_blocks)
|
||||
self.class_num = num_classes
|
||||
self.points = points
|
||||
|
@ -455,143 +445,20 @@ class PointMLP31(nn.Module):
|
|||
return x
|
||||
|
||||
|
||||
def model31A(num_classes=50, **kwargs) -> PointMLP31:
|
||||
return PointMLP31(num_classes=num_classes, points=2048, embed_dim=64, groups=1, res_expansion=1.0,
|
||||
activation="relu", bias=True, use_xyz=False, normalize="anchor",
|
||||
dim_expansion=[2, 2, 2, 2], pre_blocks=[2, 2, 2, 2], pos_blocks=[2, 2, 2, 2],
|
||||
k_neighbors=[32, 32, 32, 32], reducers=[4, 4, 4, 4],
|
||||
de_dims=[512, 256, 128, 128], de_blocks=[4,4,4,4],
|
||||
gmp_dim=64,cls_dim=64, **kwargs)
|
||||
|
||||
|
||||
def model31B(num_classes=50, **kwargs) -> PointMLP31:
|
||||
return PointMLP31(num_classes=num_classes,points=2048, embed_dim=64, groups=1, res_expansion=1.0,
|
||||
activation="relu", bias=True, use_xyz=False, normalize="anchor",
|
||||
dim_expansion=[2, 2, 2, 2], pre_blocks=[3, 3, 3, 3], pos_blocks=[3, 3, 3, 3],
|
||||
k_neighbors=[32, 32, 32, 32], reducers=[4, 4, 4, 4],
|
||||
de_dims=[512, 256, 128, 128], de_blocks=[3, 3, 3, 3],
|
||||
gmp_dim=64,cls_dim=64, **kwargs)
|
||||
|
||||
def model31C(num_classes=50, **kwargs) -> PointMLP31:
|
||||
return PointMLP31(num_classes=num_classes,points=2048, embed_dim=64, groups=1, res_expansion=1.0,
|
||||
activation="relu", bias=True, use_xyz=False, normalize="anchor",
|
||||
dim_expansion=[2, 2, 2, 2], pre_blocks=[2, 2, 2, 2], pos_blocks=[2, 2, 2, 2],
|
||||
k_neighbors=[24, 24, 24, 24], reducers=[4, 4, 4, 4],
|
||||
de_dims=[512, 256, 128, 128], de_blocks=[3, 3, 3, 3],
|
||||
gmp_dim=64,cls_dim=64, **kwargs)
|
||||
|
||||
|
||||
|
||||
def model31D(num_classes=50, **kwargs) -> PointMLP31:
|
||||
return PointMLP31(num_classes=num_classes, points=2048, embed_dim=32, groups=1, res_expansion=1.0,
|
||||
activation="relu", bias=True, use_xyz=False, normalize="anchor",
|
||||
dim_expansion=[2, 2, 2, 2], pre_blocks=[2, 2, 2, 2], pos_blocks=[2, 2, 2, 2],
|
||||
k_neighbors=[32, 32, 32, 32], reducers=[4, 4, 4, 4],
|
||||
de_dims=[512, 256, 128, 128], de_blocks=[4,4,4,4],
|
||||
gmp_dim=64,cls_dim=64, **kwargs)
|
||||
|
||||
|
||||
def model31E(num_classes=50, **kwargs) -> PointMLP31:
|
||||
return PointMLP31(num_classes=num_classes, points=2048, embed_dim=64, groups=1, res_expansion=1.0,
|
||||
activation="relu", bias=True, use_xyz=False, normalize="anchor",
|
||||
dim_expansion=[2, 2, 2, 2], pre_blocks=[4, 4, 4, 4], pos_blocks=[4, 4, 4, 4],
|
||||
k_neighbors=[32, 32, 32, 32], reducers=[4, 4, 4, 4],
|
||||
de_dims=[512, 256, 128, 128], de_blocks=[6,6,6,6],
|
||||
gmp_dim=64,cls_dim=64, **kwargs)
|
||||
|
||||
def model31F(num_classes=50, **kwargs) -> PointMLP31:
|
||||
return PointMLP31(num_classes=num_classes, points=2048, embed_dim=64, groups=1, res_expansion=1.0,
|
||||
activation="relu", bias=True, use_xyz=False, normalize="anchor",
|
||||
dim_expansion=[2, 2, 2, 2], pre_blocks=[2, 2, 2, 2], pos_blocks=[2, 2, 2, 2],
|
||||
k_neighbors=[32, 32, 32, 32], reducers=[4, 2, 4, 2],
|
||||
de_dims=[512, 256, 128, 128], de_blocks=[4,4,4,4],
|
||||
gmp_dim=64,cls_dim=64, **kwargs)
|
||||
|
||||
def model31G(num_classes=50, **kwargs) -> PointMLP31:
|
||||
return PointMLP31(num_classes=num_classes, points=2048, embed_dim=64, groups=1, res_expansion=1.0,
|
||||
def pointMLP(num_classes=50, **kwargs) -> PointMLP:
|
||||
return PointMLP(num_classes=num_classes, points=2048, embed_dim=64, groups=1, res_expansion=1.0,
|
||||
activation="relu", bias=True, use_xyz=True, normalize="anchor",
|
||||
dim_expansion=[2, 2, 2, 2], pre_blocks=[2, 2, 2, 2], pos_blocks=[2, 2, 2, 2],
|
||||
k_neighbors=[32, 32, 32, 32], reducers=[4, 4, 4, 4],
|
||||
de_dims=[512, 256, 128, 128], de_blocks=[4,4,4,4],
|
||||
gmp_dim=64,cls_dim=64, **kwargs)
|
||||
|
||||
def model31G1(num_classes=50, **kwargs) -> PointMLP31:
|
||||
return PointMLP31(num_classes=num_classes, points=2048, embed_dim=64, groups=1, res_expansion=1.0,
|
||||
activation="leakyrelu0.2", bias=True, use_xyz=True, normalize="anchor",
|
||||
dim_expansion=[2, 2, 2, 2], pre_blocks=[2, 2, 2, 2], pos_blocks=[2, 2, 2, 2],
|
||||
k_neighbors=[32, 32, 32, 32], reducers=[4, 4, 4, 4],
|
||||
de_dims=[512, 256, 128, 128], de_blocks=[4,4,4,4],
|
||||
gmp_dim=64,cls_dim=64, **kwargs)
|
||||
|
||||
def model31G2(num_classes=50, **kwargs) -> PointMLP31:
|
||||
return PointMLP31(num_classes=num_classes, points=2048, embed_dim=64, groups=1, res_expansion=1.0,
|
||||
activation="leakyrelu", bias=True, use_xyz=True, normalize="anchor",
|
||||
dim_expansion=[2, 2, 2, 2], pre_blocks=[2, 2, 2, 2], pos_blocks=[2, 2, 2, 2],
|
||||
k_neighbors=[32, 32, 32, 32], reducers=[4, 4, 4, 4],
|
||||
de_dims=[512, 256, 128, 128], de_blocks=[4,4,4,4],
|
||||
gmp_dim=64,cls_dim=64, **kwargs)
|
||||
|
||||
def model31G3(num_classes=50, **kwargs) -> PointMLP31:
|
||||
return PointMLP31(num_classes=num_classes, points=2048, embed_dim=64, groups=1, res_expansion=1.0,
|
||||
activation="gelu", bias=True, use_xyz=True, normalize="anchor",
|
||||
dim_expansion=[2, 2, 2, 2], pre_blocks=[2, 2, 2, 2], pos_blocks=[2, 2, 2, 2],
|
||||
k_neighbors=[32, 32, 32, 32], reducers=[4, 4, 4, 4],
|
||||
de_dims=[512, 256, 128, 128], de_blocks=[4,4,4,4],
|
||||
gmp_dim=64,cls_dim=64, **kwargs)
|
||||
|
||||
def model31H(num_classes=50, **kwargs) -> PointMLP31:
|
||||
return PointMLP31(num_classes=num_classes, points=2048, embed_dim=64, groups=1, res_expansion=1.0,
|
||||
activation="gelu", bias=True, use_xyz=True, normalize="anchor",
|
||||
dim_expansion=[2, 2, 2, 2], pre_blocks=[2, 2, 2, 2], pos_blocks=[2, 2, 2, 2],
|
||||
k_neighbors=[32, 32, 32, 32], reducers=[4, 4, 4, 4],
|
||||
de_dims=[512, 256, 128, 128], de_blocks=[4,4,4,4],
|
||||
gmp_dim=64,cls_dim=64, **kwargs)
|
||||
|
||||
def model31I(num_classes=50, **kwargs) -> PointMLP31:
|
||||
return PointMLP31(num_classes=num_classes, points=2048, embed_dim=64, groups=1, res_expansion=1.0,
|
||||
activation="relu", bias=True, use_xyz=True, normalize="anchor",
|
||||
dim_expansion=[2, 2, 2, 1], pre_blocks=[3, 3, 3, 3], pos_blocks=[3, 3, 3, 3],
|
||||
k_neighbors=[32, 32, 32, 32], reducers=[4, 4, 4, 4],
|
||||
de_dims=[512, 256, 128, 128], de_blocks=[4, 4, 4, 4],
|
||||
gmp_dim=64,cls_dim=64, **kwargs)
|
||||
|
||||
def model31J(num_classes=50, **kwargs) -> PointMLP31:
|
||||
return PointMLP31(num_classes=num_classes, points=2048, embed_dim=64, groups=1, res_expansion=1.0,
|
||||
activation="leakyrelu", bias=True, use_xyz=True, normalize="anchor",
|
||||
dim_expansion=[2, 2, 2, 2], pre_blocks=[2, 2, 2, 2], pos_blocks=[2, 2, 2, 2],
|
||||
k_neighbors=[32, 32, 32, 32], reducers=[4, 4, 4, 4],
|
||||
de_dims=[512, 256, 128, 128], de_blocks=[4,4,4,4],
|
||||
gmp_dim=64,cls_dim=64, **kwargs)
|
||||
|
||||
|
||||
def model31K(num_classes=50, **kwargs) -> PointMLP31:
|
||||
return PointMLP31(num_classes=num_classes, points=2048, embed_dim=64, groups=1, res_expansion=1.0,
|
||||
activation="leakyrelu0.2", bias=True, use_xyz=True, normalize="anchor",
|
||||
dim_expansion=[2, 2, 2, 2], pre_blocks=[2, 2, 2, 2], pos_blocks=[2, 2, 2, 2],
|
||||
k_neighbors=[32, 32, 32, 32], reducers=[4, 4, 4, 4],
|
||||
de_dims=[512, 256, 128, 128], de_blocks=[4,4,4,4],
|
||||
gmp_dim=64,cls_dim=64, **kwargs)
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
data = torch.rand(2, 3, 2048)
|
||||
norm = torch.rand(2, 3, 2048)
|
||||
cls_label = torch.rand([2, 16])
|
||||
print("===> testing modelD ...")
|
||||
model = model31D(50)
|
||||
model = model31G(50)
|
||||
out = model(data, cls_label) # [2,2048,50]
|
||||
print(out.shape)
|
||||
|
||||
model = model31A(50)
|
||||
out = model(data, cls_label) # [2,2048,50]
|
||||
print(out.shape)
|
||||
|
||||
model = model31B(50)
|
||||
out = model(data, cls_label) # [2,2048,50]
|
||||
print(out.shape)
|
||||
|
||||
model = model31C(50)
|
||||
out = model(data, cls_label) # [2,50, 2048]
|
||||
print(out.shape)
|
Loading…
Reference in a new issue