import gradio as gr from fastai.vision.all import * title = "Interstellar" description = ( "Experimental Astronomical Classifier built for the fast.ai 'Deep Learning' " "course by fine tuning ResNet50 (1 + 3 epochs) with a custom dataset " "of images (150 per label with augmentation)." ) inputs = gr.components.Image() outputs = gr.components.Label() examples = "examples" model_class = load_learner("models/model.class.pkl") labels_class = model_class.dls.vocab model_object = load_learner("models/model.object.pkl") labels_object = model_object.dls.vocab def predict_class(img): pred, pred_idx, probs = model_class.predict(img) return dict(zip(labels_class, map(float, probs))) def predict_object(img): pred, pred_idx, probs = model_object.predict(img) return dict(zip(labels_object, map(float, probs))) with gr.Blocks() as demo: with gr.Tab("Class Prediction"): gr.Interface( fn=predict_class, inputs=inputs, outputs=outputs, examples=examples, title=title, description=description, ).queue(default_concurrency_limit=5) with gr.Tab("Object Prediction"): gr.Interface( fn=predict_object, inputs=inputs, outputs=outputs, examples=examples, title=title, description=description, ).queue(default_concurrency_limit=5) demo.launch()