from fastai.learner import * from fastai.vision.all import * import gradio as gr learn = load_learner("export.pkl") labels = learn.dls.vocab def predict(img): # Ensure img is a PILImage object; if it's already PIL, create won't harm it. # If it's a numpy array (e.g. from Gradio's Image component with type="numpy"), # PILImage.create will convert it. img = PILImage.create(img) pred, pred_idx, probs = learn.predict(img) # Ensure probs are float for JSON serialization if necessary return {labels[i]: float(probs[i]) for i in range(len(labels))} title = "Skin Lesion Classifier [RESNET 50]" description = "A skin lesion classifier trained on the ISIC2019 dataset with fastai. Created as a demo for Gradio and HuggingFace Spaces." article = "

Link to ISIC Dataset

" examples = ['img1.jpg', 'img2.jpg', 'img3.jpg'] # Updated Gradio Interface # gr.inputs.Image becomes gr.Image # gr.outputs.Label becomes gr.Label # 'shape' parameter for gr.Image is deprecated. Image size is handled by the component or by resizing in the predict function if needed. # 'type="pil"' ensures the input to predict() is a PIL Image, aligning with PILImage.create(). # 'num_top_classes' is a valid parameter for gr.Label. # 'interpretation' parameter is deprecated and removed. # 'enable_queue' is True by default, so explicit setting is often not needed but kept for clarity. iface = gr.Interface( fn=predict, inputs=gr.Image(type="pil", label="Upload Skin Lesion Image"), outputs=gr.Label(num_top_classes=3, label="Classification Results"), title=title, description=description, article=article, examples=examples, # interpretation='default', # Removed enable_queue=True ) if __name__ == '__main__': iface.launch() # import gradio as gr # from fastai.vision.all import * # import skimage # #Importing necessary libraries # import gradio as gr # #import scikit-learn as sklearn # from fastai.vision.all import * # from sklearn.metrics import roc_auc_score # learn = load_learner('export.pkl') # labels = learn.dls.vocab # def predict(img): # img = PILImage.create(img) # pred,pred_idx,probs = learn.predict(img) # return {labels[i]: float(probs[i]) for i in range(len(labels))} # examples = ['img1.jpg','img2.jpg','img3.jpg'] # #Launching the gradio application # gr.Interface(fn=predict,inputs=gr.inputs.Image(shape=(512, 512)), # outputs=gr.outputs.Label(num_top_classes=1), # title=title, # description=description,article=article, # examples=examples, # enable_queue=enable_queue).launch(inline=False) # #gr.Interface(fn=predict,inputs=gr.inputs.Image(shape=(224, 224)),outputs=gr.outputs.Label(num_top_classes=3),title=title,description=description,article=article,examples=examples,interpretation=interpretation,enable_queue=enable_queue).launch()