HimankJ's picture
Upload folder using huggingface_hub
f5facf4 verified
import gradio as gr
import torch
from utils.model_loader import ModelLoader
# Initialize model loader
model_loader = ModelLoader(bucket_name="model-deployment-data")
model = model_loader.model
transform = model_loader.get_transforms()
labels = model_loader.labels
facts = model_loader.facts
def predict(image):
"""Make prediction and return label, confidence, and fact"""
if image is None:
return None, None
# Preprocess image
img_tensor = transform(image).unsqueeze(0)
# Get prediction
with torch.no_grad():
outputs = model(img_tensor)
probabilities = torch.nn.functional.softmax(outputs, dim=1)
# Create prediction dictionary for all classes
predictions = {
labels[idx]: float(prob)
for idx, prob in enumerate(probabilities[0])
}
# Get the fact for the top prediction
top_label = max(predictions.items(), key=lambda x: x[1])[0]
fact = facts[top_label]
return predictions, fact
# Create Gradio interface
iface = gr.Interface(
fn=predict,
inputs=gr.Image(type="pil", label="Upload an image"),
outputs=[
gr.Label(num_top_classes=5, label="Classification Results"),
gr.Textbox(label="Fun Fact About This Category!")
],
title="🎯 Scene and Sport Classification",
description="""
## Classify Scenes and Sports!
Upload a clear photo, and I'll classify it into one of our categories and share an interesting fact about it!
This model can identify various scenes and sports activities with high accuracy.
### Supported Categories:
**Scenes**: Buildings, Forest, Glacier, Mountain, Sea, Street
**Sports**: Badminton, Baseball, Basketball, Football, Rowing, Swimming, Tennis
""",
article="""
### Tips for best results:
- Use clear, well-lit photos
- Ensure the main subject is visible
- Avoid blurry or dark images
### Model Information:
- This model is automatically updated with the best performing version through our CI/CD pipeline
- Latest model accuracy and performance metrics are tracked and monitored
- Trained on a combined dataset of natural scenes and sports activities
""",
examples=[
["examples/basketball.png"],
["examples/boxing.png"],
["examples/buildings.png"],
["examples/cricket.png"],
["examples/football.png"],
["examples/forest.png"],
["examples/formula_racing.png"],
["examples/glacier.png"],
["examples/golf.png"],
["examples/hockey.png"],
["examples/mountain.png"],
["examples/sea.png"],
["examples/street.png"]
],
theme=gr.themes.Citrus(),
css="footer {display: none !important;}"
)
if __name__ == "__main__":
iface.launch()