Spaces:
Runtime error
Runtime error
| 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 = "<p style='text-align: center'><a href='https://challenge.isic-archive.com/data/' target='_blank'>Link to ISIC Dataset</a></p>" | |
| 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() |