Cheese Texture Classifier (AutoML)
Model Creator: Rumi Loghmani (@rlogh)
Original Dataset: aslan-ng/cheese-image (by Aslan Noorghasemi)
This model performs 4-class texture classification on cheese images using AutoML-optimized transfer learning. The model was developed by Rumi Loghmani using the cheese image dataset created by Aslan Noorghasemi.
Model Description
- Architecture: Transfer Learning with resnet34
- Task: 4-class texture classification (Low, Medium-Low, Medium-High, High texture)
- Input: 224x224 RGB images
- Output: 4-class probability distribution
Training Details
- Model Developer: Rumi Loghmani (@rlogh)
- Dataset: aslan-ng/cheese-image (by Aslan Noorghasemi)
- AutoML Method: Optuna with 20 trials
- Transfer Learning: Pre-trained resnet34 backbone
- Early Stopping: Yes (patience=10)
- Max Epochs: 50
Performance
- Test Accuracy: 80.00%
- Validation Accuracy: 50.00%
- Test Loss: 1.6345
Best Hyperparameters (AutoML Optimized)
{
"model_name": "resnet34",
"dropout_rate": 0.4682019316470914,
"learning_rate": 0.00027817005315620047,
"weight_decay": 1.4677013775851028e-05,
"batch_size": 2
}
Usage
import torch
import torch.nn as nn
from PIL import Image
import torchvision.transforms as transforms
import torchvision.models as models
# Load model (define TransferLearningModel class first)
model = TransferLearningModel(num_classes=4, dropout_rate=0.4682019316470914, model_name='resnet34')
model.load_state_dict(torch.load('pytorch_model.bin'))
model.eval()
# Preprocess image
transform = transforms.Compose([
transforms.Resize((224, 224)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])
# Load and preprocess image
image = Image.open('cheese_image.jpg').convert('RGB')
input_tensor = transform(image).unsqueeze(0)
# Make prediction
with torch.no_grad():
output = model(input_tensor)
probabilities = torch.softmax(output, dim=1)
predicted_class = torch.argmax(probabilities, dim=1).item()
class_names = ["Low Texture", "Medium-Low Texture", "Medium-High Texture", "High Texture"]
print(f"Predicted class: {class_names[predicted_class]}")
Class Definitions
- Class 0 (Low Texture): Texture values <= 0.425
- Class 1 (Medium-Low Texture): Texture values 0.425 < x <= 0.600
- Class 2 (Medium-High Texture): Texture values 0.600 < x <= 0.775
- Class 3 (High Texture): Texture values > 0.775
AutoML Features
- Hyperparameter Optimization: Optuna with 20 trials
- Architecture Search: ResNet18 vs ResNet34
- Transfer Learning: Pre-trained ImageNet weights
- Early Stopping: Prevents overfitting
- Fixed Budget: 20 trials, 10-minute timeout
Limitations
- Trained on a very small dataset (30 images)
- Texture classification may not generalize to all cheese types
- Performance may vary with different lighting conditions or image quality
AI Usage
This notebook was developed with the assistance of AI as a coding co-pilot. AI tools were used to:
- Suggest code snippets: AI provided suggestions for implementing various parts of the code, such as the dataset class, model architecture, training loops, and data preprocessing steps.
- Debug and refactor code: AI helped identify potential errors and suggest ways to refactor code for improved readability and efficiency.
- Generate documentation: AI assisted in generating explanations for code sections and creating the model card for Hugging Face.
- Explore potential issues: AI provided insights into potential challenges, such as handling small batch sizes and implementing early stopping, and suggested strategies to address them.
The AI served as a valuable partner throughout the development process, accelerating coding and improving code quality.
Citation
If you use this model, please cite both the model and the original dataset:
Model Citation:
@model{rlogh/cheese-texture-classifier-automl,
title={Cheese Texture Classifier (AutoML)},
author={Rumi Loghmani},
year={2024},
url={https://huggingface.co/rlogh/cheese-texture-classifier-automl}
}
Dataset Citation:
@dataset{aslan-ng/cheese-image,
title={Cheese Image Dataset},
author={Aslan Noorghasemi},
year={2024},
url={https://huggingface.co/datasets/aslan-ng/cheese-image}
}
- Downloads last month
- 59
Dataset used to train rlogh/cheese-texture-classifier-Neural
Space using rlogh/cheese-texture-classifier-Neural 1
Evaluation results
- Test Accuracy on Cheese Image Datasetself-reported80.000