Instructions to use Jan358/Geometric-Shapes-Classification with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Jan358/Geometric-Shapes-Classification with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-classification", model="Jan358/Geometric-Shapes-Classification") pipe("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/parrots.png")# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForImageClassification processor = AutoProcessor.from_pretrained("Jan358/Geometric-Shapes-Classification") model = AutoModelForImageClassification.from_pretrained("Jan358/Geometric-Shapes-Classification", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Commit ·
2e4b294
0
Parent(s):
Duplicate from prithivMLmods/Geometric-Shapes-Classification
Browse filesCo-authored-by: Prithiv Sakthi <prithivMLmods@users.noreply.huggingface.co>
- .gitattributes +35 -0
- README.md +124 -0
- checkpoint-375/config.json +58 -0
- checkpoint-375/model.safetensors +3 -0
- checkpoint-375/optimizer.pt +3 -0
- checkpoint-375/preprocessor_config.json +24 -0
- checkpoint-375/rng_state.pth +3 -0
- checkpoint-375/scheduler.pt +3 -0
- checkpoint-375/trainer_state.json +44 -0
- checkpoint-375/training_args.bin +3 -0
- checkpoint-750/config.json +58 -0
- checkpoint-750/model.safetensors +3 -0
- checkpoint-750/optimizer.pt +3 -0
- checkpoint-750/preprocessor_config.json +24 -0
- checkpoint-750/rng_state.pth +3 -0
- checkpoint-750/scheduler.pt +3 -0
- checkpoint-750/trainer_state.json +61 -0
- checkpoint-750/training_args.bin +3 -0
- config.json +58 -0
- model.safetensors +3 -0
- preprocessor_config.json +24 -0
- training_args.bin +3 -0
.gitattributes
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
README.md
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
datasets:
|
| 4 |
+
- prithivMLmods/Math-Shapes
|
| 5 |
+
language:
|
| 6 |
+
- en
|
| 7 |
+
base_model:
|
| 8 |
+
- google/siglip2-base-patch16-224
|
| 9 |
+
pipeline_tag: image-classification
|
| 10 |
+
library_name: transformers
|
| 11 |
+
tags:
|
| 12 |
+
- Shapes
|
| 13 |
+
- Geometric
|
| 14 |
+
- SigLIP2
|
| 15 |
+
- art
|
| 16 |
+
---
|
| 17 |
+
|
| 18 |
+

|
| 19 |
+
|
| 20 |
+
# **Geometric-Shapes-Classification**
|
| 21 |
+
|
| 22 |
+
> **Geometric-Shapes-Classification** is an image classification vision-language encoder model fine-tuned from **google/siglip2-base-patch16-224** for a multi-class shape recognition task. It classifies various geometric shapes using the **SiglipForImageClassification** architecture.
|
| 23 |
+
|
| 24 |
+
```py
|
| 25 |
+
Classification Report:
|
| 26 |
+
precision recall f1-score support
|
| 27 |
+
|
| 28 |
+
Circle ◯ 0.9921 0.9987 0.9953 1500
|
| 29 |
+
Kite ⬰ 0.9927 0.9927 0.9927 1500
|
| 30 |
+
Parallelogram ▰ 0.9926 0.9840 0.9883 1500
|
| 31 |
+
Rectangle ▭ 0.9993 0.9913 0.9953 1500
|
| 32 |
+
Rhombus ◆ 0.9846 0.9820 0.9833 1500
|
| 33 |
+
Square ◼ 0.9914 0.9987 0.9950 1500
|
| 34 |
+
Trapezoid ⏢ 0.9966 0.9793 0.9879 1500
|
| 35 |
+
Triangle ▲ 0.9772 0.9993 0.9881 1500
|
| 36 |
+
|
| 37 |
+
accuracy 0.9908 12000
|
| 38 |
+
macro avg 0.9908 0.9908 0.9907 12000
|
| 39 |
+
weighted avg 0.9908 0.9908 0.9907 12000
|
| 40 |
+
```
|
| 41 |
+
|
| 42 |
+

|
| 43 |
+
|
| 44 |
+
The model categorizes images into the following classes:
|
| 45 |
+
|
| 46 |
+
- **Class 0:** Circle ◯
|
| 47 |
+
- **Class 1:** Kite ⬰
|
| 48 |
+
- **Class 2:** Parallelogram ▰
|
| 49 |
+
- **Class 3:** Rectangle ▭
|
| 50 |
+
- **Class 4:** Rhombus ◆
|
| 51 |
+
- **Class 5:** Square ◼
|
| 52 |
+
- **Class 6:** Trapezoid ⏢
|
| 53 |
+
- **Class 7:** Triangle ▲
|
| 54 |
+
|
| 55 |
+
---
|
| 56 |
+
|
| 57 |
+
# **Run with Transformers 🤗**
|
| 58 |
+
|
| 59 |
+
```python
|
| 60 |
+
!pip install -q transformers torch pillow gradio
|
| 61 |
+
```
|
| 62 |
+
|
| 63 |
+
```python
|
| 64 |
+
import gradio as gr
|
| 65 |
+
from transformers import AutoImageProcessor
|
| 66 |
+
from transformers import SiglipForImageClassification
|
| 67 |
+
from PIL import Image
|
| 68 |
+
import torch
|
| 69 |
+
|
| 70 |
+
# Load model and processor
|
| 71 |
+
model_name = "prithivMLmods/Geometric-Shapes-Classification"
|
| 72 |
+
model = SiglipForImageClassification.from_pretrained(model_name)
|
| 73 |
+
processor = AutoImageProcessor.from_pretrained(model_name)
|
| 74 |
+
|
| 75 |
+
# Label mapping with symbols
|
| 76 |
+
labels = {
|
| 77 |
+
"0": "Circle ◯",
|
| 78 |
+
"1": "Kite ⬰",
|
| 79 |
+
"2": "Parallelogram ▰",
|
| 80 |
+
"3": "Rectangle ▭",
|
| 81 |
+
"4": "Rhombus ◆",
|
| 82 |
+
"5": "Square ◼",
|
| 83 |
+
"6": "Trapezoid ⏢",
|
| 84 |
+
"7": "Triangle ▲"
|
| 85 |
+
}
|
| 86 |
+
|
| 87 |
+
def classify_shape(image):
|
| 88 |
+
"""Classifies the geometric shape in the input image."""
|
| 89 |
+
image = Image.fromarray(image).convert("RGB")
|
| 90 |
+
inputs = processor(images=image, return_tensors="pt")
|
| 91 |
+
|
| 92 |
+
with torch.no_grad():
|
| 93 |
+
outputs = model(**inputs)
|
| 94 |
+
logits = outputs.logits
|
| 95 |
+
probs = torch.nn.functional.softmax(logits, dim=1).squeeze().tolist()
|
| 96 |
+
|
| 97 |
+
predictions = {labels[str(i)]: round(probs[i], 3) for i in range(len(probs))}
|
| 98 |
+
|
| 99 |
+
return predictions
|
| 100 |
+
|
| 101 |
+
# Gradio interface
|
| 102 |
+
iface = gr.Interface(
|
| 103 |
+
fn=classify_shape,
|
| 104 |
+
inputs=gr.Image(type="numpy"),
|
| 105 |
+
outputs=gr.Label(label="Prediction Scores"),
|
| 106 |
+
title="Geometric Shapes Classification",
|
| 107 |
+
description="Upload an image to classify geometric shapes such as circle, triangle, square, and more."
|
| 108 |
+
)
|
| 109 |
+
|
| 110 |
+
# Launch the app
|
| 111 |
+
if __name__ == "__main__":
|
| 112 |
+
iface.launch()
|
| 113 |
+
```
|
| 114 |
+
|
| 115 |
+
---
|
| 116 |
+
|
| 117 |
+
# **Intended Use**
|
| 118 |
+
|
| 119 |
+
The **Geometric-Shapes-Classification** model is designed to recognize basic geometric shapes in images. Example use cases:
|
| 120 |
+
|
| 121 |
+
- **Educational Tools:** For learning and teaching geometry visually.
|
| 122 |
+
- **Computer Vision Projects:** As a shape detector in robotics or automation.
|
| 123 |
+
- **Image Analysis:** Recognizing symbols in diagrams or engineering drafts.
|
| 124 |
+
- **Assistive Technology:** Supporting shape identification for visually impaired applications.
|
checkpoint-375/config.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architectures": [
|
| 3 |
+
"SiglipForImageClassification"
|
| 4 |
+
],
|
| 5 |
+
"id2label": {
|
| 6 |
+
"0": "Circle \u25ef",
|
| 7 |
+
"1": "Kite \u2b30",
|
| 8 |
+
"2": "Parallelogram \u25b0",
|
| 9 |
+
"3": "Rectangle \u25ad",
|
| 10 |
+
"4": "Rhombus \u25c6",
|
| 11 |
+
"5": "Square \u25fc",
|
| 12 |
+
"6": "Trapezoid \u23e2",
|
| 13 |
+
"7": "Triangle \u25b2"
|
| 14 |
+
},
|
| 15 |
+
"initializer_factor": 1.0,
|
| 16 |
+
"label2id": {
|
| 17 |
+
"Circle \u25ef": 0,
|
| 18 |
+
"Kite \u2b30": 1,
|
| 19 |
+
"Parallelogram \u25b0": 2,
|
| 20 |
+
"Rectangle \u25ad": 3,
|
| 21 |
+
"Rhombus \u25c6": 4,
|
| 22 |
+
"Square \u25fc": 5,
|
| 23 |
+
"Trapezoid \u23e2": 6,
|
| 24 |
+
"Triangle \u25b2": 7
|
| 25 |
+
},
|
| 26 |
+
"model_type": "siglip",
|
| 27 |
+
"problem_type": "single_label_classification",
|
| 28 |
+
"text_config": {
|
| 29 |
+
"attention_dropout": 0.0,
|
| 30 |
+
"hidden_act": "gelu_pytorch_tanh",
|
| 31 |
+
"hidden_size": 768,
|
| 32 |
+
"intermediate_size": 3072,
|
| 33 |
+
"layer_norm_eps": 1e-06,
|
| 34 |
+
"max_position_embeddings": 64,
|
| 35 |
+
"model_type": "siglip_text_model",
|
| 36 |
+
"num_attention_heads": 12,
|
| 37 |
+
"num_hidden_layers": 12,
|
| 38 |
+
"projection_size": 768,
|
| 39 |
+
"torch_dtype": "float32",
|
| 40 |
+
"vocab_size": 256000
|
| 41 |
+
},
|
| 42 |
+
"torch_dtype": "float32",
|
| 43 |
+
"transformers_version": "4.50.3",
|
| 44 |
+
"vision_config": {
|
| 45 |
+
"attention_dropout": 0.0,
|
| 46 |
+
"hidden_act": "gelu_pytorch_tanh",
|
| 47 |
+
"hidden_size": 768,
|
| 48 |
+
"image_size": 224,
|
| 49 |
+
"intermediate_size": 3072,
|
| 50 |
+
"layer_norm_eps": 1e-06,
|
| 51 |
+
"model_type": "siglip_vision_model",
|
| 52 |
+
"num_attention_heads": 12,
|
| 53 |
+
"num_channels": 3,
|
| 54 |
+
"num_hidden_layers": 12,
|
| 55 |
+
"patch_size": 16,
|
| 56 |
+
"torch_dtype": "float32"
|
| 57 |
+
}
|
| 58 |
+
}
|
checkpoint-375/model.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:59774861a5253ee8a2685bef62a6aa8e016c2bc57d6ec515be051100f5ae5f43
|
| 3 |
+
size 371586448
|
checkpoint-375/optimizer.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:aa188c598b29736f377f9dffe4bd270589b44c7bc79b653779c972bc68163aab
|
| 3 |
+
size 686592634
|
checkpoint-375/preprocessor_config.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"do_convert_rgb": null,
|
| 3 |
+
"do_normalize": true,
|
| 4 |
+
"do_rescale": true,
|
| 5 |
+
"do_resize": true,
|
| 6 |
+
"image_mean": [
|
| 7 |
+
0.5,
|
| 8 |
+
0.5,
|
| 9 |
+
0.5
|
| 10 |
+
],
|
| 11 |
+
"image_processor_type": "SiglipImageProcessor",
|
| 12 |
+
"image_std": [
|
| 13 |
+
0.5,
|
| 14 |
+
0.5,
|
| 15 |
+
0.5
|
| 16 |
+
],
|
| 17 |
+
"processor_class": "SiglipProcessor",
|
| 18 |
+
"resample": 2,
|
| 19 |
+
"rescale_factor": 0.00392156862745098,
|
| 20 |
+
"size": {
|
| 21 |
+
"height": 224,
|
| 22 |
+
"width": 224
|
| 23 |
+
}
|
| 24 |
+
}
|
checkpoint-375/rng_state.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a11027277b6c51f59488df520020d383908a9f170baa7ea4bd0c166aa72cced2
|
| 3 |
+
size 14244
|
checkpoint-375/scheduler.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ac4d1140f5a0513989aca0dc1db73e181db90de91e412469cc8be792cca398dc
|
| 3 |
+
size 1064
|
checkpoint-375/trainer_state.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"best_global_step": 375,
|
| 3 |
+
"best_metric": 0.5122714638710022,
|
| 4 |
+
"best_model_checkpoint": "siglip2-finetune-full/checkpoint-375",
|
| 5 |
+
"epoch": 1.0,
|
| 6 |
+
"eval_steps": 500,
|
| 7 |
+
"global_step": 375,
|
| 8 |
+
"is_hyper_param_search": false,
|
| 9 |
+
"is_local_process_zero": true,
|
| 10 |
+
"is_world_process_zero": true,
|
| 11 |
+
"log_history": [
|
| 12 |
+
{
|
| 13 |
+
"epoch": 1.0,
|
| 14 |
+
"eval_accuracy": 0.85325,
|
| 15 |
+
"eval_loss": 0.5122714638710022,
|
| 16 |
+
"eval_model_preparation_time": 0.0023,
|
| 17 |
+
"eval_runtime": 142.4763,
|
| 18 |
+
"eval_samples_per_second": 84.225,
|
| 19 |
+
"eval_steps_per_second": 10.528,
|
| 20 |
+
"step": 375
|
| 21 |
+
}
|
| 22 |
+
],
|
| 23 |
+
"logging_steps": 500,
|
| 24 |
+
"max_steps": 750,
|
| 25 |
+
"num_input_tokens_seen": 0,
|
| 26 |
+
"num_train_epochs": 2,
|
| 27 |
+
"save_steps": 500,
|
| 28 |
+
"stateful_callbacks": {
|
| 29 |
+
"TrainerControl": {
|
| 30 |
+
"args": {
|
| 31 |
+
"should_epoch_stop": false,
|
| 32 |
+
"should_evaluate": false,
|
| 33 |
+
"should_log": false,
|
| 34 |
+
"should_save": true,
|
| 35 |
+
"should_training_stop": false
|
| 36 |
+
},
|
| 37 |
+
"attributes": {}
|
| 38 |
+
}
|
| 39 |
+
},
|
| 40 |
+
"total_flos": 1.005115956461568e+18,
|
| 41 |
+
"train_batch_size": 32,
|
| 42 |
+
"trial_name": null,
|
| 43 |
+
"trial_params": null
|
| 44 |
+
}
|
checkpoint-375/training_args.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:206d195b28a5a4e1f61804a2eec06b109a4be9fa8d841f4d552fca404cebe15f
|
| 3 |
+
size 5304
|
checkpoint-750/config.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architectures": [
|
| 3 |
+
"SiglipForImageClassification"
|
| 4 |
+
],
|
| 5 |
+
"id2label": {
|
| 6 |
+
"0": "Circle \u25ef",
|
| 7 |
+
"1": "Kite \u2b30",
|
| 8 |
+
"2": "Parallelogram \u25b0",
|
| 9 |
+
"3": "Rectangle \u25ad",
|
| 10 |
+
"4": "Rhombus \u25c6",
|
| 11 |
+
"5": "Square \u25fc",
|
| 12 |
+
"6": "Trapezoid \u23e2",
|
| 13 |
+
"7": "Triangle \u25b2"
|
| 14 |
+
},
|
| 15 |
+
"initializer_factor": 1.0,
|
| 16 |
+
"label2id": {
|
| 17 |
+
"Circle \u25ef": 0,
|
| 18 |
+
"Kite \u2b30": 1,
|
| 19 |
+
"Parallelogram \u25b0": 2,
|
| 20 |
+
"Rectangle \u25ad": 3,
|
| 21 |
+
"Rhombus \u25c6": 4,
|
| 22 |
+
"Square \u25fc": 5,
|
| 23 |
+
"Trapezoid \u23e2": 6,
|
| 24 |
+
"Triangle \u25b2": 7
|
| 25 |
+
},
|
| 26 |
+
"model_type": "siglip",
|
| 27 |
+
"problem_type": "single_label_classification",
|
| 28 |
+
"text_config": {
|
| 29 |
+
"attention_dropout": 0.0,
|
| 30 |
+
"hidden_act": "gelu_pytorch_tanh",
|
| 31 |
+
"hidden_size": 768,
|
| 32 |
+
"intermediate_size": 3072,
|
| 33 |
+
"layer_norm_eps": 1e-06,
|
| 34 |
+
"max_position_embeddings": 64,
|
| 35 |
+
"model_type": "siglip_text_model",
|
| 36 |
+
"num_attention_heads": 12,
|
| 37 |
+
"num_hidden_layers": 12,
|
| 38 |
+
"projection_size": 768,
|
| 39 |
+
"torch_dtype": "float32",
|
| 40 |
+
"vocab_size": 256000
|
| 41 |
+
},
|
| 42 |
+
"torch_dtype": "float32",
|
| 43 |
+
"transformers_version": "4.50.3",
|
| 44 |
+
"vision_config": {
|
| 45 |
+
"attention_dropout": 0.0,
|
| 46 |
+
"hidden_act": "gelu_pytorch_tanh",
|
| 47 |
+
"hidden_size": 768,
|
| 48 |
+
"image_size": 224,
|
| 49 |
+
"intermediate_size": 3072,
|
| 50 |
+
"layer_norm_eps": 1e-06,
|
| 51 |
+
"model_type": "siglip_vision_model",
|
| 52 |
+
"num_attention_heads": 12,
|
| 53 |
+
"num_channels": 3,
|
| 54 |
+
"num_hidden_layers": 12,
|
| 55 |
+
"patch_size": 16,
|
| 56 |
+
"torch_dtype": "float32"
|
| 57 |
+
}
|
| 58 |
+
}
|
checkpoint-750/model.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a134585cac12e3065d395f47c8f7a50916ed236e6752f94152d5b1466ed6631c
|
| 3 |
+
size 371586448
|
checkpoint-750/optimizer.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4e7b8773667c165c9b7ea1d9ea7b20c1d7ff46c21735b0201c4284ee44a97853
|
| 3 |
+
size 686592634
|
checkpoint-750/preprocessor_config.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"do_convert_rgb": null,
|
| 3 |
+
"do_normalize": true,
|
| 4 |
+
"do_rescale": true,
|
| 5 |
+
"do_resize": true,
|
| 6 |
+
"image_mean": [
|
| 7 |
+
0.5,
|
| 8 |
+
0.5,
|
| 9 |
+
0.5
|
| 10 |
+
],
|
| 11 |
+
"image_processor_type": "SiglipImageProcessor",
|
| 12 |
+
"image_std": [
|
| 13 |
+
0.5,
|
| 14 |
+
0.5,
|
| 15 |
+
0.5
|
| 16 |
+
],
|
| 17 |
+
"processor_class": "SiglipProcessor",
|
| 18 |
+
"resample": 2,
|
| 19 |
+
"rescale_factor": 0.00392156862745098,
|
| 20 |
+
"size": {
|
| 21 |
+
"height": 224,
|
| 22 |
+
"width": 224
|
| 23 |
+
}
|
| 24 |
+
}
|
checkpoint-750/rng_state.pth
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8dfd1f9a2a29539f346868eb36a1b264e5fc13fdb515c6a844bf62e6abee8853
|
| 3 |
+
size 14244
|
checkpoint-750/scheduler.pt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ab03192a60c4fb6ec6096a859424dfb24171c6b3fc801b38b85ab0fd723b1704
|
| 3 |
+
size 1064
|
checkpoint-750/trainer_state.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"best_global_step": 750,
|
| 3 |
+
"best_metric": 0.03016640432178974,
|
| 4 |
+
"best_model_checkpoint": "siglip2-finetune-full/checkpoint-750",
|
| 5 |
+
"epoch": 2.0,
|
| 6 |
+
"eval_steps": 500,
|
| 7 |
+
"global_step": 750,
|
| 8 |
+
"is_hyper_param_search": false,
|
| 9 |
+
"is_local_process_zero": true,
|
| 10 |
+
"is_world_process_zero": true,
|
| 11 |
+
"log_history": [
|
| 12 |
+
{
|
| 13 |
+
"epoch": 1.0,
|
| 14 |
+
"eval_accuracy": 0.85325,
|
| 15 |
+
"eval_loss": 0.5122714638710022,
|
| 16 |
+
"eval_model_preparation_time": 0.0023,
|
| 17 |
+
"eval_runtime": 142.4763,
|
| 18 |
+
"eval_samples_per_second": 84.225,
|
| 19 |
+
"eval_steps_per_second": 10.528,
|
| 20 |
+
"step": 375
|
| 21 |
+
},
|
| 22 |
+
{
|
| 23 |
+
"epoch": 1.3333333333333333,
|
| 24 |
+
"grad_norm": 6.622213840484619,
|
| 25 |
+
"learning_rate": 7.142857142857143e-05,
|
| 26 |
+
"loss": 0.4962,
|
| 27 |
+
"step": 500
|
| 28 |
+
},
|
| 29 |
+
{
|
| 30 |
+
"epoch": 2.0,
|
| 31 |
+
"eval_accuracy": 0.99075,
|
| 32 |
+
"eval_loss": 0.03016640432178974,
|
| 33 |
+
"eval_model_preparation_time": 0.0023,
|
| 34 |
+
"eval_runtime": 141.9262,
|
| 35 |
+
"eval_samples_per_second": 84.551,
|
| 36 |
+
"eval_steps_per_second": 10.569,
|
| 37 |
+
"step": 750
|
| 38 |
+
}
|
| 39 |
+
],
|
| 40 |
+
"logging_steps": 500,
|
| 41 |
+
"max_steps": 750,
|
| 42 |
+
"num_input_tokens_seen": 0,
|
| 43 |
+
"num_train_epochs": 2,
|
| 44 |
+
"save_steps": 500,
|
| 45 |
+
"stateful_callbacks": {
|
| 46 |
+
"TrainerControl": {
|
| 47 |
+
"args": {
|
| 48 |
+
"should_epoch_stop": false,
|
| 49 |
+
"should_evaluate": false,
|
| 50 |
+
"should_log": false,
|
| 51 |
+
"should_save": true,
|
| 52 |
+
"should_training_stop": true
|
| 53 |
+
},
|
| 54 |
+
"attributes": {}
|
| 55 |
+
}
|
| 56 |
+
},
|
| 57 |
+
"total_flos": 2.010231912923136e+18,
|
| 58 |
+
"train_batch_size": 32,
|
| 59 |
+
"trial_name": null,
|
| 60 |
+
"trial_params": null
|
| 61 |
+
}
|
checkpoint-750/training_args.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:206d195b28a5a4e1f61804a2eec06b109a4be9fa8d841f4d552fca404cebe15f
|
| 3 |
+
size 5304
|
config.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architectures": [
|
| 3 |
+
"SiglipForImageClassification"
|
| 4 |
+
],
|
| 5 |
+
"id2label": {
|
| 6 |
+
"0": "Circle \u25ef",
|
| 7 |
+
"1": "Kite \u2b30",
|
| 8 |
+
"2": "Parallelogram \u25b0",
|
| 9 |
+
"3": "Rectangle \u25ad",
|
| 10 |
+
"4": "Rhombus \u25c6",
|
| 11 |
+
"5": "Square \u25fc",
|
| 12 |
+
"6": "Trapezoid \u23e2",
|
| 13 |
+
"7": "Triangle \u25b2"
|
| 14 |
+
},
|
| 15 |
+
"initializer_factor": 1.0,
|
| 16 |
+
"label2id": {
|
| 17 |
+
"Circle \u25ef": 0,
|
| 18 |
+
"Kite \u2b30": 1,
|
| 19 |
+
"Parallelogram \u25b0": 2,
|
| 20 |
+
"Rectangle \u25ad": 3,
|
| 21 |
+
"Rhombus \u25c6": 4,
|
| 22 |
+
"Square \u25fc": 5,
|
| 23 |
+
"Trapezoid \u23e2": 6,
|
| 24 |
+
"Triangle \u25b2": 7
|
| 25 |
+
},
|
| 26 |
+
"model_type": "siglip",
|
| 27 |
+
"problem_type": "single_label_classification",
|
| 28 |
+
"text_config": {
|
| 29 |
+
"attention_dropout": 0.0,
|
| 30 |
+
"hidden_act": "gelu_pytorch_tanh",
|
| 31 |
+
"hidden_size": 768,
|
| 32 |
+
"intermediate_size": 3072,
|
| 33 |
+
"layer_norm_eps": 1e-06,
|
| 34 |
+
"max_position_embeddings": 64,
|
| 35 |
+
"model_type": "siglip_text_model",
|
| 36 |
+
"num_attention_heads": 12,
|
| 37 |
+
"num_hidden_layers": 12,
|
| 38 |
+
"projection_size": 768,
|
| 39 |
+
"torch_dtype": "float32",
|
| 40 |
+
"vocab_size": 256000
|
| 41 |
+
},
|
| 42 |
+
"torch_dtype": "float32",
|
| 43 |
+
"transformers_version": "4.50.3",
|
| 44 |
+
"vision_config": {
|
| 45 |
+
"attention_dropout": 0.0,
|
| 46 |
+
"hidden_act": "gelu_pytorch_tanh",
|
| 47 |
+
"hidden_size": 768,
|
| 48 |
+
"image_size": 224,
|
| 49 |
+
"intermediate_size": 3072,
|
| 50 |
+
"layer_norm_eps": 1e-06,
|
| 51 |
+
"model_type": "siglip_vision_model",
|
| 52 |
+
"num_attention_heads": 12,
|
| 53 |
+
"num_channels": 3,
|
| 54 |
+
"num_hidden_layers": 12,
|
| 55 |
+
"patch_size": 16,
|
| 56 |
+
"torch_dtype": "float32"
|
| 57 |
+
}
|
| 58 |
+
}
|
model.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a134585cac12e3065d395f47c8f7a50916ed236e6752f94152d5b1466ed6631c
|
| 3 |
+
size 371586448
|
preprocessor_config.json
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"do_convert_rgb": null,
|
| 3 |
+
"do_normalize": true,
|
| 4 |
+
"do_rescale": true,
|
| 5 |
+
"do_resize": true,
|
| 6 |
+
"image_mean": [
|
| 7 |
+
0.5,
|
| 8 |
+
0.5,
|
| 9 |
+
0.5
|
| 10 |
+
],
|
| 11 |
+
"image_processor_type": "SiglipImageProcessor",
|
| 12 |
+
"image_std": [
|
| 13 |
+
0.5,
|
| 14 |
+
0.5,
|
| 15 |
+
0.5
|
| 16 |
+
],
|
| 17 |
+
"processor_class": "SiglipProcessor",
|
| 18 |
+
"resample": 2,
|
| 19 |
+
"rescale_factor": 0.00392156862745098,
|
| 20 |
+
"size": {
|
| 21 |
+
"height": 224,
|
| 22 |
+
"width": 224
|
| 23 |
+
}
|
| 24 |
+
}
|
training_args.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:206d195b28a5a4e1f61804a2eec06b109a4be9fa8d841f4d552fca404cebe15f
|
| 3 |
+
size 5304
|