MasoudSamaei's picture
Update app.py
4fe94fa
import pickle
def make_prediction(al, type, dr, sn, percent, tmax):
if percent == 0:
return "There is not any improvement in shear strength"
else:
if al == "Decision Tree" :
with open("Decision_Tree.pkl", "rb") as f:
clf = pickle.load(f)
preds = clf.predict([[type, dr, sn, percent]])
return f"""Shear strength after improvement: {round((preds.squeeze() * tmax),2)}
Improvement percentage: {round((preds.squeeze()-1)*100,2)}%"""
elif al == "Random Forest" :
with open("random_forest.pkl", "rb") as f:
clf = pickle.load(f)
preds = clf.predict([[type, dr, sn, percent]])
return f"""Shear strength after improvement: {round((preds.squeeze() * tmax),2)}
Improvement percentage: {round((preds.squeeze()-1)*100,2)}%"""
elif al == "XGBoost" :
with open("XGBoost.pkl", "rb") as f:
clf = pickle.load(f)
preds = clf.predict([[type, dr, sn, percent]])
return f"""Shear strength after improvement: {round((preds.squeeze() * tmax),2)}
Improvement percentage: {round((preds.squeeze()-1)*100,2)}%"""
elif al == "AdaBoost" :
with open("AdaBoost.pkl", "rb") as f:
clf = pickle.load(f)
preds = clf.predict([[type, dr, sn, percent]])
return f"""Shear strength after improvement: {round((preds.squeeze() * tmax),2)}
Improvement percentage: {round((preds.squeeze()-1)*100,2)}%"""
import gradio as gr
#Create the input component for Gradio since we are expecting 5 inputs
Algorithm = gr.Radio(["Decision Tree", "Random Forest", "XGBoost", "AdaBoost"], value="Decision Tree", label="Algorithm")
pet_type = gr.Slider(1, 3, value=1, step=1, label="PET type", info="Choose 1 for 1*1 PET, 2 for 1*5 PET, and 3 for fiber PET")
DR = gr.Slider(0.55, 0.95, step=0.2, label="Relative Density (Dr)", info="Range between 0.55 to 0.95")
SN = gr.Slider(50, 150, step=50, label="Normal Stresses (Sn)", info="Range between 50 to 150")
PPERCENT= gr.Slider(0, 2, step=0.1, label="PET Percent", info="Range between 0 to 2")
ShearStrength= gr.Slider(36.5, 144, step=0.1, label="Shear Strength (plain soil without PET)", info="Range between 36 to 144")
# We create the output
output = gr.Textbox()
app = gr.Interface(fn = make_prediction, inputs=[Algorithm, pet_type, DR, SN, PPERCENT, ShearStrength], outputs=output,
title= "Soil Improvement Using PET Calculator",
description = """
This app is based on the paper 'Development of a non-destructive method to assess the shear strength of a sandy soil reinforced with polyethylene-terephthalate (PET)'
Authors: Masoud Samaei1, Roohollah Shirani Faradonbeh1,*, Morteza Alinejad Omran2, Nima Rahimpour3, Amir Bazrafshan Moghaddam2
1,* WA School of Mines: Minerals, Energy and Chemical Engineering, Curtin University, Kalgoorlie, WA 6430, Australia
2 Department of Civil Engineering, Shahrood University of Technology, Shahrood, Iran
3 Faculty of Engineering, University of Tabriz, Tabriz, Iran
* Corresponding Author—Email: roohollah.shiranifaradonbeh@curtin.edu.au
""",
live=False)
app.launch()