def __init__(self): super(PointNetFeature, self).__init__() k = self.KERNEL_SIZES s = self.STRIDES c = self.CONV_CHANNELS self.stn = STN3d(D=3) self.block1 = nn.Sequential( ME.MinkowskiConvolution(6, c[0], kernel_size=k[0], stride=s[0], has_bias=False, dimension=3), ME.MinkowskiInstanceNorm(c[0]), ME.MinkowskiReLU()) self.block2 = nn.Sequential( ME.MinkowskiConvolution(c[0], c[1], kernel_size=k[1], stride=s[1], has_bias=False, dimension=3), ME.MinkowskiInstanceNorm(c[1]), ME.MinkowskiReLU()) self.block3 = nn.Sequential( ME.MinkowskiConvolution(c[1], c[2], kernel_size=k[2], stride=s[2], has_bias=False, dimension=3), ME.MinkowskiInstanceNorm(c[2]), ME.MinkowskiReLU()) self.avgpool = ME.MinkowskiGlobalPooling() self.concat = ME.MinkowskiBroadcastConcatenation()
def __init__(self): super(PointNetFeature, self).__init__() k = self.KERNEL_SIZES s = self.STRIDES c = self.CONV_CHANNELS self.stn = STN3d(D=3) self.conv1 = ME.MinkowskiConvolution(6, c[0], kernel_size=k[0], stride=s[0], has_bias=False, dimension=3) self.conv2 = ME.MinkowskiConvolution(c[0], c[1], kernel_size=k[1], stride=s[1], has_bias=False, dimension=3) self.conv3 = ME.MinkowskiConvolution(c[1], c[2], kernel_size=k[2], stride=s[2], has_bias=False, dimension=3) self.bn1 = ME.MinkowskiInstanceNorm(c[0], dimension=3) self.bn2 = ME.MinkowskiInstanceNorm(c[1], dimension=3) self.bn3 = ME.MinkowskiInstanceNorm(c[2], dimension=3) self.relu = ME.MinkowskiReLU(inplace=True) self.avgpool = ME.MinkowskiGlobalPooling() self.concat = ME.MinkowskiBroadcastConcatenation()