david-shared-space / README.md
AbstractPhil's picture
Update README - Run 20251012_191456
9bf3d11 verified
|
raw
history blame
5.73 kB
---
language: en
license: mit
tags:
- image-classification
- imagenet
- multi-scale
- crystal-geometry
- david
datasets:
- imagenet-1k
metrics:
- accuracy
model-index:
- name: David-partial_shared-hierarchical_tree
results:
- task:
type: image-classification
dataset:
name: ImageNet-1K
type: imagenet-1k
metrics:
- type: accuracy
value: 73.04
---
# David: Multi-Scale Crystal Classifier
**David** is a multi-scale deep learning classifier that uses crystal geometry (pentachora/4-simplexes)
as class prototypes with role-weighted similarity computation (Rose Loss).
## Model Details
### Architecture
- **Preset**: balanced
- **Sharing Mode**: partial_shared
- **Fusion Mode**: hierarchical_tree
- **Scales**: [256, 512, 768, 1024]
- **Feature Dim**: 512
- **Parameters**: 8,758,271
### Training Configuration
- **Dataset**: AbstractPhil/imagenet-clip-features-orderly
- **Model Variant**: ['clip_vit_b32', 'clip_vit_laion_b32']
- **Epochs**: 10
- **Batch Size**: 1024
- **Learning Rate**: 0.01
- **Rose Loss Weight**: 0.2 β†’ 0.8
- **Cayley Loss**: True
## Performance
### Best Results
- **Validation Accuracy**: 73.04%
- **Best Epoch**: 5
- **Final Train Accuracy**: 77.99%
### Per-Scale Performance
- **Scale 256**: 71.23%
- **Scale 512**: 72.95%
- **Scale 768**: 72.21%
## Usage
### Quick Model Lookup
**Check `MODELS_INDEX.json` in the repo root** - it lists all trained models sorted by accuracy with links to weights and configs.
### Repository Structure
```
AbstractPhil/david-shared-space/
β”œβ”€β”€ MODELS_INDEX.json # πŸ“Š Master index of all models (sorted by accuracy)
β”œβ”€β”€ README.md # This file
β”œβ”€β”€ best_model.json # Latest best model info
β”œβ”€β”€ weights/
β”‚ └── david_balanced/
β”‚ └── 20251012_191456/
β”‚ β”œβ”€β”€ MODEL_SUMMARY.txt # 🎯 Human-readable performance summary
β”‚ β”œβ”€β”€ training_history.json # πŸ“ˆ Epoch-by-epoch training curve
β”‚ β”œβ”€β”€ best_model_acc73.04.safetensors # ⭐ Accuracy in filename!
β”‚ β”œβ”€β”€ best_model_acc73.04_metadata.json
β”‚ β”œβ”€β”€ final_model.safetensors
β”‚ β”œβ”€β”€ checkpoint_epoch_X_accYY.YY.safetensors
β”‚ β”œβ”€β”€ david_config.json
β”‚ └── train_config.json
└── runs/
└── david_balanced/
└── 20251012_191456/
└── events.out.tfevents.* # TensorBoard logs
```
### Loading the Model
```python
from geovocab2.train.model.core.david import David, DavidArchitectureConfig
from huggingface_hub import hf_hub_download
# Browse available models in MODELS_INDEX.json first!
# Specify model variant and run
model_name = "david_balanced"
run_id = "20251012_191456"
accuracy = "73.04" # From MODELS_INDEX.json
# Download config
config_path = hf_hub_download(
repo_id="AbstractPhil/david-shared-space",
filename=f"weights/{model_name}/{run_id}/david_config.json"
)
config = DavidArchitectureConfig.from_json(config_path)
# Download weights (accuracy in filename!)
weights_path = hf_hub_download(
repo_id="AbstractPhil/david-shared-space",
filename=f"weights/{model_name}/{run_id}/best_model_acc{accuracy}.safetensors"
)
# Download training history (optional - see full training curve)
history_path = hf_hub_download(
repo_id="AbstractPhil/david-shared-space",
filename=f"weights/{model_name}/{run_id}/training_history.json"
)
# Load model
from safetensors.torch import load_file
david = David.from_config(config)
david.load_state_dict(load_file(weights_path))
david.eval()
```
### Inference
```python
import torch
import torch.nn.functional as F
# Assuming you have CLIP features (512-dim for ViT-B/16)
features = get_clip_features(image) # [1, 512]
# Load anchors
anchors_dict = torch.load("anchors.pth")
# Forward pass
with torch.no_grad():
logits, _ = david(features, anchors_dict)
predictions = logits.argmax(dim=-1)
```
## Architecture Overview
### Multi-Scale Processing
David processes inputs at multiple scales (256, 512, 768, 1024),
allowing it to capture both coarse and fine-grained features.
### Shared Representation Space
This variation shares multiple versions of clip-vit models in the same representation space.
### Crystal Geometry
Each class is represented by a pentachoron (4-simplex) in embedding space with 5 vertices:
- **Anchor**: Primary class representative
- **Need**: Complementary direction
- **Relation**: Contextual alignment
- **Purpose**: Functional direction
- **Observer**: Meta-perspective
### Rose Loss
Similarity computation uses role-weighted cosine similarities:
```
score = w_anchor * sim(z, anchor) + w_need * sim(z, need) + ...
```
### Fusion Strategy
**hierarchical_tree**: Intelligently combines predictions from multiple scales.
## Training Details
### Loss Components
- **Cross-Entropy**: Standard classification loss
- **Rose Loss**: Pentachora role-weighted margin loss (weight: 0.2β†’0.8)
- **Cayley Loss**: Geometric regularization (enabled)
### Optimization
- **Optimizer**: AdamW
- **Weight Decay**: 1e-05
- **Scheduler**: cosine_restarts
- **Gradient Clip**: 10.0
- **Mixed Precision**: False
## Citation
```bibtex
@software{david_classifier_2025,
title = {David: Multi-Scale Crystal Classifier},
author = {AbstractPhil},
year = {2025},
url = {https://huggingface.co/AbstractPhil/david-shared-space},
note = {Run ID: 20251012_191456}
}
```
## License
MIT License
## Acknowledgments
Built with crystal lattice geometry and multi-scale deep learning.
Special thanks to Claude (Anthropic) for debugging assistance.
---
*Generated on 2025-10-12 19:34:47*