update
This commit is contained in:
parent
5fb50b9eda
commit
4a38583069
|
@ -1,5 +1,2 @@
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
from .curvenet_seg import CurveNet
|
from .pointMLP import pointMLP
|
||||||
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
|
|
||||||
|
|
|
@ -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
|
||||||
import torch.nn as nn
|
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,
|
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",
|
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],
|
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],
|
k_neighbors=[32, 32, 32, 32], reducers=[4, 4, 4, 4],
|
||||||
de_dims=[512, 256, 128, 128], de_blocks=[2,2,2,2],
|
de_dims=[512, 256, 128, 128], de_blocks=[2,2,2,2],
|
||||||
gmp_dim=64,cls_dim=64, **kwargs):
|
gmp_dim=64,cls_dim=64, **kwargs):
|
||||||
super(PointMLP31, self).__init__()
|
super(PointMLP, self).__init__()
|
||||||
self.stages = len(pre_blocks)
|
self.stages = len(pre_blocks)
|
||||||
self.class_num = num_classes
|
self.class_num = num_classes
|
||||||
self.points = points
|
self.points = points
|
||||||
|
@ -455,143 +445,20 @@ class PointMLP31(nn.Module):
|
||||||
return x
|
return x
|
||||||
|
|
||||||
|
|
||||||
def model31A(num_classes=50, **kwargs) -> PointMLP31:
|
def pointMLP(num_classes=50, **kwargs) -> PointMLP:
|
||||||
return PointMLP31(num_classes=num_classes, points=2048, embed_dim=64, groups=1, res_expansion=1.0,
|
return PointMLP(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,
|
|
||||||
activation="relu", bias=True, use_xyz=True, normalize="anchor",
|
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],
|
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],
|
k_neighbors=[32, 32, 32, 32], reducers=[4, 4, 4, 4],
|
||||||
de_dims=[512, 256, 128, 128], de_blocks=[4,4,4,4],
|
de_dims=[512, 256, 128, 128], de_blocks=[4,4,4,4],
|
||||||
gmp_dim=64,cls_dim=64, **kwargs)
|
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__':
|
if __name__ == '__main__':
|
||||||
data = torch.rand(2, 3, 2048)
|
data = torch.rand(2, 3, 2048)
|
||||||
norm = torch.rand(2, 3, 2048)
|
norm = torch.rand(2, 3, 2048)
|
||||||
cls_label = torch.rand([2, 16])
|
cls_label = torch.rand([2, 16])
|
||||||
print("===> testing modelD ...")
|
print("===> testing modelD ...")
|
||||||
model = model31D(50)
|
model = model31G(50)
|
||||||
out = model(data, cls_label) # [2,2048,50]
|
out = model(data, cls_label) # [2,2048,50]
|
||||||
print(out.shape)
|
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