psiddh's picture
Add ExecuTorch WebGPU program for dfine-small
c5a149d verified
Raw History Blame Contribute Delete
4.02 kB
{
"model": "dfine_s_coco",
"upstream": {
"model": "D-FINE-S (COCO), HF transformers port",
"weights": {
"repo": "ustc-community/dfine-small-coco",
"revision": "f79e65b5fbb33ceb9d3ebba042955d7410c608f8",
"file": "model.safetensors",
"sha256": "a144baff3a27bfd538fe37b11fa8d4fca5744b8c054b5301e7c699a1379cd18f",
"verified_against": {
"repo": "Peterande/D-FINE",
"revision": "19214e91f5ce4c1e609022c38b1fc953c47404e7",
"file": "dfine_s_coco.pth",
"sha256": "48a6c8cc43eb57186843f752e2e8461ddd3326e0d3c575e71e6e960844683e89",
"result": "all 764 tensors bit-identical (verify_official.py)"
}
},
"license": "Apache-2.0"
},
"versions": {
"python": "3.12.15+meta",
"torch": "2.14.1+cpu",
"torchao": "0.18.0+cpu",
"executorch": "1.5.1+cpu",
"executorch_git": "3b60683923245cf472b7323426920e15623ba361",
"transformers": "5.19.0",
"huggingface_hub": "2.2.0"
},
"export": {
"api": "torch.export.export(strict=False) -> to_edge_transform_and_lower(partitioner=[WebGPUPartitioner()]) -> to_executorch()",
"partitioner": "executorch.backends.webgpu.partitioner.WebGPUPartitioner() (default compile options; wraps VulkanPartitioner)",
"inputs": [
{
"shape": [
1,
3,
640,
640
],
"dtype": "float32",
"layout": "NCHW"
}
],
"outputs": [
{
"shape": [
1,
84,
300
],
"dtype": "float32"
}
],
"dtype": "float32",
"quantization": "none (fp32)",
"preprocessing_outside_graph": "RGB resize to 640x640 (letterbox also works), / 255; no mean/std",
"postprocessing_outside_graph": "output [1, 84, 300]: cx, cy, w, h (input px) + 80 sigmoid probs; threshold; NMS optional",
"rewrites": "see recipes/detector-dfine-small.py docstring and recipes/_detector.py"
},
"files": {
"dfine_s_coco_webgpu.pte": {
"bytes": 42260612,
"sha256": "96cc65f615dc2c79d1da80ef075b831fac8e39e8dcb58af9aff5bab154a4c4d6"
},
"dfine_s_coco_portable.pte": {
"bytes": 42299640,
"sha256": "f36da046a83ee72fe4083e61253e6ae5dc52d843ba38faaf73fb10ecd29da8ac",
"note": "CPU-only validation artifact (portable kernels, no delegate); not for release"
}
},
"graph": {
"non_delegated_kernels": {},
"delegates": [
{
"id": "VulkanBackend",
"ops": {
"et_vk.prepack.default": 603,
"aten.convolution.default": 99,
"aten.mul.Tensor": 281,
"aten.add.Tensor": 254,
"aten.relu.default": 48,
"aten.constant_pad_nd.default": 2,
"aten.max_pool2d_with_indices.default": 1,
"aten.cat.default": 66,
"aten.clone.default": 5,
"aten.view_copy.default": 110,
"aten.permute_copy.default": 37,
"aten.expand_copy.default": 8,
"aten.bmm.default": 11,
"aten._softmax.default": 11,
"aten.linear.default": 59,
"aten.native_layer_norm.default": 12,
"aten.squeeze_copy.dims": 33,
"aten.gelu.default": 1,
"aten.upsample_nearest2d.vec": 2,
"aten.sigmoid.default": 47,
"aten.split_with_sizes_copy.default": 7,
"aten.slice_copy.Tensor": 190,
"aten.sub.Tensor": 358,
"aten.gt.Scalar": 71,
"aten.where.self": 308,
"aten.lt.Scalar": 89,
"aten.ge.Scalar": 97,
"aten.sum.dim_IntList": 56,
"dim_order_ops._to_dim_order_copy.default": 71,
"aten.unsqueeze_copy.default": 6,
"aten.gather.default": 5,
"aten.div.Tensor": 25,
"aten.neg.default": 1,
"aten.le.Scalar": 4,
"aten.mean.dim": 1
},
"inputs": 1,
"outputs": 1
}
]
},
"command": "python recipes/detector-dfine-small.py --out out/detector-dfine-small --image photo.jpg"
}