(self, voxel_center, paca_feat)
return voxel_attention_weight
:param voxel_center: size (K,1,3)
        :param SACA_Feat: size (K,N,C)
        :return: voxel_attention_weight: size (K,1,1)
:param voxel_center: size (K,1,3)
        :param SACA_Feat: size (K,N,C)
        :return: voxel_attention_weight: size (K,1,1)
: param voxel_center : size ( K 1 3 ) : param SACA_Feat : size ( K N C ) : return : voxel_attention_weight : size ( K 1 1 )
def forward(self, voxel_center, paca_feat):
        '''
        :param voxel_center: size (K,1,3)
        :param SACA_Feat: size (K,N,C)
        :return: voxel_attention_weight: size (K,1,1)
        '''
        voxel_center_repeat = voxel_center.repeat(1, paca_feat.shape[1], 1)
        # print(voxel_center_repeat.shape)
        voxel_feat_concat = torch.cat([paca_feat, voxel_center_repeat], dim=-1)  # K,N,C---> K,N,(C+3)

        feat_2 = self.fc1(voxel_feat_concat)  # K,N,(C+3)--->K,N,1
        feat_2 = feat_2.permute(0, 2, 1).contiguous()  # K,N,1--->K,1,N

        voxel_feat_concat = self.fc2(feat_2)  # K,1,N--->K,1,1

        voxel_attention_weight = self.sigmod(voxel_feat_concat)  # K,1,1

        return voxel_attention_weight
def forward ( self , voxel_center , paca_feat ) : voxel_center_repeat = voxel_center . repeat ( 1 , paca_feat . shape [ 1 ] , 1 ) # print(voxel_center_repeat.shape) voxel_feat_concat = torch . cat ( [ paca_feat , voxel_center_repeat ] , dim = - 1 ) # K,N,C---> K,N,(C+3) feat_2 = self . fc1 ( voxel_feat_concat ) # K,N,(C+3)--->K,N,1 feat_2 = feat_2 . permute ( 0 , 2 , 1 ) . contiguous ( ) # K,N,1--->K,1,N voxel_feat_concat = self . fc2 ( feat_2 ) # K,1,N--->K,1,1 voxel_attention_weight = self . sigmod ( voxel_feat_concat ) # K,1,1 return voxel_attention_weight