diff --git a/test/expect/ModelTester.test_googlenet_quantized_expect.pkl b/test/expect/ModelTester.test_googlenet_quantized_expect.pkl new file mode 100644 index 00000000000..686d7bfced6 Binary files /dev/null and b/test/expect/ModelTester.test_googlenet_quantized_expect.pkl differ diff --git a/test/expect/ModelTester.test_mobilenet_v2_quantized_expect.pkl b/test/expect/ModelTester.test_mobilenet_v2_quantized_expect.pkl new file mode 100644 index 00000000000..7b65656ae8a Binary files /dev/null and b/test/expect/ModelTester.test_mobilenet_v2_quantized_expect.pkl differ diff --git a/test/expect/ModelTester.test_mobilenet_v3_large_quantized_expect.pkl b/test/expect/ModelTester.test_mobilenet_v3_large_quantized_expect.pkl new file mode 100644 index 00000000000..7b65656ae8a Binary files /dev/null and b/test/expect/ModelTester.test_mobilenet_v3_large_quantized_expect.pkl differ diff --git a/test/expect/ModelTester.test_resnet18_quantized_expect.pkl b/test/expect/ModelTester.test_resnet18_quantized_expect.pkl new file mode 100644 index 00000000000..6b424f6a975 Binary files /dev/null and b/test/expect/ModelTester.test_resnet18_quantized_expect.pkl differ diff --git a/test/expect/ModelTester.test_resnet50_quantized_expect.pkl b/test/expect/ModelTester.test_resnet50_quantized_expect.pkl new file mode 100644 index 00000000000..3680775a390 Binary files /dev/null and b/test/expect/ModelTester.test_resnet50_quantized_expect.pkl differ diff --git a/test/expect/ModelTester.test_resnext101_32x8d_quantized_expect.pkl b/test/expect/ModelTester.test_resnext101_32x8d_quantized_expect.pkl new file mode 100644 index 00000000000..ec32f7c6c58 Binary files /dev/null and b/test/expect/ModelTester.test_resnext101_32x8d_quantized_expect.pkl differ diff --git a/test/expect/ModelTester.test_shufflenet_v2_x0_5_quantized_expect.pkl b/test/expect/ModelTester.test_shufflenet_v2_x0_5_quantized_expect.pkl new file mode 100644 index 00000000000..bf650020d19 Binary files /dev/null and b/test/expect/ModelTester.test_shufflenet_v2_x0_5_quantized_expect.pkl differ diff --git a/test/expect/ModelTester.test_shufflenet_v2_x1_0_quantized_expect.pkl b/test/expect/ModelTester.test_shufflenet_v2_x1_0_quantized_expect.pkl new file mode 100644 index 00000000000..68eb12bcebf Binary files /dev/null and b/test/expect/ModelTester.test_shufflenet_v2_x1_0_quantized_expect.pkl differ diff --git a/test/expect/ModelTester.test_shufflenet_v2_x1_5_quantized_expect.pkl b/test/expect/ModelTester.test_shufflenet_v2_x1_5_quantized_expect.pkl new file mode 100644 index 00000000000..eaa63817f7f Binary files /dev/null and b/test/expect/ModelTester.test_shufflenet_v2_x1_5_quantized_expect.pkl differ diff --git a/test/expect/ModelTester.test_shufflenet_v2_x2_0_quantized_expect.pkl b/test/expect/ModelTester.test_shufflenet_v2_x2_0_quantized_expect.pkl new file mode 100644 index 00000000000..f018ec9363c Binary files /dev/null and b/test/expect/ModelTester.test_shufflenet_v2_x2_0_quantized_expect.pkl differ diff --git a/test/test_models.py b/test/test_models.py index 5e5b3429778..659198f42f4 100644 --- a/test/test_models.py +++ b/test/test_models.py @@ -220,6 +220,11 @@ def _check_input_backprop(model, inputs): "maskrcnn_resnet50_fpn", ) +# The tests for the following quantized models are flaky possibly due to inconsistent +# rounding errors in different platforms. For this reason the input/output consistency +# tests under test_quantized_classification_model will be skipped for the following models. +quantized_flaky_models = ("inception_v3",) + # The following contains configuration parameters for all models which are used by # the _test_*_model methods. @@ -687,7 +692,9 @@ def test_video_model(model_name, dev): ) @pytest.mark.parametrize("model_name", get_available_quantizable_models()) def test_quantized_classification_model(model_name): + set_rng_seed(0) defaults = { + "num_classes": 5, "input_shape": (1, 3, 224, 224), "pretrained": False, "quantize": True, @@ -697,8 +704,15 @@ def test_quantized_classification_model(model_name): # First check if quantize=True provides models that can run with input data model = torchvision.models.quantization.__dict__[model_name](**kwargs) + model.eval() x = torch.rand(input_shape) - model(x) + out = model(x) + + if model_name not in quantized_flaky_models: + _assert_expected(out, model_name + "_quantized", prec=0.1) + assert out.shape[-1] == 5 + _check_jit_scriptable(model, (x,), unwrapper=script_model_unwrapper.get(model_name, None)) + _check_fx_compatible(model, x) kwargs["quantize"] = False for eval_mode in [True, False]: