Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from fastai.vision.widgets import * | |
| from fastai.vision.all import * | |
| from pathlib import Path | |
| import streamlit as st | |
| def is_cat(x): return x[0].isupper() | |
| class Predict: | |
| def __init__(self, filename): | |
| self.learn_inference = load_learner(Path()/filename) | |
| self.img = self.get_image_from_upload() | |
| if self.img is not None: | |
| self.display_output() | |
| self.get_prediction() | |
| def get_image_from_upload(): | |
| uploaded_file = st.file_uploader("Upload Files",type=['png','jpeg', 'jpg']) | |
| if uploaded_file is not None: | |
| return PILImage.create((uploaded_file)) | |
| return None | |
| def display_output(self): | |
| st.image(self.img.to_thumb(500,500), caption='Uploaded Image') | |
| def get_prediction(self): | |
| if st.button('Classify'): | |
| pred, pred_idx, probs = self.learn_inference.predict(self.img) | |
| st.write(f'Prediction: {pred}; Probability: {probs[pred_idx]:.04f}') | |
| else: | |
| st.write(f'Click the button to classify') | |
| if __name__=='__main__': | |
| file_name='model.pkl' | |
| predictor = Predict(file_name) |