Skip to content

Commit bc96afb

Browse files
feat(model_registry): update focoos version and latency metrics and fix stdc config
1 parent c670049 commit bc96afb

File tree

6 files changed

+135
-25
lines changed

6 files changed

+135
-25
lines changed

focoos/model_registry/fai-cls-m-coco.json

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,38 @@
376376
"classification/Recall-zebra": 95.2941
377377
},
378378
"focoos_version": "0.20.2",
379-
"latency": [],
379+
"latency": [
380+
{
381+
"fps": 588,
382+
"engine": "torchscript",
383+
"min": 1.568,
384+
"max": 2.098,
385+
"mean": 1.699,
386+
"std": 0.096,
387+
"im_size": 224,
388+
"device": "Tesla T4"
389+
},
390+
{
391+
"fps": 568,
392+
"engine": "onnx.CUDAExecutionProvider",
393+
"min": 1.733,
394+
"max": 1.834,
395+
"mean": 1.76,
396+
"std": 0.021,
397+
"im_size": 224,
398+
"device": "Tesla T4"
399+
},
400+
{
401+
"fps": 1332,
402+
"engine": "onnx.TensorrtExecutionProvider",
403+
"min": 0.739,
404+
"max": 0.784,
405+
"mean": 0.75,
406+
"std": 0.01,
407+
"im_size": 224,
408+
"device": "Tesla T4"
409+
}
410+
],
380411
"training_info": null,
381412
"updated_at": null
382413
}

focoos/model_registry/fai-cls-n-coco.json

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,29 @@
375375
"classification/Recall-zebra": 91.76470947265625
376376
},
377377
"focoos_version": "0.20.2",
378-
"latency": [],
378+
"latency": [
379+
{
380+
"fps": 851,
381+
"engine": "torchscript",
382+
"min": 1.051,
383+
"max": 1.824,
384+
"mean": 1.175,
385+
"std": 0.146,
386+
"im_size": 224,
387+
"device": "Tesla T4"
388+
},
389+
{
390+
"fps": 1225,
391+
"engine": "onnx.CUDAExecutionProvider",
392+
"min": 0.789,
393+
"max": 1.072,
394+
"mean": 0.816,
395+
"std": 0.044,
396+
"im_size": 224,
397+
"device": "Tesla T4"
398+
},
399+
{"fps": 2170, "engine": "onnx.TensorrtExecutionProvider", "min": 0.444, "max": 0.627, "mean": 0.461, "std": 0.029, "im_size": 224, "device": "Tesla T4"}
400+
],
379401
"training_info": null,
380402
"updated_at": null
381403
}

focoos/model_registry/fai-cls-s-coco.json

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,38 @@
375375
"classification/Recall-zebra": 91.7647
376376
},
377377
"focoos_version": "0.20.2",
378-
"latency": [],
378+
"latency": [
379+
{
380+
"fps": 860,
381+
"engine": "torchscript",
382+
"min": 1.091,
383+
"max": 1.3,
384+
"mean": 1.163,
385+
"std": 0.047,
386+
"im_size": 224,
387+
"device": "Tesla T4"
388+
},
389+
{
390+
"fps": 932,
391+
"engine": "onnx.CUDAExecutionProvider",
392+
"min": 1.034,
393+
"max": 1.303,
394+
"mean": 1.072,
395+
"std": 0.038,
396+
"im_size": 224,
397+
"device": "Tesla T4"
398+
},
399+
{
400+
"fps": 1819,
401+
"engine": "onnx.TensorrtExecutionProvider",
402+
"min": 0.53,
403+
"max": 0.606,
404+
"mean": 0.549,
405+
"std": 0.017,
406+
"im_size": 224,
407+
"device": "Tesla T4"
408+
}
409+
],
379410
"training_info": null,
380411
"updated_at": null
381412
}

focoos/nn/backbone/stdc.py

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -189,27 +189,46 @@ class STDCConfig(BackboneConfig):
189189
class STDC(BaseBackbone):
190190
def __init__(self, config: STDCConfig):
191191
super().__init__(config)
192-
193-
if config.size == "small":
194-
config.backbone_url = "https://public.focoos.ai/pretrained_models/backbones/stdc_small.pth"
195-
layers = [2, 2, 2]
196-
base = 64
197-
block_num = 4
198-
block_type = "cat"
199-
elif config.size == "large":
200-
config.backbone_url = "https://public.focoos.ai/pretrained_models/backbones/stdc_large.pth"
201-
layers = [4, 5, 3]
202-
base = 64
203-
block_num = 4
204-
block_type = "cat"
205-
elif config.size == "nano":
206-
config.backbone_url = "https://public.focoos.ai/pretrained_models/backbones/stdc_small.pth"
207-
layers = [2, 2, 2]
208-
base = 32
209-
block_num = 4
210-
block_type = "cat"
192+
if config.size is not None:
193+
if config.size == "small":
194+
config.backbone_url = "https://public.focoos.ai/pretrained_models/backbones/stdc_small.pth"
195+
layers = [2, 2, 2]
196+
base = 64
197+
block_num = 4
198+
block_type = "cat"
199+
elif config.size == "large":
200+
config.backbone_url = "https://public.focoos.ai/pretrained_models/backbones/stdc_large.pth"
201+
layers = [4, 5, 3]
202+
base = 64
203+
block_num = 4
204+
block_type = "cat"
205+
elif config.size == "nano":
206+
config.backbone_url = "https://public.focoos.ai/pretrained_models/backbones/stdc_nano.pth"
207+
layers = [2, 2, 2]
208+
base = 32
209+
block_num = 4
210+
block_type = "cat"
211+
else:
212+
raise ValueError(f"Invalid size: {config.size}. The size should be small, large or nano.")
213+
if config.layers and layers != config.layers:
214+
logger.warning(f"Layers must be {layers} if size is {config.size}, provided {config.layers} not used.")
215+
if config.base and base != config.base:
216+
logger.warning(f"Base must be {base} if size is {config.size}, provided {config.base} not used.")
217+
if config.block_num and block_num != config.block_num:
218+
logger.warning(
219+
f"Block num must be {block_num} if size is {config.size}, provided {config.block_num} not used."
220+
)
221+
if config.block_type and block_type != config.block_type:
222+
logger.warning(
223+
f"Block type must be {block_type} if size is {config.size}, provided {config.block_type} not used."
224+
)
211225
else:
212-
raise ValueError(f"Invalid size: {config.size}. The size should be small, large or nano.")
226+
if not config.layers or not config.base or not config.block_num or not config.block_type:
227+
raise ValueError("Layers, base, block_num and block_type must be provided if size is not provided.")
228+
layers = config.layers
229+
base = config.base
230+
block_num = config.block_num
231+
block_type = config.block_type
213232

214233
if block_type == "cat":
215234
block = CatBottleneck

tests/test_backbone.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,16 @@
66
from focoos.nn.backbone.build import load_backbone
77

88
# List of all backbone types with their minimum required config
9+
10+
stdc_configs_size = [
11+
{"model_type": "stdc", "use_pretrained": True, "size": size} for size in ["nano", "small", "large"]
12+
]
13+
stdc_configs_base = [
14+
{"model_type": "stdc", "use_pretrained": True, "base": 64, "layers": [2, 2, 2], "block_num": 4, "block_type": "cat"}
15+
]
916
BACKBONE_CONFIGS = {
1017
"resnet": [{"model_type": "resnet", "use_pretrained": False, "depth": 18}],
11-
"stdc": [{"model_type": "stdc", "use_pretrained": False, "base": 64, "layers": [4, 5, 3]}],
18+
"stdc": stdc_configs_size + stdc_configs_base,
1219
"swin": [{"model_type": "swin", "use_pretrained": False}],
1320
"mobilenet_v2": [{"model_type": "mobilenet_v2", "use_pretrained": False}],
1421
"convnextv2": [{"model_type": "convnextv2", "use_pretrained": False}],

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)