test-tem / app.py
refaat9900's picture
Update app.py
c6adf9a verified
Raw
History Blame Contribute Delete
1.93 kB
# ======= PATCH FIRST =======
import fastcore.transform as _fct
try:
import fasttransform
if not hasattr(_fct, 'Pipeline'):
from fasttransform import Pipeline
_fct.Pipeline = Pipeline
except:
pass
import torch
_original_torch_load = torch.load
def _patched_load(*args, **kwargs):
kwargs['weights_only'] = False
return _original_torch_load(*args, **kwargs)
torch.load = _patched_load
# ======= NOW import fastai =======
from fastai.vision.all import *
import gradio as gr
path = '/content/clothing-dataset-full'
def get_x(r):
return path + '/images_original/' + r['image']
def get_y(r):
return r['label_cat'].split(' ')
# ======= Load model =======
model = load_learner("clothing_classifier.pkl", cpu=True)
all_labels = model.dls.vocab
def predict(img):
img = PILImage.create(img)
pred, pred_idx, probs = model.predict(img)
age_labels = ['Kids', 'Adults']
clothing_labels = [l for l in all_labels if l not in age_labels]
# أفضل clothing
clothing_probs = {l: float(probs[list(all_labels).index(l)]) for l in clothing_labels}
best_clothing = max(clothing_probs, key=clothing_probs.get)
# العمر
kids_prob = float(probs[list(all_labels).index('Kids')])
adults_prob = float(probs[list(all_labels).index('Adults')])
age = 'Kids' if kids_prob > adults_prob else 'Adults'
# النتيجة: العنوان + top 4 ملابس بس (بدون Adults/Kids)
top_clothing = dict(sorted(clothing_probs.items(), key=lambda x: x[1], reverse=True)[:4])
result = {f" {best_clothing} for {age}": 1.0}
result.update(top_clothing)
return result
demo = gr.Interface(
fn=predict,
inputs=gr.Image(type="pil"),
outputs=gr.Label(num_top_classes=5),
title="👗 Clothes Classifier",
description="Upload a clothing image and the model will classify it!"
)
demo.launch(server_name="0.0.0.0", server_port=7860)