# AUTOGENERATED! DO NOT EDIT! File to edit: ../app.ipynb. # %% auto 0 __all__ = ['modelname', 'pokemon_types', 'pokemon_types_en', 'examplespath', 'learn_inf', 'lang', 'prob_threshold', 'classify_image'] # %% ../app.ipynb 3 import pandas as pd modelname = f'model_gen0.pkl' pokemon_types = pd.read_csv(f'pokemon.csv') pokemon_types_en = pokemon_types['en'] examplespath = 'images/' # %% ../app.ipynb 7 from huggingface_hub import hf_hub_download from fastai.learner import load_learner learn_inf = load_learner(hf_hub_download("Okkoman/PokeFace", modelname)) # %% ../app.ipynb 9 import gradio as gr lang = 'en' prob_threshold = 0.75 from flask import request if request: lang = request.headers.get("Accept-Language") if lang == 'fr': title = "# PokeFace - Quel est ce pokemon ?" description = "## Un classifieur pour les pokemons de 1ere et 2eme générations (001-251)" unknown = 'inconnu' else: title = "# PokeFace - What is this pokemon ?" description = "## An classifier for 1st-2nd generation pokemons (001-251)" unknown = 'unknown' def classify_image(img): pred,pred_idx,probs = learn_inf.predict(img) index = pokemon_types_en[pokemon_types_en == pred].index[0] label = pokemon_types[lang].iloc[index] if probs[pred_idx] > prob_threshold: return f"{index+1} - {label} ({probs[pred_idx]*100:.0f}%)" else: return unknown with gr.Blocks() as demo: with gr.Row(): gr.Markdown(title) with gr.Row(): gr.Markdown(description) with gr.Row(): interf = gr.Interface( fn=classify_image, inputs=gr.inputs.Image(shape=(192,192)), outputs=gr.outputs.Label(), examples=examplespath, allow_flagging='auto') demo.launch(inline=False)