-
Notifications
You must be signed in to change notification settings - Fork 0
/
Web deployment
56 lines (46 loc) · 1.6 KB
/
Web deployment
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#import
import streamlit as st
import tensorflow as tf
import numpy as np
from PIL import Image
import pydot
import graphviz
import pydotplus
from streamlit.delta_generator import DeltaGenerator
from tensorflow.keras.models import *
from tensorflow_addons.losses import SigmoidFocalCrossEntropy
def load_trained_model():
model_1 = load_model (PATH of your trained models)
return model_1
model_1= load_trained_model()
def global_upload_file(uploaded_file):
global image_file
image_file= uploaded_file
def preprocess_image (image):
image = np.expand_dims(image, axis=0)
image = tf.image.resize(image, size=(256,256))
image = tf.cast(image, dtype='float32')/255.0
return image
def predict(image):
result_1= model_1.predict(image)
return result_1
st.title("""
Dự đoán khả năng ảnh da bị bệnh ung thư melanoma (ung thư hắc tố da) :sunglasses:
""")
st.write("\n")
col_1, col_2= st.beta_columns(2)
with col_1:
col_1.header("Upload Image")
st.set_option('deprecation.showfileUploaderEncoding', False)
uploaded_file: DeltaGenerator = st.file_uploader(" ", type=['png', 'jpg', 'jpeg'])
global_upload_file(uploaded_file)
col_2.header('Prediction result')
if col_2.button("Click Here to Classify"):
with st.spinner('Classifying ...'):
image = Image.open(uploaded_file).convert('RGB')
image = preprocess_image(image)
prediction = np.array(predict(image)).reshape(1)
prediction_number = prediction[0]
col_2.header("Algorithm Predicts: ")
st.write("Your chance of getting melanoma is", '\n')
st.write('**Probability: ** {:.2f} %'.format(prediction_number*100))