diff --git a/test/expect/ModelTester.test_alexnet_expect.pkl b/test/expect/ModelTester.test_alexnet_expect.pkl index 5408e33378b..78727a34864 100644 Binary files a/test/expect/ModelTester.test_alexnet_expect.pkl and b/test/expect/ModelTester.test_alexnet_expect.pkl differ diff --git a/test/expect/ModelTester.test_convnext_base_expect.pkl b/test/expect/ModelTester.test_convnext_base_expect.pkl index e58daf5781b..2cf9b864a47 100644 Binary files a/test/expect/ModelTester.test_convnext_base_expect.pkl and b/test/expect/ModelTester.test_convnext_base_expect.pkl differ diff --git a/test/expect/ModelTester.test_convnext_large_expect.pkl b/test/expect/ModelTester.test_convnext_large_expect.pkl index 94b6ddaaa85..2fd2e1b6b21 100644 Binary files a/test/expect/ModelTester.test_convnext_large_expect.pkl and b/test/expect/ModelTester.test_convnext_large_expect.pkl differ diff --git a/test/expect/ModelTester.test_convnext_small_expect.pkl b/test/expect/ModelTester.test_convnext_small_expect.pkl index f5bf3b800bf..604e83b9cff 100644 Binary files a/test/expect/ModelTester.test_convnext_small_expect.pkl and b/test/expect/ModelTester.test_convnext_small_expect.pkl differ diff --git a/test/expect/ModelTester.test_convnext_tiny_expect.pkl b/test/expect/ModelTester.test_convnext_tiny_expect.pkl index c6fb873f12f..49ef0f1b8a3 100644 Binary files a/test/expect/ModelTester.test_convnext_tiny_expect.pkl and b/test/expect/ModelTester.test_convnext_tiny_expect.pkl differ diff --git a/test/expect/ModelTester.test_densenet121_expect.pkl b/test/expect/ModelTester.test_densenet121_expect.pkl index 83bcc3282fb..1f0fb1eb006 100644 Binary files a/test/expect/ModelTester.test_densenet121_expect.pkl and b/test/expect/ModelTester.test_densenet121_expect.pkl differ diff --git a/test/expect/ModelTester.test_densenet161_expect.pkl b/test/expect/ModelTester.test_densenet161_expect.pkl index 9b221957014..97fe5eb7ae3 100644 Binary files a/test/expect/ModelTester.test_densenet161_expect.pkl and b/test/expect/ModelTester.test_densenet161_expect.pkl differ diff --git a/test/expect/ModelTester.test_densenet169_expect.pkl b/test/expect/ModelTester.test_densenet169_expect.pkl index 42743fb0c80..b4c794e81d2 100644 Binary files a/test/expect/ModelTester.test_densenet169_expect.pkl and b/test/expect/ModelTester.test_densenet169_expect.pkl differ diff --git a/test/expect/ModelTester.test_densenet201_expect.pkl b/test/expect/ModelTester.test_densenet201_expect.pkl index fd85ca178c9..a28a4878efa 100644 Binary files a/test/expect/ModelTester.test_densenet201_expect.pkl and b/test/expect/ModelTester.test_densenet201_expect.pkl differ diff --git a/test/expect/ModelTester.test_efficientnet_b0_expect.pkl b/test/expect/ModelTester.test_efficientnet_b0_expect.pkl index 1de871ce0fb..a961c24d45f 100644 Binary files a/test/expect/ModelTester.test_efficientnet_b0_expect.pkl and b/test/expect/ModelTester.test_efficientnet_b0_expect.pkl differ diff --git a/test/expect/ModelTester.test_efficientnet_b1_expect.pkl b/test/expect/ModelTester.test_efficientnet_b1_expect.pkl index 1499a97028e..8822882849d 100644 Binary files a/test/expect/ModelTester.test_efficientnet_b1_expect.pkl and b/test/expect/ModelTester.test_efficientnet_b1_expect.pkl differ diff --git a/test/expect/ModelTester.test_efficientnet_b2_expect.pkl b/test/expect/ModelTester.test_efficientnet_b2_expect.pkl index f0aeb8ec122..3d517af59d8 100644 Binary files a/test/expect/ModelTester.test_efficientnet_b2_expect.pkl and b/test/expect/ModelTester.test_efficientnet_b2_expect.pkl differ diff --git a/test/expect/ModelTester.test_efficientnet_b3_expect.pkl b/test/expect/ModelTester.test_efficientnet_b3_expect.pkl index 989d6782fe7..eb2edb4b786 100644 Binary files a/test/expect/ModelTester.test_efficientnet_b3_expect.pkl and b/test/expect/ModelTester.test_efficientnet_b3_expect.pkl differ diff --git a/test/expect/ModelTester.test_efficientnet_b4_expect.pkl b/test/expect/ModelTester.test_efficientnet_b4_expect.pkl index f4a0cc04bf0..f9e5abe738e 100644 Binary files a/test/expect/ModelTester.test_efficientnet_b4_expect.pkl and b/test/expect/ModelTester.test_efficientnet_b4_expect.pkl differ diff --git a/test/expect/ModelTester.test_efficientnet_b5_expect.pkl b/test/expect/ModelTester.test_efficientnet_b5_expect.pkl index 7c674259cd9..ce2eed9eeb9 100644 Binary files a/test/expect/ModelTester.test_efficientnet_b5_expect.pkl and b/test/expect/ModelTester.test_efficientnet_b5_expect.pkl differ diff --git a/test/expect/ModelTester.test_efficientnet_b6_expect.pkl b/test/expect/ModelTester.test_efficientnet_b6_expect.pkl index 34dbdd074f1..daae8e1298d 100644 Binary files a/test/expect/ModelTester.test_efficientnet_b6_expect.pkl and b/test/expect/ModelTester.test_efficientnet_b6_expect.pkl differ diff --git a/test/expect/ModelTester.test_efficientnet_b7_expect.pkl b/test/expect/ModelTester.test_efficientnet_b7_expect.pkl index a4b42e80178..472332ffc1c 100644 Binary files a/test/expect/ModelTester.test_efficientnet_b7_expect.pkl and b/test/expect/ModelTester.test_efficientnet_b7_expect.pkl differ diff --git a/test/expect/ModelTester.test_efficientnet_v2_l_expect.pkl b/test/expect/ModelTester.test_efficientnet_v2_l_expect.pkl index a6709c7956d..d74bb2c1a21 100644 Binary files a/test/expect/ModelTester.test_efficientnet_v2_l_expect.pkl and b/test/expect/ModelTester.test_efficientnet_v2_l_expect.pkl differ diff --git a/test/expect/ModelTester.test_efficientnet_v2_m_expect.pkl b/test/expect/ModelTester.test_efficientnet_v2_m_expect.pkl index 622e2458e66..b3f3f16849b 100644 Binary files a/test/expect/ModelTester.test_efficientnet_v2_m_expect.pkl and b/test/expect/ModelTester.test_efficientnet_v2_m_expect.pkl differ diff --git a/test/expect/ModelTester.test_efficientnet_v2_s_expect.pkl b/test/expect/ModelTester.test_efficientnet_v2_s_expect.pkl index ef798e3a0b0..4a0268187de 100644 Binary files a/test/expect/ModelTester.test_efficientnet_v2_s_expect.pkl and b/test/expect/ModelTester.test_efficientnet_v2_s_expect.pkl differ diff --git a/test/expect/ModelTester.test_googlenet_expect.pkl b/test/expect/ModelTester.test_googlenet_expect.pkl index 46d23d955d4..83d79f64ed1 100644 Binary files a/test/expect/ModelTester.test_googlenet_expect.pkl and b/test/expect/ModelTester.test_googlenet_expect.pkl differ diff --git a/test/expect/ModelTester.test_inception_v3_expect.pkl b/test/expect/ModelTester.test_inception_v3_expect.pkl index 51b95f6dcd5..886a6b80860 100644 Binary files a/test/expect/ModelTester.test_inception_v3_expect.pkl and b/test/expect/ModelTester.test_inception_v3_expect.pkl differ diff --git a/test/expect/ModelTester.test_maxvit_t_expect.pkl b/test/expect/ModelTester.test_maxvit_t_expect.pkl index 3a93545f614..4933497699f 100644 Binary files a/test/expect/ModelTester.test_maxvit_t_expect.pkl and b/test/expect/ModelTester.test_maxvit_t_expect.pkl differ diff --git a/test/expect/ModelTester.test_mnasnet0_5_expect.pkl b/test/expect/ModelTester.test_mnasnet0_5_expect.pkl index aaa969d60c0..756c0ace22e 100644 Binary files a/test/expect/ModelTester.test_mnasnet0_5_expect.pkl and b/test/expect/ModelTester.test_mnasnet0_5_expect.pkl differ diff --git a/test/expect/ModelTester.test_mnasnet0_75_expect.pkl b/test/expect/ModelTester.test_mnasnet0_75_expect.pkl index 44213104b52..83ce84a578d 100644 Binary files a/test/expect/ModelTester.test_mnasnet0_75_expect.pkl and b/test/expect/ModelTester.test_mnasnet0_75_expect.pkl differ diff --git a/test/expect/ModelTester.test_mnasnet1_0_expect.pkl b/test/expect/ModelTester.test_mnasnet1_0_expect.pkl index 01bc90ba95f..b536abfe04c 100644 Binary files a/test/expect/ModelTester.test_mnasnet1_0_expect.pkl and b/test/expect/ModelTester.test_mnasnet1_0_expect.pkl differ diff --git a/test/expect/ModelTester.test_mnasnet1_3_expect.pkl b/test/expect/ModelTester.test_mnasnet1_3_expect.pkl index 746a5788844..be443fd6cc3 100644 Binary files a/test/expect/ModelTester.test_mnasnet1_3_expect.pkl and b/test/expect/ModelTester.test_mnasnet1_3_expect.pkl differ diff --git a/test/expect/ModelTester.test_mobilenet_v2_expect.pkl b/test/expect/ModelTester.test_mobilenet_v2_expect.pkl index 42bfdc5c68f..c6a7a6ad303 100644 Binary files a/test/expect/ModelTester.test_mobilenet_v2_expect.pkl and b/test/expect/ModelTester.test_mobilenet_v2_expect.pkl differ diff --git a/test/expect/ModelTester.test_mobilenet_v3_large_expect.pkl b/test/expect/ModelTester.test_mobilenet_v3_large_expect.pkl index 9691daf18c7..709911e016f 100644 Binary files a/test/expect/ModelTester.test_mobilenet_v3_large_expect.pkl and b/test/expect/ModelTester.test_mobilenet_v3_large_expect.pkl differ diff --git a/test/expect/ModelTester.test_mobilenet_v3_small_expect.pkl b/test/expect/ModelTester.test_mobilenet_v3_small_expect.pkl index 5373739b53c..e82e37636f9 100644 Binary files a/test/expect/ModelTester.test_mobilenet_v3_small_expect.pkl and b/test/expect/ModelTester.test_mobilenet_v3_small_expect.pkl differ diff --git a/test/expect/ModelTester.test_regnet_x_16gf_expect.pkl b/test/expect/ModelTester.test_regnet_x_16gf_expect.pkl index e4c3f220ece..cd6df0128ef 100644 Binary files a/test/expect/ModelTester.test_regnet_x_16gf_expect.pkl and b/test/expect/ModelTester.test_regnet_x_16gf_expect.pkl differ diff --git a/test/expect/ModelTester.test_regnet_x_1_6gf_expect.pkl b/test/expect/ModelTester.test_regnet_x_1_6gf_expect.pkl index d9d3216aa57..d8e89f06146 100644 Binary files a/test/expect/ModelTester.test_regnet_x_1_6gf_expect.pkl and b/test/expect/ModelTester.test_regnet_x_1_6gf_expect.pkl differ diff --git a/test/expect/ModelTester.test_regnet_x_32gf_expect.pkl b/test/expect/ModelTester.test_regnet_x_32gf_expect.pkl index 071e514433f..57d3ea612bd 100644 Binary files a/test/expect/ModelTester.test_regnet_x_32gf_expect.pkl and b/test/expect/ModelTester.test_regnet_x_32gf_expect.pkl differ diff --git a/test/expect/ModelTester.test_regnet_x_3_2gf_expect.pkl b/test/expect/ModelTester.test_regnet_x_3_2gf_expect.pkl index bd745ed1f05..370f67b387b 100644 Binary files a/test/expect/ModelTester.test_regnet_x_3_2gf_expect.pkl and b/test/expect/ModelTester.test_regnet_x_3_2gf_expect.pkl differ diff --git a/test/expect/ModelTester.test_regnet_x_400mf_expect.pkl b/test/expect/ModelTester.test_regnet_x_400mf_expect.pkl index f3488deb287..32476e5456f 100644 Binary files a/test/expect/ModelTester.test_regnet_x_400mf_expect.pkl and b/test/expect/ModelTester.test_regnet_x_400mf_expect.pkl differ diff --git a/test/expect/ModelTester.test_regnet_x_800mf_expect.pkl b/test/expect/ModelTester.test_regnet_x_800mf_expect.pkl index efb71925b28..00e8f177df0 100644 Binary files a/test/expect/ModelTester.test_regnet_x_800mf_expect.pkl and b/test/expect/ModelTester.test_regnet_x_800mf_expect.pkl differ diff --git a/test/expect/ModelTester.test_regnet_x_8gf_expect.pkl b/test/expect/ModelTester.test_regnet_x_8gf_expect.pkl index 1a2dbabbd1c..28d5fae9206 100644 Binary files a/test/expect/ModelTester.test_regnet_x_8gf_expect.pkl and b/test/expect/ModelTester.test_regnet_x_8gf_expect.pkl differ diff --git a/test/expect/ModelTester.test_regnet_y_128gf_expect.pkl b/test/expect/ModelTester.test_regnet_y_128gf_expect.pkl index 83a476b8ad0..02d6788e1fc 100644 Binary files a/test/expect/ModelTester.test_regnet_y_128gf_expect.pkl and b/test/expect/ModelTester.test_regnet_y_128gf_expect.pkl differ diff --git a/test/expect/ModelTester.test_regnet_y_16gf_expect.pkl b/test/expect/ModelTester.test_regnet_y_16gf_expect.pkl index 520452985ba..0f3c4d61bab 100644 Binary files a/test/expect/ModelTester.test_regnet_y_16gf_expect.pkl and b/test/expect/ModelTester.test_regnet_y_16gf_expect.pkl differ diff --git a/test/expect/ModelTester.test_regnet_y_1_6gf_expect.pkl b/test/expect/ModelTester.test_regnet_y_1_6gf_expect.pkl index 633c2d2f238..1005358014e 100644 Binary files a/test/expect/ModelTester.test_regnet_y_1_6gf_expect.pkl and b/test/expect/ModelTester.test_regnet_y_1_6gf_expect.pkl differ diff --git a/test/expect/ModelTester.test_regnet_y_32gf_expect.pkl b/test/expect/ModelTester.test_regnet_y_32gf_expect.pkl index 68a59090646..74f447eb6a0 100644 Binary files a/test/expect/ModelTester.test_regnet_y_32gf_expect.pkl and b/test/expect/ModelTester.test_regnet_y_32gf_expect.pkl differ diff --git a/test/expect/ModelTester.test_regnet_y_3_2gf_expect.pkl b/test/expect/ModelTester.test_regnet_y_3_2gf_expect.pkl index c2daa7514d3..35e6e639ac8 100644 Binary files a/test/expect/ModelTester.test_regnet_y_3_2gf_expect.pkl and b/test/expect/ModelTester.test_regnet_y_3_2gf_expect.pkl differ diff --git a/test/expect/ModelTester.test_regnet_y_400mf_expect.pkl b/test/expect/ModelTester.test_regnet_y_400mf_expect.pkl index 2082c49cab9..7777dad23e4 100644 Binary files a/test/expect/ModelTester.test_regnet_y_400mf_expect.pkl and b/test/expect/ModelTester.test_regnet_y_400mf_expect.pkl differ diff --git a/test/expect/ModelTester.test_regnet_y_800mf_expect.pkl b/test/expect/ModelTester.test_regnet_y_800mf_expect.pkl index a27eefdfd29..53b51035f7a 100644 Binary files a/test/expect/ModelTester.test_regnet_y_800mf_expect.pkl and b/test/expect/ModelTester.test_regnet_y_800mf_expect.pkl differ diff --git a/test/expect/ModelTester.test_regnet_y_8gf_expect.pkl b/test/expect/ModelTester.test_regnet_y_8gf_expect.pkl index aa12345882f..e105c29ed0d 100644 Binary files a/test/expect/ModelTester.test_regnet_y_8gf_expect.pkl and b/test/expect/ModelTester.test_regnet_y_8gf_expect.pkl differ diff --git a/test/expect/ModelTester.test_resnet101_expect.pkl b/test/expect/ModelTester.test_resnet101_expect.pkl index 284aa92b2df..85d1b0acd5c 100644 Binary files a/test/expect/ModelTester.test_resnet101_expect.pkl and b/test/expect/ModelTester.test_resnet101_expect.pkl differ diff --git a/test/expect/ModelTester.test_resnet152_expect.pkl b/test/expect/ModelTester.test_resnet152_expect.pkl index 708f554fefa..5f01f939939 100644 Binary files a/test/expect/ModelTester.test_resnet152_expect.pkl and b/test/expect/ModelTester.test_resnet152_expect.pkl differ diff --git a/test/expect/ModelTester.test_resnet18_expect.pkl b/test/expect/ModelTester.test_resnet18_expect.pkl index 6dc83a0606f..28c5bc52296 100644 Binary files a/test/expect/ModelTester.test_resnet18_expect.pkl and b/test/expect/ModelTester.test_resnet18_expect.pkl differ diff --git a/test/expect/ModelTester.test_resnet34_expect.pkl b/test/expect/ModelTester.test_resnet34_expect.pkl index 536075bd40e..f172e518c55 100644 Binary files a/test/expect/ModelTester.test_resnet34_expect.pkl and b/test/expect/ModelTester.test_resnet34_expect.pkl differ diff --git a/test/expect/ModelTester.test_resnet50_expect.pkl b/test/expect/ModelTester.test_resnet50_expect.pkl index 0428c5188df..40560182eea 100644 Binary files a/test/expect/ModelTester.test_resnet50_expect.pkl and b/test/expect/ModelTester.test_resnet50_expect.pkl differ diff --git a/test/expect/ModelTester.test_resnext101_32x8d_expect.pkl b/test/expect/ModelTester.test_resnext101_32x8d_expect.pkl index f8ea2c0e67c..b86988cd1d5 100644 Binary files a/test/expect/ModelTester.test_resnext101_32x8d_expect.pkl and b/test/expect/ModelTester.test_resnext101_32x8d_expect.pkl differ diff --git a/test/expect/ModelTester.test_resnext101_64x4d_expect.pkl b/test/expect/ModelTester.test_resnext101_64x4d_expect.pkl index baf3c135f16..09a6ee45c08 100644 Binary files a/test/expect/ModelTester.test_resnext101_64x4d_expect.pkl and b/test/expect/ModelTester.test_resnext101_64x4d_expect.pkl differ diff --git a/test/expect/ModelTester.test_resnext50_32x4d_expect.pkl b/test/expect/ModelTester.test_resnext50_32x4d_expect.pkl index 4e5dc89c496..e561016ceb4 100644 Binary files a/test/expect/ModelTester.test_resnext50_32x4d_expect.pkl and b/test/expect/ModelTester.test_resnext50_32x4d_expect.pkl differ diff --git a/test/expect/ModelTester.test_shufflenet_v2_x0_5_expect.pkl b/test/expect/ModelTester.test_shufflenet_v2_x0_5_expect.pkl index 72af3d712ed..46687ba6ce0 100644 Binary files a/test/expect/ModelTester.test_shufflenet_v2_x0_5_expect.pkl and b/test/expect/ModelTester.test_shufflenet_v2_x0_5_expect.pkl differ diff --git a/test/expect/ModelTester.test_shufflenet_v2_x1_0_expect.pkl b/test/expect/ModelTester.test_shufflenet_v2_x1_0_expect.pkl index 6feab9857bb..afad36142c9 100644 Binary files a/test/expect/ModelTester.test_shufflenet_v2_x1_0_expect.pkl and b/test/expect/ModelTester.test_shufflenet_v2_x1_0_expect.pkl differ diff --git a/test/expect/ModelTester.test_shufflenet_v2_x1_5_expect.pkl b/test/expect/ModelTester.test_shufflenet_v2_x1_5_expect.pkl index fc36135789f..808b8279822 100644 Binary files a/test/expect/ModelTester.test_shufflenet_v2_x1_5_expect.pkl and b/test/expect/ModelTester.test_shufflenet_v2_x1_5_expect.pkl differ diff --git a/test/expect/ModelTester.test_shufflenet_v2_x2_0_expect.pkl b/test/expect/ModelTester.test_shufflenet_v2_x2_0_expect.pkl index 1af1049efbc..afea9d21314 100644 Binary files a/test/expect/ModelTester.test_shufflenet_v2_x2_0_expect.pkl and b/test/expect/ModelTester.test_shufflenet_v2_x2_0_expect.pkl differ diff --git a/test/expect/ModelTester.test_squeezenet1_0_expect.pkl b/test/expect/ModelTester.test_squeezenet1_0_expect.pkl index 12fccaf3f2f..e014ac10267 100644 Binary files a/test/expect/ModelTester.test_squeezenet1_0_expect.pkl and b/test/expect/ModelTester.test_squeezenet1_0_expect.pkl differ diff --git a/test/expect/ModelTester.test_squeezenet1_1_expect.pkl b/test/expect/ModelTester.test_squeezenet1_1_expect.pkl index a560181525e..2805e548ebb 100644 Binary files a/test/expect/ModelTester.test_squeezenet1_1_expect.pkl and b/test/expect/ModelTester.test_squeezenet1_1_expect.pkl differ diff --git a/test/expect/ModelTester.test_swin_b_expect.pkl b/test/expect/ModelTester.test_swin_b_expect.pkl index 2ae40af400f..550018e9dd4 100644 Binary files a/test/expect/ModelTester.test_swin_b_expect.pkl and b/test/expect/ModelTester.test_swin_b_expect.pkl differ diff --git a/test/expect/ModelTester.test_swin_s_expect.pkl b/test/expect/ModelTester.test_swin_s_expect.pkl index b8b31bab413..747050c7b74 100644 Binary files a/test/expect/ModelTester.test_swin_s_expect.pkl and b/test/expect/ModelTester.test_swin_s_expect.pkl differ diff --git a/test/expect/ModelTester.test_swin_t_expect.pkl b/test/expect/ModelTester.test_swin_t_expect.pkl index 8fb20630cc3..0686b26a460 100644 Binary files a/test/expect/ModelTester.test_swin_t_expect.pkl and b/test/expect/ModelTester.test_swin_t_expect.pkl differ diff --git a/test/expect/ModelTester.test_swin_v2_b_expect.pkl b/test/expect/ModelTester.test_swin_v2_b_expect.pkl index 5b2be51a2a9..27bd81c384a 100644 Binary files a/test/expect/ModelTester.test_swin_v2_b_expect.pkl and b/test/expect/ModelTester.test_swin_v2_b_expect.pkl differ diff --git a/test/expect/ModelTester.test_swin_v2_s_expect.pkl b/test/expect/ModelTester.test_swin_v2_s_expect.pkl index fe313b0c284..52b9bc97e5a 100644 Binary files a/test/expect/ModelTester.test_swin_v2_s_expect.pkl and b/test/expect/ModelTester.test_swin_v2_s_expect.pkl differ diff --git a/test/expect/ModelTester.test_swin_v2_t_expect.pkl b/test/expect/ModelTester.test_swin_v2_t_expect.pkl index f3752af6265..c6563d10ed8 100644 Binary files a/test/expect/ModelTester.test_swin_v2_t_expect.pkl and b/test/expect/ModelTester.test_swin_v2_t_expect.pkl differ diff --git a/test/expect/ModelTester.test_vgg11_bn_expect.pkl b/test/expect/ModelTester.test_vgg11_bn_expect.pkl index ba3db474ae2..703b99b7290 100644 Binary files a/test/expect/ModelTester.test_vgg11_bn_expect.pkl and b/test/expect/ModelTester.test_vgg11_bn_expect.pkl differ diff --git a/test/expect/ModelTester.test_vgg11_expect.pkl b/test/expect/ModelTester.test_vgg11_expect.pkl index d7a7f3da7e4..38f5cde306b 100644 Binary files a/test/expect/ModelTester.test_vgg11_expect.pkl and b/test/expect/ModelTester.test_vgg11_expect.pkl differ diff --git a/test/expect/ModelTester.test_vgg13_bn_expect.pkl b/test/expect/ModelTester.test_vgg13_bn_expect.pkl index e872729eba3..843c77c0b95 100644 Binary files a/test/expect/ModelTester.test_vgg13_bn_expect.pkl and b/test/expect/ModelTester.test_vgg13_bn_expect.pkl differ diff --git a/test/expect/ModelTester.test_vgg13_expect.pkl b/test/expect/ModelTester.test_vgg13_expect.pkl index ce387c2ffb7..5ee7e47c2c2 100644 Binary files a/test/expect/ModelTester.test_vgg13_expect.pkl and b/test/expect/ModelTester.test_vgg13_expect.pkl differ diff --git a/test/expect/ModelTester.test_vgg16_bn_expect.pkl b/test/expect/ModelTester.test_vgg16_bn_expect.pkl index 30cd9c983f6..66262ba6edb 100644 Binary files a/test/expect/ModelTester.test_vgg16_bn_expect.pkl and b/test/expect/ModelTester.test_vgg16_bn_expect.pkl differ diff --git a/test/expect/ModelTester.test_vgg16_expect.pkl b/test/expect/ModelTester.test_vgg16_expect.pkl index 0e2e4fe0c01..bc9366d1ea3 100644 Binary files a/test/expect/ModelTester.test_vgg16_expect.pkl and b/test/expect/ModelTester.test_vgg16_expect.pkl differ diff --git a/test/expect/ModelTester.test_vgg19_bn_expect.pkl b/test/expect/ModelTester.test_vgg19_bn_expect.pkl index c20b7a22247..8eee99fa9ec 100644 Binary files a/test/expect/ModelTester.test_vgg19_bn_expect.pkl and b/test/expect/ModelTester.test_vgg19_bn_expect.pkl differ diff --git a/test/expect/ModelTester.test_vgg19_expect.pkl b/test/expect/ModelTester.test_vgg19_expect.pkl index 6b42831a1c6..ab30567f596 100644 Binary files a/test/expect/ModelTester.test_vgg19_expect.pkl and b/test/expect/ModelTester.test_vgg19_expect.pkl differ diff --git a/test/expect/ModelTester.test_vit_b_16_expect.pkl b/test/expect/ModelTester.test_vit_b_16_expect.pkl index 1f846beb6a0..278d16da5f8 100644 Binary files a/test/expect/ModelTester.test_vit_b_16_expect.pkl and b/test/expect/ModelTester.test_vit_b_16_expect.pkl differ diff --git a/test/expect/ModelTester.test_vit_b_32_expect.pkl b/test/expect/ModelTester.test_vit_b_32_expect.pkl index 1f846beb6a0..18c5053a42d 100644 Binary files a/test/expect/ModelTester.test_vit_b_32_expect.pkl and b/test/expect/ModelTester.test_vit_b_32_expect.pkl differ diff --git a/test/expect/ModelTester.test_vit_h_14_expect.pkl b/test/expect/ModelTester.test_vit_h_14_expect.pkl index 1f846beb6a0..6c4241c5bf1 100644 Binary files a/test/expect/ModelTester.test_vit_h_14_expect.pkl and b/test/expect/ModelTester.test_vit_h_14_expect.pkl differ diff --git a/test/expect/ModelTester.test_vit_l_16_expect.pkl b/test/expect/ModelTester.test_vit_l_16_expect.pkl index 1f846beb6a0..1b3242e818a 100644 Binary files a/test/expect/ModelTester.test_vit_l_16_expect.pkl and b/test/expect/ModelTester.test_vit_l_16_expect.pkl differ diff --git a/test/expect/ModelTester.test_vit_l_32_expect.pkl b/test/expect/ModelTester.test_vit_l_32_expect.pkl index 1f846beb6a0..ad5a3d56157 100644 Binary files a/test/expect/ModelTester.test_vit_l_32_expect.pkl and b/test/expect/ModelTester.test_vit_l_32_expect.pkl differ diff --git a/test/expect/ModelTester.test_wide_resnet101_2_expect.pkl b/test/expect/ModelTester.test_wide_resnet101_2_expect.pkl index 28b9312e9c8..13e255d2f00 100644 Binary files a/test/expect/ModelTester.test_wide_resnet101_2_expect.pkl and b/test/expect/ModelTester.test_wide_resnet101_2_expect.pkl differ diff --git a/test/expect/ModelTester.test_wide_resnet50_2_expect.pkl b/test/expect/ModelTester.test_wide_resnet50_2_expect.pkl index 09bbb39a69c..fe6b9744e90 100644 Binary files a/test/expect/ModelTester.test_wide_resnet50_2_expect.pkl and b/test/expect/ModelTester.test_wide_resnet50_2_expect.pkl differ diff --git a/test/test_models.py b/test/test_models.py index d4dab1bbc9d..165ac5d813b 100644 --- a/test/test_models.py +++ b/test/test_models.py @@ -18,7 +18,7 @@ from common_utils import cpu_and_gpu, freeze_rng_state, map_nested_tensor_object, needs_cuda, set_rng_seed from PIL import Image from torchvision import models, transforms -from torchvision.models import get_model_builder, list_models +from torchvision.models import get_model_builder, get_model_weights, get_weight, list_models ACCEPT = os.getenv("EXPECTTEST_ACCEPT", "0") == "1" @@ -29,20 +29,8 @@ def list_model_fns(module): return [get_model_builder(name) for name in list_models(module)] -def _get_image(input_shape, real_image, device): - """This routine loads a real or random image based on `real_image` argument. - Currently, the real image is utilized for the following list of models: - - `retinanet_resnet50_fpn`, - - `retinanet_resnet50_fpn_v2`, - - `keypointrcnn_resnet50_fpn`, - - `fasterrcnn_resnet50_fpn`, - - `fasterrcnn_resnet50_fpn_v2`, - - `fcos_resnet50_fpn`, - - `maskrcnn_resnet50_fpn`, - - `maskrcnn_resnet50_fpn_v2`, - in `test_classification_model` and `test_detection_model`. - To do so, a keyword argument `real_image` was added to the abovelisted models in `_model_params` - """ +def _get_image(input_shape, real_image, device, weights=None, dtype=None): + """This routine loads a real or random image based on `real_image` argument.""" if real_image: # TODO: Maybe unify file discovery logic with test_image.py GRACE_HOPPER = os.path.join( @@ -51,19 +39,26 @@ def _get_image(input_shape, real_image, device): img = Image.open(GRACE_HOPPER) - original_width, original_height = img.size - - # make the image square - img = img.crop((0, 0, original_width, original_width)) - img = img.resize(input_shape[1:3]) + if weights is None: + original_width, original_height = img.size + # make the image square + img = img.crop((0, 0, original_width, original_width)) + img = img.resize(input_shape[-2:]) - convert_tensor = transforms.ToTensor() - image = convert_tensor(img) + convert_tensor = transforms.ToTensor() + image = convert_tensor(img) + else: + H, W = input_shape[-2:] + min_side = min(H, W) + preprocess = weights.transforms(resize_size=min_side, crop_size=min_side) + image = preprocess(img) + if len(input_shape) > len(image.size()): + image = image.unsqueeze(0) assert tuple(image.size()) == input_shape - return image.to(device=device) + return image.to(device=device, dtype=dtype) # RNG always on CPU, to ensure x in cuda tests is bitwise identical to x in cpu tests - return torch.rand(input_shape).to(device=device) + return torch.rand(input_shape).to(device=device, dtype=dtype) @pytest.fixture @@ -195,7 +190,7 @@ def _check_fx_compatible(model, inputs, eager_out=None): eager_out = model(inputs) with torch.no_grad(), freeze_rng_state(): fx_out = model_fx(inputs) - torch.testing.assert_close(eager_out, fx_out) + torch.testing.assert_close(eager_out, fx_out, atol=5e-5, rtol=5e-5) def _check_input_backprop(model, inputs): @@ -278,11 +273,15 @@ def _check_input_backprop(model, inputs): # tests under test_quantized_classification_model will be skipped for the following models. quantized_flaky_models = ("inception_v3", "resnet50") +# The tests for the following detection models are flaky due to precision of float32 +# we will do the test in float64 for these models +detection_flaky_models = ("keypointrcnn_resnet50_fpn", "maskrcnn_resnet50_fpn_v2") + # The following contains configuration parameters for all models which are used by # the _test_*_model methods. _model_params = { - "inception_v3": {"input_shape": (1, 3, 299, 299), "init_weights": True}, + "inception_v3": {"input_shape": (1, 3, 299, 299)}, "retinanet_resnet50_fpn": { "num_classes": 20, "score_thresh": 0.01, @@ -354,6 +353,7 @@ def _check_input_backprop(model, inputs): "vit_h_14": { "image_size": 56, "input_shape": (1, 3, 56, 56), + "weight_name": None, }, "mvit_v1_b": { "input_shape": (1, 3, 16, 224, 224), @@ -364,7 +364,8 @@ def _check_input_backprop(model, inputs): "s3d": { "input_shape": (1, 3, 16, 224, 224), }, - "googlenet": {"init_weights": True}, + "regnet_y_128gf": {"weight_name": "IMAGENET1K_SWAG_LINEAR_V1"}, + "vitc_b_16": {"weight_name": None}, } # speeding up slow models: slow_models = [ @@ -390,7 +391,7 @@ def _check_input_backprop(model, inputs): "swin_v2_b", ] for m in slow_models: - _model_params[m] = {"input_shape": (1, 3, 64, 64)} + _model_params[m] = dict(_model_params.get(m, dict()), **{"input_shape": (1, 3, 64, 64)}) # skip big models to reduce memory usage on CI test. We can exclude combinations of (platform-system, device). @@ -648,6 +649,7 @@ def test_generalizedrcnn_transform_repr(): def vitc_b_16(**kwargs: Any): + kwargs.pop("weights", None) return models.VisionTransformer( image_size=224, patch_size=16, @@ -671,33 +673,46 @@ def test_vitc_models(model_fn, dev): def test_classification_model(model_fn, dev): set_rng_seed(0) defaults = { - "num_classes": 50, + "num_classes": 1000, "input_shape": (1, 3, 224, 224), + "num_classes_to_check": 50, + "real_image": True, } model_name = model_fn.__name__ if SKIP_BIG_MODEL and is_skippable(model_name, dev): pytest.skip("Skipped to reduce memory usage. Set env var SKIP_BIG_MODEL=0 to enable test for this model") kwargs = {**defaults, **_model_params.get(model_name, {})} num_classes = kwargs.get("num_classes") + num_classes_to_check = kwargs.pop("num_classes_to_check") input_shape = kwargs.pop("input_shape") real_image = kwargs.pop("real_image", False) + weight_name = kwargs.pop("weight_name", "IMAGENET1K_V1") + weight = None + if weight_name is not None: + weight_enum = get_model_weights(model_name) + weight = get_weight(f"{weight_enum.__name__}.{weight_name}") - model = model_fn(**kwargs) + model = model_fn(weights=weight, **kwargs) model.eval().to(device=dev) - x = _get_image(input_shape=input_shape, real_image=real_image, device=dev) - out = model(x) - _assert_expected(out.cpu(), model_name, prec=1e-3) + x = _get_image(input_shape=input_shape, real_image=real_image, device=dev, weights=weight) + with torch.no_grad(), freeze_rng_state(): + out = model(x) + expect_out = out[:, :num_classes_to_check] + _assert_expected(expect_out.cpu(), model_name, prec=3e-2) assert out.shape[-1] == num_classes + assert expect_out.shape[-1] == num_classes_to_check _check_jit_scriptable(model, (x,), unwrapper=script_model_unwrapper.get(model_name, None), eager_out=out) _check_fx_compatible(model, x, eager_out=out) if dev == "cuda": - with torch.cuda.amp.autocast(): + with torch.cuda.amp.autocast(), torch.no_grad(), freeze_rng_state(): + model.to(x.device) out = model(x) + expect_out = out[:, :num_classes_to_check] # See autocast_flaky_numerics comment at top of file. if model_name not in autocast_flaky_numerics: - _assert_expected(out.cpu(), model_name, prec=0.1) - assert out.shape[-1] == 50 + _assert_expected(expect_out.cpu(), model_name, prec=0.1) + assert expect_out.shape[-1] == num_classes_to_check _check_input_backprop(model, x) @@ -777,13 +792,17 @@ def test_detection_model(model_fn, dev): "input_shape": (3, 300, 300), } model_name = model_fn.__name__ + if model_name in detection_flaky_models: + dtype = torch.float64 + else: + dtype = torch.get_default_dtype() kwargs = {**defaults, **_model_params.get(model_name, {})} input_shape = kwargs.pop("input_shape") real_image = kwargs.pop("real_image", False) model = model_fn(**kwargs) - model.eval().to(device=dev) - x = _get_image(input_shape=input_shape, real_image=real_image, device=dev) + model.eval().to(device=dev, dtype=dtype) + x = _get_image(input_shape=input_shape, real_image=real_image, device=dev, dtype=dtype) model_input = [x] with torch.no_grad(), freeze_rng_state(): out = model(model_input) @@ -818,7 +837,7 @@ def compute_mean_std(tensor): return {"mean": mean, "std": std} output = map_nested_tensor_object(out, tensor_map_fn=compact) - prec = 0.01 + prec = 3e-2 try: # We first try to assert the entire output if possible. This is not # only the best way to assert results but also handles the cases @@ -917,7 +936,7 @@ def test_video_model(model_fn, dev): # RNG always on CPU, to ensure x in cuda tests is bitwise identical to x in cpu tests x = torch.rand(input_shape).to(device=dev) out = model(x) - _assert_expected(out.cpu(), model_name, prec=1e-5) + _assert_expected(out.cpu(), model_name, prec=3e-3) assert out.shape[-1] == num_classes _check_jit_scriptable(model, (x,), unwrapper=script_model_unwrapper.get(model_name, None), eager_out=out) _check_fx_compatible(model, x, eager_out=out)