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)
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)
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])