Example #1
0
    def test_gpu(self):
        print(f"{self.__class__.__name__}: test_gpu")
        if not torch.cuda.is_available():
            return

        device = torch.device('cuda')
        in_channels, D = 3, 2
        coords, feats, labels = data_loader(in_channels, batch_size=2)

        # Create random coordinates with tensor stride == 2
        out_coords, tensor_stride = get_random_coords()

        feats = feats.double()
        feats.requires_grad_()
        input = SparseTensor(feats, coords=coords).to(device)
        conv = MinkowskiChannelwiseConvolution(
            in_channels,
            kernel_size=3,
            stride=1,
            bias=False,
            dimension=D).double().to(device)

        print('Initial input: ', input)
        output = conv(input)
        print('Conv output: ', output)
Example #2
0
    def test(self):
        print(f"{self.__class__.__name__}: test")
        in_channels, D = 3, 2
        coords, feats, labels = data_loader(in_channels, batch_size=2)

        # Create random coordinates with tensor stride == 2
        out_coords, tensor_stride = get_random_coords()

        feats = feats.double()
        feats.requires_grad_()
        input = SparseTensor(feats, coords=coords)

        conv = MinkowskiChannelwiseConvolution(
            in_channels,
            kernel_size=3,
            stride=1,
            bias=False,
            dimension=D).double()

        print('Initial input: ', input)
        output = conv(input)
        print('Conv output: ', output)

        output.F.sum().backward()
        print(input.F.grad)
Example #3
0
    def test(self):
        print(f"{self.__class__.__name__}: test")
        in_channels, out_channels, D = 2, 3, 2
        coords, feats, labels = data_loader(in_channels)
        feats = feats.double()
        feats.requires_grad_()
        input = SparseTensor(feats, coordinates=coords)
        # Initialize context
        conv = MinkowskiChannelwiseConvolution(
            in_channels, kernel_size=3, stride=2, bias=True, dimension=D
        )
        conv = conv.double()
        output = conv(input)
        print(output)

        self.assertEqual(input.coordinate_map_key.get_tensor_stride(), [1, 1])
        self.assertEqual(output.coordinate_map_key.get_tensor_stride(), [2, 2])