# import gradio as gr | |
# from fastai.vision.all import * | |
# import timm | |
# # Load the exported model | |
# learn = load_learner('./efficientnet_b3_model.pkl', cpu=True) # Using cpu=True for compatibility | |
# learn.export('./efficientnet_b3_model.pkl') # export_model(learn, 'efficientnet_b3_model.pkl') | |
# # Define the prediction function | |
# def classify_image(image): | |
# pred, idx, probs = learn.predict(image) | |
# # Return the top 3 predictions with their probabilities | |
# return {learn.dls.vocab[i]: float(probs[i]) for i in range(len(probs))} | |
# # Set up the Gradio interface | |
# interface = gr.Interface( | |
# fn=classify_image, # Function to make predictions | |
# inputs=gr.Image(type="pil"), # Input as an image in PIL format | |
# outputs=gr.Label(num_top_classes=3), # Output shows top 3 predicted classes | |
# title="EfficientNet B3 Image Classifier", | |
# description="Upload an image to classify using the trained EfficientNet B3 model." | |
# ) | |
# # Launch the Gradio app | |
# if __name__ == "__main__": | |
# interface.launch(share=True) # `share=True` makes the app publicly accessible | |
from pathlib import Path | |
from fastai.vision.all import * | |
import gradio as gr | |
# Correctly format the path for Windows | |
model_path = Path(r'efficientnet_b3_model.pkl') | |
# Load the model | |
learn = load_learner(model_path, cpu=True) | |
# Define the prediction function | |
def classify_image(image): | |
pred, idx, probs = learn.predict(image) | |
return {learn.dls.vocab[i]: float(probs[i]) for i in range(len(probs))} | |
# Set up the Gradio interface | |
interface = gr.Interface( | |
fn=classify_image, | |
inputs=gr.Image(type="pil"), | |
outputs=gr.Label(num_top_classes=3) + 'cancer stage', | |
title="EfficientNet B3 Image Classifier", | |
description="Upload an image to classify using the trained EfficientNet B3 model." | |
) | |
# Launch the app | |
if __name__ == "__main__": | |
interface.launch(share=True) | |