Match approved DINO minimal schema-v3 public package layout
Browse files- README.md +92 -76
- config.yaml +0 -21
- conversion_report.json +0 -18
- validation-report.json +0 -26
- validation.yaml +0 -21
- validation/embedding.npy +0 -3
- validation/photo.png +0 -3
- validation/pixels.npy +0 -3
- validation/random_image.npy +0 -3
- validation/source_parity.json +0 -15
README.md
CHANGED
|
@@ -1,99 +1,96 @@
|
|
| 1 |
---
|
| 2 |
-
pipeline_tag:
|
| 3 |
tags:
|
| 4 |
- eidora
|
| 5 |
- eidora-model-zoo
|
| 6 |
- onnx
|
| 7 |
- onnxruntime
|
| 8 |
-
- image
|
| 9 |
- embeddings
|
|
|
|
|
|
|
| 10 |
- alexnet
|
| 11 |
-
- imagenet
|
| 12 |
---
|
| 13 |
|
| 14 |
# AlexNet Image Light
|
| 15 |
|
| 16 |
-
AlexNet
|
| 17 |
-
|
| 18 |
-
##
|
| 19 |
-
|
| 20 |
-
-
|
| 21 |
-
-
|
| 22 |
-
-
|
| 23 |
-
-
|
| 24 |
-
- Training
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
-
|
| 30 |
-
-
|
| 31 |
-
-
|
| 32 |
-
-
|
| 33 |
-
- Embedding
|
| 34 |
-
-
|
| 35 |
-
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
resize:
|
| 61 |
-
default: short_edge_crop
|
| 62 |
-
choices:
|
| 63 |
-
- stretch
|
| 64 |
-
- fill_crop
|
| 65 |
-
- fit_pad
|
| 66 |
-
- short_edge_crop
|
| 67 |
-
interpolation:
|
| 68 |
-
default: bilinear
|
| 69 |
-
choices:
|
| 70 |
-
- nearest
|
| 71 |
-
- bilinear
|
| 72 |
-
- bicubic
|
| 73 |
-
- lanczos
|
| 74 |
-
crop_position:
|
| 75 |
-
default: center
|
| 76 |
-
short_edge:
|
| 77 |
-
default: 256
|
| 78 |
-
minimum: 224
|
| 79 |
-
maximum: 2048
|
| 80 |
-
```
|
| 81 |
|
| 82 |
-
|
| 83 |
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 87 |
|
| 88 |
## Limitations
|
| 89 |
|
| 90 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 91 |
|
| 92 |
-
|
| 93 |
|
| 94 |
-
|
| 95 |
|
| 96 |
-
|
|
|
|
|
|
|
| 97 |
|
| 98 |
```bibtex
|
| 99 |
@inproceedings{krizhevsky2012imagenet,
|
|
@@ -103,3 +100,22 @@ Converted from TorchVision AlexNet weights; verify pretrained-weight redistribut
|
|
| 103 |
year={2012}
|
| 104 |
}
|
| 105 |
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
pipeline_tag: feature-extraction
|
| 3 |
tags:
|
| 4 |
- eidora
|
| 5 |
- eidora-model-zoo
|
| 6 |
- onnx
|
| 7 |
- onnxruntime
|
|
|
|
| 8 |
- embeddings
|
| 9 |
+
- image
|
| 10 |
+
- modality:image
|
| 11 |
- alexnet
|
|
|
|
| 12 |
---
|
| 13 |
|
| 14 |
# AlexNet Image Light
|
| 15 |
|
| 16 |
+
AlexNet is a convolutional image model from the ImageNet classification era. This EIDORA adaptation extracts a 4096-dimensional feature vector from its classifier rather than returning class probabilities.
|
| 17 |
+
|
| 18 |
+
## Training Data and Checkpoint Provenance
|
| 19 |
+
|
| 20 |
+
- **Architecture:** AlexNet convolutional network with fully connected classifier.
|
| 21 |
+
- **Original checkpoint:** [torchvision/alexnet-imagenet1k-v1](https://pytorch.org/vision/stable/models/generated/torchvision.models.alexnet.html).
|
| 22 |
+
- **Weight variant:** `IMAGENET1K_V1` ([TorchVision download](https://download.pytorch.org/models/alexnet-owt-7be5be79.pth)).
|
| 23 |
+
- **Training data:** ImageNet-1K
|
| 24 |
+
- **Training method:** Supervised image classification.
|
| 25 |
+
- **Source:** AlexNet (original author attribution retained).
|
| 26 |
+
|
| 27 |
+
## Model Overview
|
| 28 |
+
|
| 29 |
+
- **Model:** AlexNet Image Light
|
| 30 |
+
- **EIDORA identifier:** `eidora/image-alexnet-imagenet-light`
|
| 31 |
+
- **Modality:** Image
|
| 32 |
+
- **Embedding dimensions:** 4096
|
| 33 |
+
- **Embedding normalization:** L2-normalized
|
| 34 |
+
- **Similarity measure:** Cosine similarity
|
| 35 |
+
- **Package schema:** Version 3
|
| 36 |
+
- **Model version:** `0.1.0`
|
| 37 |
+
|
| 38 |
+
## EIDORA Use and Supported Modalities
|
| 39 |
+
|
| 40 |
+
**Supported modality:** Images only.
|
| 41 |
+
|
| 42 |
+
Researchers can use this package to:
|
| 43 |
+
|
| 44 |
+
- Use a familiar CNN baseline when comparing image embedding models.
|
| 45 |
+
- Explore simple visual similarity and clustering in an image collection.
|
| 46 |
+
- Compare older CNN features with ResNet, DINO and CLIP.
|
| 47 |
+
|
| 48 |
+
## Input and Preprocessing
|
| 49 |
+
|
| 50 |
+
EIDORA prepares the image before inference:
|
| 51 |
+
|
| 52 |
+
1. Convert to RGB.
|
| 53 |
+
2. Resize the shorter side to 256 pixels, then take a center crop of **224 × 224**.
|
| 54 |
+
3. Use **bilinear** interpolation. Use **truncate** dimension rounding.
|
| 55 |
+
4. Rescale by `0.00392156862745098` and normalize each RGB channel.
|
| 56 |
+
5. Arrange the tensor in `NCHW` layout and pass `float32` `pixel_values` with shape `[batch, 3, 224, 224]`.
|
| 57 |
+
|
| 58 |
+
**Mean:** `[0.485, 0.456, 0.406]`
|
| 59 |
+
**Standard deviation:** `[0.229, 0.224, 0.225]`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 60 |
|
| 61 |
+
Normalization is performed by EIDORA and should not be applied a second time. The defaults in `config.yaml` determine the documented embedding behavior; alternate settings may change the vectors.
|
| 62 |
|
| 63 |
+
## Output Embeddings
|
| 64 |
+
|
| 65 |
+
The ONNX output is `float32` with shape `['batch', 4096]`. Each vector has **4096 dimensions**, is **L2-normalized**, and is intended for **cosine similarity** comparisons.
|
| 66 |
+
|
| 67 |
+
EIDORA retains the pretrained image network and extracts features from the second fully connected layer after ReLU, followed by L2 normalization.
|
| 68 |
+
|
| 69 |
+
## Runtime and Compatibility
|
| 70 |
+
|
| 71 |
+
The package uses `model.onnx` and schema-v3 runtime declarations for image preparation and embedding output.
|
| 72 |
+
|
| 73 |
+
It declares **`CPUExecutionProvider`**. Actual execution availability depends on the installed ONNX Runtime and EIDORA Desktop environment. `config.yaml` is authoritative for graph inputs, preprocessing, provider and embedding dimensions.
|
| 74 |
|
| 75 |
## Limitations
|
| 76 |
|
| 77 |
+
- The model was trained for ImageNet classification, not cultural or historical interpretation.
|
| 78 |
+
- CNN feature proximity does not establish common authorship, identity or meaning.
|
| 79 |
+
- Other image resize settings may produce different embeddings.
|
| 80 |
+
|
| 81 |
+
Results should be evaluated against the intended research data and questions.
|
| 82 |
+
|
| 83 |
+
## Research Context and References
|
| 84 |
+
|
| 85 |
+
### Main paper
|
| 86 |
|
| 87 |
+
**ImageNet Classification with Deep Convolutional Neural Networks**
|
| 88 |
|
| 89 |
+
Paper: https://proceedings.neurips.cc/paper/2012/hash/c399862d3b9d6b76c8436e924a68c45b-Abstract.html
|
| 90 |
|
| 91 |
+
The publication describes the upstream learning method and original model. The embeddings returned by EIDORA additionally depend on the specific preprocessing and output adaptation documented here.
|
| 92 |
+
|
| 93 |
+
### Primary citation (BibTeX)
|
| 94 |
|
| 95 |
```bibtex
|
| 96 |
@inproceedings{krizhevsky2012imagenet,
|
|
|
|
| 100 |
year={2012}
|
| 101 |
}
|
| 102 |
```
|
| 103 |
+
|
| 104 |
+
## License and Attribution
|
| 105 |
+
|
| 106 |
+
The TorchVision software library uses BSD-3-Clause terms. This does not by itself assign those terms to the pretrained ImageNet weights. The linked TorchVision model documentation does not establish a separate license for these pretrained weights. No weight-license identifier is asserted here. The ONNX graph contains converted weights from TorchVision. EIDORA does not claim authorship of the original model.
|
| 107 |
+
|
| 108 |
+
No separate upstream checkpoint `LICENSE` file was supplied in the captured EIDORA repository; that absence should not be interpreted as permission or prohibition.
|
| 109 |
+
|
| 110 |
+
## Package Information
|
| 111 |
+
|
| 112 |
+
- **Model repository:** `EIDORA/AlexNet_IN1k`
|
| 113 |
+
- **Package version:** `0.1.0`
|
| 114 |
+
- **Package schema:** `3`
|
| 115 |
+
- **EIDORA configuration:** `config.yaml`
|
| 116 |
+
- **ONNX graph(s):** `model.onnx`
|
| 117 |
+
- **Supported modality:** Image
|
| 118 |
+
- **License identifier:** `other`
|
| 119 |
+
- **Declared provider:** CPUExecutionProvider
|
| 120 |
+
|
| 121 |
+
The configuration defines the authoritative model-facing runtime contract. Other packaged assets, where present, do not introduce additional inference modalities.
|
config.yaml
CHANGED
|
@@ -11,30 +11,9 @@ bibtex: "@inproceedings{krizhevsky2012imagenet,\n title={ImageNet Classificatio
|
|
| 11 |
compatibility:
|
| 12 |
min_eidora_version: 0.1.0
|
| 13 |
artifacts:
|
| 14 |
-
- path: conversion_report.json
|
| 15 |
-
sha256: a7f417fc4d8969b4682b96fda6ad6863cebab4f89adb48d1998bfde6b926abbd
|
| 16 |
-
role: asset
|
| 17 |
- path: model.onnx
|
| 18 |
sha256: deea3812842a09731d3a9ddc88dcace1049d1b39cafd25a902a39437b9b239a5
|
| 19 |
role: graph
|
| 20 |
-
- path: validation.yaml
|
| 21 |
-
sha256: 18b12ddef178c1cf77334dde9e101c228c4b8c88ade6ed2f0eef3fc4d8f2bbb4
|
| 22 |
-
role: asset
|
| 23 |
-
- path: validation/embedding.npy
|
| 24 |
-
sha256: 990d9316a16850630befdd0ec9cfe5584e6ac441302d87fb68a7c4adde2cfa33
|
| 25 |
-
role: asset
|
| 26 |
-
- path: validation/photo.png
|
| 27 |
-
sha256: 1d70a03fc99c16e3aa674dbb9c7a8d0c127b45e1cf416118131451932b2f2389
|
| 28 |
-
role: asset
|
| 29 |
-
- path: validation/pixels.npy
|
| 30 |
-
sha256: f559af24acc89a03d8d1b1b59037d301fcb4d77ab8bea2e0e64d355a226abc8b
|
| 31 |
-
role: asset
|
| 32 |
-
- path: validation/random_image.npy
|
| 33 |
-
sha256: 2e7b24b32c98c0ae8c05f508b9b037c6c3e51b0ba35405e5f2594604c3acbf48
|
| 34 |
-
role: asset
|
| 35 |
-
- path: validation/source_parity.json
|
| 36 |
-
sha256: 7b5f9e26cae0535eebff345800ffab3c5aaf2d9b4f228a6e4a71cf2e8bbf9756
|
| 37 |
-
role: asset
|
| 38 |
runtime:
|
| 39 |
graph: model.onnx
|
| 40 |
inputs:
|
|
|
|
| 11 |
compatibility:
|
| 12 |
min_eidora_version: 0.1.0
|
| 13 |
artifacts:
|
|
|
|
|
|
|
|
|
|
| 14 |
- path: model.onnx
|
| 15 |
sha256: deea3812842a09731d3a9ddc88dcace1049d1b39cafd25a902a39437b9b239a5
|
| 16 |
role: graph
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
runtime:
|
| 18 |
graph: model.onnx
|
| 19 |
inputs:
|
conversion_report.json
DELETED
|
@@ -1,18 +0,0 @@
|
|
| 1 |
-
{
|
| 2 |
-
"converter": "torchvision_alexnet",
|
| 3 |
-
"embedding_dimensions": 4096,
|
| 4 |
-
"input_name": "pixel_values",
|
| 5 |
-
"opset": 17,
|
| 6 |
-
"output_name": "embedding",
|
| 7 |
-
"schema_version": 1,
|
| 8 |
-
"source_framework": "pytorch",
|
| 9 |
-
"source_vs_onnx": {
|
| 10 |
-
"atol": 0.0001,
|
| 11 |
-
"max_abs_error": 1.043081283569336e-07,
|
| 12 |
-
"mean_abs_error": 1.883620370790595e-09,
|
| 13 |
-
"onnxruntime_version": "1.30.0",
|
| 14 |
-
"rtol": 0.001,
|
| 15 |
-
"status": "passed"
|
| 16 |
-
},
|
| 17 |
-
"torch_version": "2.14.0+cu130"
|
| 18 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
validation-report.json
DELETED
|
@@ -1,26 +0,0 @@
|
|
| 1 |
-
{
|
| 2 |
-
"desktop_version": "0.2.0",
|
| 3 |
-
"schema_version": 3,
|
| 4 |
-
"preparation_version": 2,
|
| 5 |
-
"providers": {
|
| 6 |
-
"CPUExecutionProvider": {
|
| 7 |
-
"status": "passed",
|
| 8 |
-
"fixture_runs": 19,
|
| 9 |
-
"scope": "session provider chain; CPU graph-node support allowed",
|
| 10 |
-
"environment": {
|
| 11 |
-
"onnxruntime": "1.31.0",
|
| 12 |
-
"platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.43",
|
| 13 |
-
"python": "3.13.16 (main, Oct 9 2026, 15:23:36) [Clang 22.1.3 ]"
|
| 14 |
-
}
|
| 15 |
-
}
|
| 16 |
-
},
|
| 17 |
-
"environment": {
|
| 18 |
-
"onnxruntime": "1.31.0",
|
| 19 |
-
"platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.43",
|
| 20 |
-
"python": "3.13.16 (main, Oct 9 2026, 15:23:36) [Clang 22.1.3 ]"
|
| 21 |
-
},
|
| 22 |
-
"publication_ready": true,
|
| 23 |
-
"validation_sha256": "df0c747d8cd0734a8dcad20da6afe6f74d437b51e431845f633577e714074167",
|
| 24 |
-
"contract_sha256": "65c20b19452a5cedc6874434d8379a280d6c9b4343a4deab6d9772d93ee8d6b0",
|
| 25 |
-
"package_sha256": "5dbe16d8f71ed8ce5c6507a74faeed81a02b3de3d98e1fe588c54ed4ad839093"
|
| 26 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
validation.yaml
DELETED
|
@@ -1,21 +0,0 @@
|
|
| 1 |
-
diagnostic_fixtures:
|
| 2 |
-
- id: random_image
|
| 3 |
-
path: validation/random_image.npy
|
| 4 |
-
input_shape:
|
| 5 |
-
- 1
|
| 6 |
-
- 3
|
| 7 |
-
- 224
|
| 8 |
-
- 224
|
| 9 |
-
expected_shape:
|
| 10 |
-
- 1
|
| 11 |
-
- 4096
|
| 12 |
-
seed: 17
|
| 13 |
-
fixtures:
|
| 14 |
-
- modality: image
|
| 15 |
-
path: validation/photo.png
|
| 16 |
-
expected_tensors:
|
| 17 |
-
pixel_values: validation/pixels.npy
|
| 18 |
-
expected_vectors: validation/embedding.npy
|
| 19 |
-
note: Publication requires real-media fixtures with source-reference expected_tensors
|
| 20 |
-
and expected_vectors, copied using assets. Synthetic diagnostic fixtures do not
|
| 21 |
-
certify compatibility.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
validation/embedding.npy
DELETED
|
@@ -1,3 +0,0 @@
|
|
| 1 |
-
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:990d9316a16850630befdd0ec9cfe5584e6ac441302d87fb68a7c4adde2cfa33
|
| 3 |
-
size 16512
|
|
|
|
|
|
|
|
|
|
|
|
validation/photo.png
DELETED
Git LFS Details
|
validation/pixels.npy
DELETED
|
@@ -1,3 +0,0 @@
|
|
| 1 |
-
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:f559af24acc89a03d8d1b1b59037d301fcb4d77ab8bea2e0e64d355a226abc8b
|
| 3 |
-
size 602240
|
|
|
|
|
|
|
|
|
|
|
|
validation/random_image.npy
DELETED
|
@@ -1,3 +0,0 @@
|
|
| 1 |
-
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:2e7b24b32c98c0ae8c05f508b9b037c6c3e51b0ba35405e5f2594604c3acbf48
|
| 3 |
-
size 602240
|
|
|
|
|
|
|
|
|
|
|
|
validation/source_parity.json
DELETED
|
@@ -1,15 +0,0 @@
|
|
| 1 |
-
{
|
| 2 |
-
"model": "alexnet",
|
| 3 |
-
"source_checkpoint": "IMAGENET1K_V1",
|
| 4 |
-
"image_sha256": "1d70a03fc99c16e3aa674dbb9c7a8d0c127b45e1cf416118131451932b2f2389",
|
| 5 |
-
"onnx_sha256": "deea3812842a09731d3a9ddc88dcace1049d1b39cafd25a902a39437b9b239a5",
|
| 6 |
-
"preprocessing_max_abs_error": 7.152557373046875e-07,
|
| 7 |
-
"embedding_max_abs_error": 1.7695128917694092e-07,
|
| 8 |
-
"cosine_similarity": 1.0000001192092896,
|
| 9 |
-
"output_shape": [
|
| 10 |
-
1,
|
| 11 |
-
4096
|
| 12 |
-
],
|
| 13 |
-
"source": "TorchVision pretrained model",
|
| 14 |
-
"status": "passed"
|
| 15 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|