Ejemplo n.º 1
0
 def test_invalid_param_combinations(self, kernel_size, angle, direction,
                                     device, dtype):
     random_motion_blur_generator3d(batch_size=8,
                                    kernel_size=kernel_size,
                                    angle=angle.to(device=device,
                                                   dtype=dtype),
                                    direction=direction.to(device=device,
                                                           dtype=dtype))
Ejemplo n.º 2
0
 def test_same_on_batch(self, device, dtype):
     torch.manual_seed(42)
     angle = torch.tensor([(10, 30), (30, 60), (60, 90)])
     direction = torch.tensor([-1, 1])
     res = random_motion_blur_generator3d(
         batch_size=2,
         kernel_size=3,
         angle=angle.to(device=device, dtype=dtype),
         direction=direction.to(device=device, dtype=dtype),
         same_on_batch=True,
     )
     expected = dict(
         ksize_factor=torch.tensor([3, 3], device=device,
                                   dtype=torch.int32),
         angle_factor=torch.tensor(
             [[27.6454, 57.4501, 71.4859], [27.6454, 57.4501, 71.4859]],
             device=device,
             dtype=dtype),
         direction_factor=torch.tensor([0.9186, 0.9186],
                                       device=device,
                                       dtype=dtype),
     )
     assert res.keys() == expected.keys()
     assert_close(res['ksize_factor'],
                  expected['ksize_factor'],
                  rtol=1e-4,
                  atol=1e-4)
     assert_close(res['angle_factor'],
                  expected['angle_factor'],
                  rtol=1e-4,
                  atol=1e-4)
     assert_close(res['direction_factor'],
                  expected['direction_factor'],
                  rtol=1e-4,
                  atol=1e-4)
Ejemplo n.º 3
0
 def test_random_gen(self, device, dtype):
     torch.manual_seed(42)
     angle = torch.tensor([(10, 30), (30, 60), (60, 90)])
     direction = torch.tensor([-1, 1])
     res = random_motion_blur_generator3d(
         batch_size=2,
         kernel_size=3,
         angle=angle.to(device=device, dtype=dtype),
         direction=direction.to(device=device, dtype=dtype),
         same_on_batch=False,
     )
     expected = dict(
         ksize_factor=torch.tensor([3, 3], device=device,
                                   dtype=torch.int32),
         angle_factor=torch.tensor(
             [[27.6454, 41.4859, 71.7134], [28.3001, 58.7792, 78.0269]],
             device=device,
             dtype=dtype),
         direction_factor=torch.tensor([-0.4869, 0.5873],
                                       device=device,
                                       dtype=dtype),
     )
     assert res.keys() == expected.keys()
     assert_close(res['ksize_factor'],
                  expected['ksize_factor'],
                  rtol=1e-4,
                  atol=1e-4)
     assert_close(res['angle_factor'],
                  expected['angle_factor'],
                  rtol=1e-4,
                  atol=1e-4)
     assert_close(res['direction_factor'],
                  expected['direction_factor'],
                  rtol=1e-4,
                  atol=1e-4)
Ejemplo n.º 4
0
 def test_same_on_batch(self, device, dtype):
     torch.manual_seed(42)
     angle = torch.tensor([(10, 30), (30, 60), (60, 90)])
     direction = torch.tensor([-1, 1])
     res = random_motion_blur_generator3d(batch_size=2,
                                          kernel_size=3,
                                          angle=angle.to(device=device,
                                                         dtype=dtype),
                                          direction=direction.to(
                                              device=device, dtype=dtype),
                                          same_on_batch=True)
     expected = dict(
         ksize_factor=torch.tensor([3., 3.],
                                   device=device,
                                   dtype=torch.int32),
         angle_factor=torch.tensor(
             [[11.1631, 31.8873, 63.7076], [11.1631, 31.8873, 63.7076]],
             device=device,
             dtype=dtype),
         direction_factor=torch.tensor([-0.8948, -0.8948],
                                       device=device,
                                       dtype=dtype))
     assert res.keys() == expected.keys()
     assert_allclose(res['ksize_factor'],
                     expected['ksize_factor'],
                     rtol=1e-4,
                     atol=1e-4)
     assert_allclose(res['angle_factor'],
                     expected['angle_factor'],
                     rtol=1e-4,
                     atol=1e-4)
     assert_allclose(res['direction_factor'],
                     expected['direction_factor'],
                     rtol=1e-4,
                     atol=1e-4)
Ejemplo n.º 5
0
 def test_random_gen(self, device, dtype):
     torch.manual_seed(42)
     angle = torch.tensor([(10, 30), (30, 60), (60, 90)])
     direction = torch.tensor([-1, 1])
     res = random_motion_blur_generator3d(batch_size=2,
                                          kernel_size=3,
                                          angle=angle.to(device=device,
                                                         dtype=dtype),
                                          direction=direction.to(
                                              device=device, dtype=dtype),
                                          same_on_batch=False)
     expected = dict(
         ksize_factor=torch.tensor([3., 3.],
                                   device=device,
                                   dtype=torch.int32),
         angle_factor=torch.tensor(
             [[11.1631, 33.7076, 75.7852], [11.2582, 31.5774, 74.3035]],
             device=device,
             dtype=dtype),
         direction_factor=torch.tensor([0.9105, 0.8575],
                                       device=device,
                                       dtype=dtype))
     assert res.keys() == expected.keys()
     assert_allclose(res['ksize_factor'],
                     expected['ksize_factor'],
                     rtol=1e-4,
                     atol=1e-4)
     assert_allclose(res['angle_factor'],
                     expected['angle_factor'],
                     rtol=1e-4,
                     atol=1e-4)
     assert_allclose(res['direction_factor'],
                     expected['direction_factor'],
                     rtol=1e-4,
                     atol=1e-4)