Spaces:
Sleeping
Sleeping
File size: 3,052 Bytes
9935a4c 56da072 9935a4c 1633182 56da072 8d2450a 9935a4c 2b05e43 8d2450a 9935a4c 8d2450a 9935a4c 8d2450a 2b05e43 8d2450a 2b05e43 1633182 9935a4c 70a1bb4 8d2450a 56da072 8d2450a b343d52 2b05e43 8d2450a 6426419 56da072 6426419 56da072 8d2450a 1633182 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# AUTOGENERATED! DO NOT EDIT! File to edit: app.ipynb.
# %% auto 0
__all__ = ['interpretation', 'enable_queue', 'title', 'description', 'learners', 'models', 'active_name', 'active_model',
'example_images', 'demo', 'classify_image', 'select_model', 'update_matrix', 'update_losses']
# %% app.ipynb 1
from fastai.vision.all import *
import gradio as gr
interpretation='default'
enable_queue=True
title = "FastAI - Big Cats Classifier"
description = "Classify big cats using all Resnet models available pre-trained in FastAI"
# %% app.ipynb 2
learners = {
"resnet-18" : 'models/resnet18-model.pkl',
"resnet-34" : 'models/resnet34-model.pkl',
"resnet-50" : 'models/resnet50-model.pkl',
"resnet-101": 'models/resnet101-model.pkl',
"resnet-152": 'models/resnet152-model.pkl'
}
models = list(learners.keys())
active_name = "resnet-18"
active_model = learners[active_name]
# %% app.ipynb 3
def classify_image(img):
learn = load_learner(active_model)
pred,idx,probs = learn.predict(img)
return dict(zip(learn.dls.vocab, map(float, probs)))
def select_model(model_name):
if model_name not in models:
model_name = "resnet-18"
active_name = model_name
active_model = learners[active_name]
return model_name.upper()
def update_matrix():
return "models/" + active_name.replace('-','',1) + "-confusion-matrix.png"
def update_losses():
return "models/" + active_name.replace('-','',1) + "-top-losses.png"
# %% app.ipynb 5
example_images = [ 'cheetah.jpg', 'jaguar.jpg', 'tiger.jpg', 'cougar.jpg', 'lion.jpg', 'african leopard.jpg', 'clouded leopard.jpg', 'snow leopard.jpg', 'hidden.png', 'hidden2.png' ]
demo = gr.Blocks()
with demo:
with gr.Column(variant="panel"):
image = gr.inputs.Image(label="Pick an image")
model = gr.inputs.Dropdown(label="Select a model", choices=models)
with gr.Row(equal_height=True):
btnClassify = gr.Button("Classify")
btnClear = gr.Button("Clear")
with gr.Column(variant="panel"):
selected = gr.outputs.Textbox(label="Active Model")
with gr.Row(equal_height=True):
matrix=gr.outputs.Image(type='filepath', label="Confusion Matrix")
losses=gr.outputs.Image(type='filepath', label="Top Losses")
result = gr.outputs.Label(label="Result")
img_gallery = gr.Examples(examples=example_images, inputs=image)
# Register all event listeners
model.change(fn=select_model, inputs=model, outputs=selected)
model.change(fn=update_matrix, outputs=matrix)
model.change(fn=update_losses, outputs=losses)
btnClassify.click(fn=classify_image, inputs=image, outputs=result)
btnClear.click(fn=lambda: gr.Image.update(value=None), inputs=None, outputs=None)
demo.launch(debug=True, inline=False)
# intf = gr.Interface(fn=classify_image, inputs=image, outputs=label, examples=example_images, title=title, description=description )
# if __name__ == "__main__":
# intf.launch(debug=True, inline=False)
|