From 6c20b28e6460880822dc51746a794c6ce4f632f0 Mon Sep 17 00:00:00 2001 From: Wenqi Li Date: Fri, 23 Apr 2021 13:04:37 +0100 Subject: [PATCH 1/3] RandTorchVisionD update Signed-off-by: Wenqi Li --- monai/transforms/utility/dictionary.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/monai/transforms/utility/dictionary.py b/monai/transforms/utility/dictionary.py index 800ebbc385..e4774be971 100644 --- a/monai/transforms/utility/dictionary.py +++ b/monai/transforms/utility/dictionary.py @@ -25,7 +25,7 @@ from monai.config import DtypeLike, KeysCollection, NdarrayTensor from monai.transforms.inverse import InvertibleTransform -from monai.transforms.transform import MapTransform, Randomizable, RandomizableTransform +from monai.transforms.transform import MapTransform, Randomizable from monai.transforms.utility.array import ( AddChannel, AsChannelFirst, @@ -972,14 +972,20 @@ def __call__(self, data: Mapping[Hashable, torch.Tensor]) -> Dict[Hashable, torc return d -class RandTorchVisiond(RandomizableTransform, MapTransform): +class RandTorchVisiond(Randomizable, MapTransform): """ - Dictionary-based wrapper of :py:class:`monai.transforms.TorchVision` for randomized transoforms. + Dictionary-based wrapper of :py:class:`monai.transforms.TorchVision` for randomized transforms. For deterministic non-randomized transforms of TorchVision use :py:class:`monai.transforms.TorchVisiond`. Note: - As most of the TorchVision transforms only work for PIL image and PyTorch Tensor, this transform expects input - data to be dict of PyTorch Tensors, users can easily call `ToTensord` transform to convert Numpy to Tensor. + + - As most of the TorchVision transforms only work for PIL image and PyTorch Tensor, this transform expects input + data to be dict of PyTorch Tensors, users can easily call `ToTensord` transform to convert Numpy to Tensor. + - This class inherits the ``Randomizable`` purely to prevent any dataset caching to skip the transform + computation. If the random factor of the underlying torchvision transform is not derived from `self.R`, + the results may not be deterministic. + See Also: :py:class:`monai.transforms.Randomizable`. + """ def __init__( From afeca5238a8792dad4afa99e6a180c538abe1d55 Mon Sep 17 00:00:00 2001 From: Wenqi Li Date: Fri, 23 Apr 2021 13:26:18 +0100 Subject: [PATCH 2/3] update figure tol Signed-off-by: Wenqi Li --- tests/test_threadcontainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_threadcontainer.py b/tests/test_threadcontainer.py index 68d7826a50..543dab4d0c 100644 --- a/tests/test_threadcontainer.py +++ b/tests/test_threadcontainer.py @@ -102,7 +102,7 @@ def test_plot(self): with tempfile.TemporaryDirectory() as tempdir: tempimg = f"{tempdir}/threadcontainer_plot_test.png" fig.savefig(tempimg) - comp = compare_images(f"{testing_dir}/threadcontainer_plot_test.png", tempimg, 1e-3) + comp = compare_images(f"{testing_dir}/threadcontainer_plot_test.png", tempimg, 1e-2) self.assertIsNone(comp, comp) # None indicates test passed From c7f294fbf26043ec8c66e0a8a599eeb198e63839 Mon Sep 17 00:00:00 2001 From: Wenqi Li Date: Fri, 23 Apr 2021 13:52:33 +0100 Subject: [PATCH 3/3] increase randrotate tol Signed-off-by: Wenqi Li --- tests/test_rotated.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_rotated.py b/tests/test_rotated.py index dd57786fff..2ea421101b 100644 --- a/tests/test_rotated.py +++ b/tests/test_rotated.py @@ -86,7 +86,7 @@ def test_correct_results(self, angle, keep_size, mode, padding_mode, align_corne self.segn[0, 0], np.rad2deg(angle), (0, 2), not keep_size, order=0, mode=_mode, prefilter=False ) expected = np.stack(expected).astype(int) - self.assertLessEqual(np.count_nonzero(expected != rotated["seg"][0]), 110) + self.assertLessEqual(np.count_nonzero(expected != rotated["seg"][0]), 130) class TestRotated3DXY(NumpyImageTestCase3D): @@ -113,7 +113,7 @@ def test_correct_results(self, angle, keep_size, mode, padding_mode, align_corne self.segn[0, 0], -np.rad2deg(angle), (0, 1), not keep_size, order=0, mode=_mode, prefilter=False ) expected = np.stack(expected).astype(int) - self.assertLessEqual(np.count_nonzero(expected != rotated["seg"][0]), 110) + self.assertLessEqual(np.count_nonzero(expected != rotated["seg"][0]), 130) if __name__ == "__main__":