def backward(ctx, grad_out): """idx, C, N = ctx.for_backwards B, npoint = idx.size() grad_features = Variable(torch.cuda.FloatTensor(B, C, N).zero_()) grad_out_data = grad_out.data.contiguous() pointnet2.gather_points_grad_wrapper( B, C, N, npoint, grad_out_data, idx, grad_features.data )""" idx, C, N = ctx.for_backwards grad_features = _ext.gather_points_grad(grad_out.contiguous(), idx, N) return grad_features, None
def backward(ctx, grad_out): idx, features = ctx.saved_tensors N = features.size(2) grad_features = _ext.gather_points_grad(grad_out.contiguous(), idx, N) return grad_features, None
def backward(ctx, grad_out): idx, C, N = ctx.for_backwards grad_features = _ext.gather_points_grad(grad_out.contiguous(), idx, N) return grad_features, None