cassieli226's picture
Add README.md with model card
dd66b05 verified
|
raw
history blame
3.47 kB
---
tags:
- autogluon
- multimodal
- image-classification
- binary-classification
- ensemble-learning
- education
- homework
datasets:
- ecopus/sign_identification
license: mit
---
# HW1 Sign Identification with AutoGluon
## Model Description
This repository contains an **AutoML image classification model trained with AutoGluon Multimodal**
to identify two categories of sign images.
The model was trained as part of **Homework 1** in CMU 24-679 (Designing and Deploying AI/ML).
- **Framework**: [AutoGluon Multimodal](https://auto.gluon.ai/stable/tutorials/multimodal/index.html)
- **Backbone**: TimmAutoModelForImagePrediction (~194M parameters)
- **Task**: Binary image classification (`label`)
- **Classes**: `0`, `1`
---
## Training Setup
- **Dataset**: [ecopus/sign_identification](https://huggingface.co/datasets/ecopus/sign_identification)
- `augmented` split (385 samples) → used for training/validation (80/20).
- `original` split (35 samples) → reserved for final testing.
- **Time budget**: 300 seconds (≈7 minutes).
- **Hardware**: Colab GPU (CUDA 12.6, mixed precision).
- **Presets**: `best_quality` (ensembling + hyperparameter tuning).
---
## Results
- **Validation ROC-AUC**: 0.998
- **Test Accuracy**: 97.1%
- **Weighted F1**: 97.1%
### Classification Report (Test Set)
precision recall f1-score support
0 0.95 1.00 0.97 19
1 1.00 0.94 0.97 16
accuracy 0.97 35
macro avg 0.97 0.97 0.97 35
weighted avg 0.97 0.97 0.97 35
---
## How to Use
### Install requirements
```bash
pip install autogluon.multimodal huggingface_hub cloudpickle
import cloudpickle
from huggingface_hub import hf_hub_download
pkl_path = hf_hub_download(
repo_id="cassieli226/sign-identification-automl",
filename="autogluon_predictor.pkl",
repo_type="model"
)
with open(pkl_path, "rb") as f:
predictor = cloudpickle.load(f)
# Predict on new data (expects DataFrame with 'image' column containing file paths)
import pandas as pd
X_test = pd.DataFrame({"image": ["path/to/your/image.png"]})
print(predictor.predict(X_test))
import pathlib, shutil, zipfile
from huggingface_hub import hf_hub_download
import autogluon.multimodal as ag
import pandas as pd
zip_path = hf_hub_download(
repo_id="cassieli226/sign-identification-automl",
filename="autogluon_predictor_dir.zip",
repo_type="model"
)
extract_dir = pathlib.Path("predictor_dir")
if extract_dir.exists():
shutil.rmtree(extract_dir)
with zipfile.ZipFile(zip_path, "r") as zf:
zf.extractall(str(extract_dir))
predictor = ag.MultiModalPredictor.load(str(extract_dir))
print(predictor.predict(pd.DataFrame({"image": ["path/to/your/image.png"]})))
---
#Intended Use
- Coursework demonstration of AutoML for neural networks on images.
- Educational example for using augmented vs. original splits for training and evaluation.
#Limitations
- Trained on a small student-collected dataset (≈420 images).
- Accuracy may not generalize to unseen real-world data.
- Model assumes binary labels only (0, 1).
#Ethical Notes
- Dataset is non-sensitive, contains no personal information.
- Augmentation was applied responsibly to avoid unrealistic samples.
# References
- Dataset: ecopus/sign_identification
- Framework: AutoGluon
- OpenAI’s ChatGPT (2025) was used for code generation, structuring, and debugging.