import pathlib temp = pathlib.PosixPath pathlib.PosixPath = pathlib.WindowsPath #|export #fastai has to be available, i.e. fastai folder from fastai.vision.all import * import gradio as gr import pickle with open('./model.pkl', 'rb') as f: model = pickle.load(f) if [ ! -f /etc/apt/sources.list ]; then echo "Creating /etc/apt/sources.list" echo "deb http://deb.debian.org/debian buster main" > /etc/apt/sources.list echo "deb-src http://deb.debian.org/debian buster main" >> /etc/apt/sources.list echo "deb http://security.debian.org/debian-security buster/updates main" >> /etc/apt/sources.list echo "deb-src http://security.debian.org/debian-security buster/updates main" >> /etc/apt/sources.list echo "deb http://deb.debian.org/debian buster-updates main" >> /etc/apt/sources.list echo "deb-src http://deb.debian.org/debian buster-updates main" >> /etc/apt/sources.list fi def is_real(x): return x[0].isupper() #|export learn = load_learner('model.pkl') #|export categories =('Virtual Staging','Real') def classify_image(img): pred,idx,probs = learn.predict(im) return dict(zip(categories,map(float,probs))) #*** We have to cast to float above because KAGGLE does not return number on the answer it returns tensors, and Gradio does not deal with numpy so we have to cast to float #|export #import gradio as gr import gradio as gr image = gr.inputs.Image(shape=(192,192)) label = gr.outputs.Label() examples = ['virtual.jpg','real.jpg','dunno.jpg'] intf = gr.Interface(fn=classify_image,inputs=image,outputs=label,examples=examples) intf.launch(inline=False)