|
17 | 17 | # transformer models don't support many of the spatial / feature based model functionalities |
18 | 18 | NON_STD_FILTERS = [ |
19 | 19 | 'vit_*', 'tnt_*', 'pit_*', 'swin_*', 'coat_*', 'cait_*', '*mixer_*', 'gmlp_*', 'resmlp_*', 'twins_*', |
20 | | - 'convit_*', 'levit*', 'visformer*', 'deit*', 'jx_nest_*', 'nest_*', 'xcit_*'] |
| 20 | + 'convit_*', 'levit*', 'visformer*', 'deit*', 'jx_nest_*', 'nest_*', 'xcit_*', 'crossvit_*', 'beit_*'] |
21 | 21 | NUM_NON_STD = len(NON_STD_FILTERS) |
22 | 22 |
|
23 | 23 | # exclude models that cause specific test failures |
@@ -188,23 +188,22 @@ def test_model_default_cfgs_non_std(model_name, batch_size): |
188 | 188 |
|
189 | 189 | input_tensor = torch.randn((batch_size, *input_size)) |
190 | 190 |
|
191 | | - # test forward_features (always unpooled) |
192 | 191 | outputs = model.forward_features(input_tensor) |
193 | | - if isinstance(outputs, tuple): |
| 192 | + if isinstance(outputs, (tuple, list)): |
194 | 193 | outputs = outputs[0] |
195 | 194 | assert outputs.shape[1] == model.num_features |
196 | 195 |
|
197 | 196 | # test forward after deleting the classifier, output should be poooled, size(-1) == model.num_features |
198 | 197 | model.reset_classifier(0) |
199 | 198 | outputs = model.forward(input_tensor) |
200 | | - if isinstance(outputs, tuple): |
| 199 | + if isinstance(outputs, (tuple, list)): |
201 | 200 | outputs = outputs[0] |
202 | 201 | assert len(outputs.shape) == 2 |
203 | 202 | assert outputs.shape[1] == model.num_features |
204 | 203 |
|
205 | 204 | model = create_model(model_name, pretrained=False, num_classes=0).eval() |
206 | 205 | outputs = model.forward(input_tensor) |
207 | | - if isinstance(outputs, tuple): |
| 206 | + if isinstance(outputs, (tuple, list)): |
208 | 207 | outputs = outputs[0] |
209 | 208 | assert len(outputs.shape) == 2 |
210 | 209 | assert outputs.shape[1] == model.num_features |
|
0 commit comments