From 28476c1ed2721c712abf616439beda31725e6829 Mon Sep 17 00:00:00 2001 From: Vasileios Vryniotis Date: Thu, 29 Oct 2020 11:09:24 +0000 Subject: [PATCH 1/6] Change default eps value of FrozenBN. --- torchvision/ops/misc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/torchvision/ops/misc.py b/torchvision/ops/misc.py index 3b52c0d8c4d..3e9f13c9daf 100644 --- a/torchvision/ops/misc.py +++ b/torchvision/ops/misc.py @@ -51,7 +51,7 @@ class FrozenBatchNorm2d(torch.nn.Module): def __init__( self, num_features: int, - eps: float = 0., + eps: float = 1e-5, n: Optional[int] = None, ): # n=None for backward-compatibility From 13e85cc3ad27b2ff6e656bfd344b9173ddc7ad80 Mon Sep 17 00:00:00 2001 From: Vasileios Vryniotis Date: Thu, 29 Oct 2020 11:34:38 +0000 Subject: [PATCH 2/6] Update the unit-tests.` --- test/test_ops.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_ops.py b/test/test_ops.py index 7c13de4dedc..79294ed173e 100644 --- a/test/test_ops.py +++ b/test/test_ops.py @@ -623,10 +623,10 @@ def test_frozenbatchnorm2d_eps(self): running_var=torch.rand(sample_size[1]), num_batches_tracked=torch.tensor(100)) - # Check that default eps is zero for backward-compatibility + # Check that default eps is equal to the one of BN fbn = ops.misc.FrozenBatchNorm2d(sample_size[1]) fbn.load_state_dict(state_dict, strict=False) - bn = torch.nn.BatchNorm2d(sample_size[1], eps=0).eval() + bn = torch.nn.BatchNorm2d(sample_size[1]).eval() bn.load_state_dict(state_dict) # Difference is expected to fall in an acceptable range self.assertTrue(torch.allclose(fbn(x), bn(x), atol=1e-6)) From 2f920727b25454f0385c974936fcd08a4fe943a0 Mon Sep 17 00:00:00 2001 From: Vasileios Vryniotis Date: Thu, 29 Oct 2020 12:24:05 +0000 Subject: [PATCH 3/6] Update the expected values. --- ....test_keypointrcnn_resnet50_fpn_expect.pkl | Bin 30725 -> 31841 bytes ...ter.test_retinanet_resnet50_fpn_expect.pkl | Bin 1357 -> 1357 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/test/expect/ModelTester.test_keypointrcnn_resnet50_fpn_expect.pkl b/test/expect/ModelTester.test_keypointrcnn_resnet50_fpn_expect.pkl index a12333d6fb1b2ceb59a5bafce7f298ba6d7cd423..6d821bf803f267da035e53ceb62aecc6d3639512 100644 GIT binary patch literal 31841 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 literal 30725 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 Ip|8yC|9ZFpI{*Lx diff --git a/test/expect/ModelTester.test_retinanet_resnet50_fpn_expect.pkl b/test/expect/ModelTester.test_retinanet_resnet50_fpn_expect.pkl index 548b0a22e1c1c46f1b9fc4d3a4b99a2d5ad542c0..dc57ca262337e3bb19e416c6348a86057df9ccce 100644 GIT binary patch delta 584 zcmX@hb(U+wG9@!ha|;Vo3kwq!$k!0Ozb zxEP|~fCXqT2*Bt7Z*~q1&I5Y{fMOs#K}to2L5(4?C^;juELA@xu_RI7(8K`Q^=?i| z43iU?qbQBy|CDW!9VQyu>^CmxQ+j&@(ToU^#LJLOdeJA;h>v-rqU1)$L& zJVDA^hCvL6@epsjISC=T7v}I^hM_jOjG;Cl12?KF$#MV<w*2xbNbhU9|MLUwPSl0uF^Zw7DXi6{J}fU1m4 zjLa>}Obv|+1v1#ZnM(=yVwjxBB;_D> z;jUwfl$O(s&K*um_@6mFV}I;;{xg^J9Iow7b=ASn21|;Z1ahA_O_g2a)V_+*8D!Ce zO|K6d04)OH2~y(x48m}`%2JDpGxPJ@ocI|g7cv_{!etq=6(_>CFPT;AkwYoKn-S~_ w4i1Q4;NAdoWgtROQU<6FUnrrQgzQcflN1?N;5G^zK9kq6XfZlWzR6Mo01^U>5C8xG From 7c8c5ae90653edd17997b9451a01db757f93df00 Mon Sep 17 00:00:00 2001 From: Vasileios Vryniotis Date: Thu, 29 Oct 2020 16:34:15 +0000 Subject: [PATCH 4/6] Revert the expected value and use original eps=0 value for flaky tests. --- ....test_keypointrcnn_resnet50_fpn_expect.pkl | Bin 31841 -> 30725 bytes ...ter.test_retinanet_resnet50_fpn_expect.pkl | Bin 1357 -> 1357 bytes test/test_models.py | 15 ++++++++++++++- torchvision/ops/misc.py | 7 ++++++- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/test/expect/ModelTester.test_keypointrcnn_resnet50_fpn_expect.pkl b/test/expect/ModelTester.test_keypointrcnn_resnet50_fpn_expect.pkl index 6d821bf803f267da035e53ceb62aecc6d3639512..a12333d6fb1b2ceb59a5bafce7f298ba6d7cd423 100644 GIT binary patch literal 30725 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 Ip|8yC|9ZFpI{*Lx literal 31841 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 diff --git a/test/expect/ModelTester.test_retinanet_resnet50_fpn_expect.pkl b/test/expect/ModelTester.test_retinanet_resnet50_fpn_expect.pkl index dc57ca262337e3bb19e416c6348a86057df9ccce..548b0a22e1c1c46f1b9fc4d3a4b99a2d5ad542c0 100644 GIT binary patch delta 581 zcmX@hb(U+wG9@D;b7MnG6AME_Q=>w*2xbNbhU9|MLUwPSl0uF^Zw7DXi6{J}fU1m4 zjLa>}Obv|+1v1#ZnM(=yVwjxBB;_D> z;jUwfl$O(s&K*um_@6mFV}I;;{xg^J9Iow7b=ASn21|;Z1ahA_O_g2a)V_+*8D!Ce zO|K6d04)OH2~y(x48m}`%2JDpGxPJ@ocI|g7cv_{!etq=6(_>CFPT;AkwYoKn-S~_ w4i1Q4;NAdoWgtROQU<6FUnrrQgzQcflN1?N;5G^zK9kq6XfZlWzR6Mo01^U>5C8xG delta 584 zcmX@hb(U+wG9@!ha|;Vo3kwq!$k!0Ozb zxEP|~fCXqT2*Bt7Z*~q1&I5Y{fMOs#K}to2L5(4?C^;juELA@xu_RI7(8K`Q^=?i| z43iU?qbQBy|CDW!9VQyu>^CmxQ+j&@(ToU^#LJLOdeJA;h>v-rqU1)$L& zJVDA^hCvL6@epsjISC=T7v}I^hM_jOjG;Cl12?KF$#MV< Date: Fri, 30 Oct 2020 09:18:32 +0000 Subject: [PATCH 5/6] Post init change of eps. --- test/test_models.py | 22 +++++++--------------- torchvision/ops/misc.py | 8 +------- 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/test/test_models.py b/test/test_models.py index 14fc28fb7ea..b37fb176a2b 100644 --- a/test/test_models.py +++ b/test/test_models.py @@ -6,9 +6,10 @@ import numpy as np from torchvision import models import unittest -import traceback import random +from torchvision.ops.misc import FrozenBatchNorm2d + def set_rng_seed(seed): torch.manual_seed(seed) @@ -148,20 +149,11 @@ def _test_detection_model(self, name, dev): kwargs = {} if "retinanet" in name: kwargs["score_thresh"] = 0.013 - - # Workaround for flaky tests - from torchvision.ops.misc import FrozenBatchNorm2d - - class OverwriteEPS: - def __enter__(self): - self.default = FrozenBatchNorm2d._DEFAULT_EPS - FrozenBatchNorm2d._DEFAULT_EPS = 0.0 - - def __exit__(self, type, value, traceback): # noqa: F811 - FrozenBatchNorm2d._DEFAULT_EPS = self.default - - with OverwriteEPS(): - model = models.detection.__dict__[name](num_classes=50, pretrained_backbone=False, **kwargs) + model = models.detection.__dict__[name](num_classes=50, pretrained_backbone=False, **kwargs) + if "keypointrcnn" in name or "retinanet" in name: + for module in model.modules(): + if isinstance(module, FrozenBatchNorm2d): + module.eps = 0 model.eval().to(device=dev) input_shape = (3, 300, 300) # RNG always on CPU, to ensure x in cuda tests is bitwise identical to x in cpu tests diff --git a/torchvision/ops/misc.py b/torchvision/ops/misc.py index cd46e1fd902..5ede3b03022 100644 --- a/torchvision/ops/misc.py +++ b/torchvision/ops/misc.py @@ -47,18 +47,12 @@ class FrozenBatchNorm2d(torch.nn.Module): BatchNorm2d where the batch statistics and the affine parameters are fixed """ - _DEFAULT_EPS = 1e-5 - def __init__( self, num_features: int, - eps: float = None, + eps: float = 1e-5, n: Optional[int] = None, ): - # eps=None for unit-test stability - if eps is None: - eps = FrozenBatchNorm2d._DEFAULT_EPS - # n=None for backward-compatibility if n is not None: warnings.warn("`n` argument is deprecated and has been renamed `num_features`", From e4f3ce1318d03edb3a025588061f4f971e9b1271 Mon Sep 17 00:00:00 2001 From: Vasileios Vryniotis Date: Fri, 30 Oct 2020 09:20:23 +0000 Subject: [PATCH 6/6] Styles. --- torchvision/ops/misc.py | 1 + 1 file changed, 1 insertion(+) diff --git a/torchvision/ops/misc.py b/torchvision/ops/misc.py index 5ede3b03022..3e9f13c9daf 100644 --- a/torchvision/ops/misc.py +++ b/torchvision/ops/misc.py @@ -47,6 +47,7 @@ class FrozenBatchNorm2d(torch.nn.Module): BatchNorm2d where the batch statistics and the affine parameters are fixed """ + def __init__( self, num_features: int,