dinov2-base-onnx
facebook/dinov2-base(์ปค๋ฐ f9e44c814b77203eaa57a6bdbbd535f21ede1415)์
pooler_output(์ต์ข
layernorm ๋ค CLS ํ ํฐ, 768)๋ง ๋ด๋ ONNX ๊ทธ๋ํ๋ค.
OpenArm SciEdu ๋ํ์ธต์ ๋ก์ปฌ ๋๋ญ์ ํ์ ๊ธฐ(leapshared/leaf_kind_dinov2_logreg)๊ฐ ์ด๋ค. torchยทtransformers๊ฐ ์๋ ๋ํ์ธต ์ปจํ ์ด๋์์ onnxruntime(CPU)์ผ๋ก ํน์ง์ ๋ธ๋ค.
์ ์ถ๋ ฅ
- ์
๋ ฅ
pixel_values: [N, 3, 224, 224] float32.AutoImageProcessor(facebook/dinov2-base)์ ์ฒ๋ฆฌ๋ฅผ ๋ง์น ๊ฐ์ด๋ค.- ์งง์ ๋ณ 256์ผ๋ก bicubic ์ค์ด๊ธฐ(antialias) โ ๊ฐ์ด๋ฐ 224 ์๋ฅด๊ธฐ โ /255 โ ImageNet mean/std, RGB
- ์ถ๋ ฅ
pooler_output: [N, 768] float32. N์ 1~64. - 224ร224 ์ ์ฉ์ด๋ค. ์์น ์๋ฒ ๋ฉ(37ร37 โ 16ร16 bicubic ๋ณด๊ฐ)์ torch๋ก ํ ๋ฒ ์ ํด ์์๋ก ๋ฃ์๋ค. ๊ทธ๋์ ๊ทธ๋ํ์ ๋ณด๊ฐ์ด ์๊ณ , ๋ค๋ฅธ ํฌ๊ธฐ๋ ๋ฐ์ง ์๋๋ค.
๋ง๋ ๋ฒ
leaf_kind_onnx.py export(์ด ์ ์ฅ์์ ์ฌ๋ณธ์ด ์๋ค. ์๋ณธ์LEAP-LAB-KUS/openarmsciedu-robot์scripts/diagnostics/leaf_kind_onnx.py). CPU์์ ๋ด๋ณด๋๋ค.- torch 2.11.0, transformers 5.5.4, onnx 1.23.1, onnxscript 0.7.2.
torch.onnx.export(dynamo=True), opset 20. - ๊ฐ์ค์น๋ ํ์ผ ์์ ์๋ค(์ธ๋ถ ๋ฐ์ดํฐ ์์). ๋ ธ๋๋ง๋ค ๋ถ๋ stack_trace ๋ฉํ๋ฐ์ดํฐ๋ ์ง์ ๋ค(๋ด๋ณด๋ธ PC์ ๊ฒฝ๋ก). ๊ทธ๋์ ๊ฐ์ ๋๊ตฌ๋ก ๋ค์ ๋ด๋ณด๋ด๋ฉด ๊ฐ์ ํ์ผ์ด ๋์จ๋ค(๋ ๋ฒ ๋ด๋ณด๋ด sha256์ด ๊ฐ์์ ํ์ธ).
model.onnx: 343.0 MB, sha2568f905c48a542eddc7e43e77d98918683dfc59ecb827ab5789ef8c09a4ac0cc2a- ๋ชจ๋ธ ๋ฉํ๋ฐ์ดํฐ
source_model,source_revision์ ์๋ณธ์ ์ ์๋ค.
๊ฒ์ฆ (2026-10-04, ๋ก๋ด PC CPU, onnxruntime 1.30.0)
๋
นํ leapshared/Leaf_rules_20261002_225313_subtask์ ๊ฐ์ด ์นด๋ฉ๋ผ ํ๋ ์ 698์ฅ์ ์๋น ์นด๋ฉ๋ผ์ฒ๋ผ JPEG(ํ์ง 80)์ผ๋ก ๋ฌถ์๋ค.
๊ทธ ์ฌ์ง์์ torch ๊ธธ(transformers ์ฒ๋ฆฌ๊ธฐ + Dinov2Model)๊ณผ onnx ๊ธธ(numpy ์ ์ฒ๋ฆฌ + ์ด ํ์ผ)์ ๊ฒฌ์คฌ๋ค.
- ์ ์ฒ๋ฆฌ: numpy๋ก ์ฎ๊ธด ๊ฒ(
dialogue/leaf_onnx.py)์ด transformers ์ฒ๋ฆฌ๊ธฐ์ ์์ 105,068,544๊ฐ ์ค ๋ค๋ฅธ ๊ฒ 0 - ํน์ง: ์ฝ์ฌ์ธ ์ต์ 0.999999999994(1 โ ์ฝ์ฌ์ธ โค 6.4e-12), ์์ ์ต๋ ์ฐจ์ด 2.4e-5(์์ ํฌ๊ธฐ ์ค์ 1.07)
- ํ์ (
leaf_kind_dinov2_logreg): ํ ์ฅ ํ์ 698/698 ๊ฐ์, ๋ํ์ธต ํ์ (์ธ ์ฅ ํ ๋ฒ ํฌํจ) 654/654 ๊ฐ์- ๊ฒ์ฆ ์ํผ์๋ 6ยท7ยท46ยท47์ ์นด๋ 22์ฅ(์ธ ์ฅ ํ ๋ฒ): ๋ ๊ธธ ๋ชจ๋ 22/22
- ๊ทธ๋ฆฌํผ๊ฐ ์นด๋๋ฅผ ์ฅ ํ๋ ์ 22์ฅ, ๋น ์ค 4์ฅ: ๋ ๊ธธ ๋ชจ๋ none
- 3์ฅ ํ์ ์ง์ฐ(JPEG ํ๊ธฐ ํฌํจ, AMD Ryzen 5 7500F 4์ค๋ ๋, ๋ ๋ฒ ์ผ): onnx ์ค์ 324ยท353 ms, torch ์ค์ 425ยท431 ms
์ฐ๋ ๋ฒ
import onnxruntime as ort
session = ort.InferenceSession("model.onnx", providers=["CPUExecutionProvider"])
features = session.run(None, {"pixel_values": pixel_values})[0] # [N, 768]
์ ์ฒ๋ฆฌ๋ฅผ numpy๋ก ๋๊ฐ์ด ํ๋ ์ฝ๋๋ LEAP-LAB-KUS/openarmsciedu-robot์ dialogue/leaf_onnx.py(pixel_values)์ ์๋ค.
๋ผ์ด์ ์ค
์๋ณธ DINOv2(Meta AI)์ Apache-2.0์ ๋ฐ๋ฅธ๋ค. ๊ฐ์ค์น๋ ์๋ณธ ๊ทธ๋๋ก์ด๊ณ , ์์น ์๋ฒ ๋ฉ๋ง 224ร224๋ก ๋ฏธ๋ฆฌ ๋ณด๊ฐํ ๊ฐ์ผ๋ก ๋ฐ๊ฟจ๋ค.
Model tree for leapshared/dinov2-base-onnx
Base model
facebook/dinov2-base