def test_cpu_approx(self, test_case_description, sigmas, input, expected): # Params to determine the implementation to test device = torch.device("cpu") fast_approx = True # Create input tensor and apply filter input_tensor = torch.from_numpy(np.array(input)).to(dtype=torch.float, device=device) output = BilateralFilter.apply(input_tensor, *sigmas, fast_approx).cpu().numpy() # Ensure result are as expected np.testing.assert_allclose(output, expected, atol=1e-5)
def test_cuda_precise(self, test_case_description, sigmas, input, expected): # Skip this test if not torch.cuda.is_available(): return # Params to determine the implementation to test device = torch.device("cuda") fast_approx = False # Create input tensor and apply filter input_tensor = torch.from_numpy(np.array(input)).to(dtype=torch.float, device=device) output = BilateralFilter.apply(input_tensor, *sigmas, fast_approx).cpu().numpy() # Ensure result are as expected np.testing.assert_allclose(output, expected, atol=1e-5)