Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import torch | |
| import torch.nn.functional as f | |
| import torch.nn as nn | |
| import joblib | |
| html_temp = """ | |
| <div style="background-color:black;padding:10px"> | |
| <h2 style="color:white;text-align:center;"> Fetal Health App </h2> | |
| </div> | |
| """ | |
| st.markdown(html_temp, unsafe_allow_html=True) | |
| st.markdown(f""" | |
| <style> | |
| /* Set the background image for the entire app */ | |
| .stApp {{ | |
| background-color:#a0aecd; | |
| background-size: 100px; | |
| background-repeat:no; | |
| background-attachment: auto; | |
| background-position:full; | |
| }} | |
| </style> | |
| """, unsafe_allow_html=True) | |
| ## model development | |
| class ClassificationModel(nn.Module): | |
| def __init__(self, input_dim): | |
| super(ClassificationModel, self).__init__() | |
| self.fc1 = nn.Linear(input_dim, 16) | |
| self.relu = nn.ReLU() | |
| self.dropout = nn.Dropout(0.2) | |
| self.fc2 = nn.Linear(16,8) | |
| self.fc3 = nn.Linear(8, 4) | |
| self.fc4 = nn.Linear(4, 2) # 2 outputs for binary classification | |
| def forward(self, x): | |
| x = f.relu(self.fc1(x)) | |
| x = f.relu(self.fc2(x)) | |
| x = f.relu(self.fc3(x)) | |
| x = self.fc4(x) # No softmax, since CrossEntropyLoss applies it | |
| return x | |
| torch.manual_seed(42) | |
| model=ClassificationModel(input_dim=11) | |
| ## loading the models | |
| scaler_x=joblib.load('x_sacaler_model.joblib') | |
| # Load the entire model | |
| model.load_state_dict(torch.load( "fetal_health_model.pth", map_location=torch.device("cpu"))) | |
| model.eval() | |
| ## inputs | |
| col1,col2 =st.columns(2) | |
| with col1: | |
| # Age | |
| age = st.slider("Slide the age of Patient in date wise",min_value=10798,max_value=23713,value=1500) | |
| with col2: | |
| # gender | |
| gender_option =["MALE","Female"] | |
| gender=st.selectbox("Select the Gender of the Patient ",gender_option) | |
| gender_value = gender_option.index(gender) | |
| with col1: | |
| # height | |
| height = st.slider("Slide Height of the Patient in cm's ",min_value=55,max_value=250,value=75) | |
| with col2: | |
| # Weight | |
| weight = st.slider("Slide the Weight of the Patient in Kg's ",min_value=10.0,max_value=200.0,value=50.0) | |
| col1,col2=st.columns(2) | |
| with col1: | |
| # ap_hi | |
| ap_hi =st.slider("Slide the ap high of the Patient ",min_value=-150,max_value=16020,value=15) | |
| with col2: | |
| # ap_lo | |
| ap_lo=st.slider("Slide the ap Low of the Patient ",min_value=-70,max_value=11000,value=200) | |
| col1,col2=st.columns(2) | |
| with col1: | |
| # cholesterol | |
| chol_option =["Normal","Above Normal","Well"] | |
| chol=st.selectbox("Select the condition of the Patient",chol_option) | |
| chol_value=chol_option.index(chol) | |
| with col2: | |
| glue_option =["Normal","Above Normal","Well"] | |
| glue=st.selectbox("Select the Glue of the Patient",glue_option) | |
| glue_value=glue_option.index(glue) | |
| col1,col2=st.columns(2) | |
| with col1: | |
| smoke_option =["NO","Yes"] | |
| smoke=st.selectbox("Are YOU smoker ",smoke_option) | |
| smoke_value=smoke_option.index(smoke) | |
| with col2: | |
| aclo_option =["NO","Yes"] | |
| aclo=st.selectbox(" Are you Alcholic ",aclo_option) | |
| aclo_value=aclo_option.index(aclo) | |
| active_option =["NO","Yes"] | |
| active=st.selectbox("Are you active person ",active_option) | |
| active_value=active_option.index(active) | |
| if st.button("Enter"): | |
| # st.write(age,gender_value,height,weight,ap_hi,ap_lo,chol_value, | |
| # glue_value,smoke_value,aclo_value,active_value) | |
| values=scaler_x.transform([[age,gender_value,height,weight,ap_hi,ap_lo,chol_value, | |
| glue_value,smoke_value,aclo_value,active_value]]) | |
| # st.write(values) | |
| values_tensor=torch.tensor(values,dtype=torch.float32) | |
| with torch.no_grad(): # Disable gradient calculation (faster inference) | |
| output = model(values_tensor) | |
| # st.write(output.argmax(dim=1)) | |
| out_value=output.argmax(dim=1) | |
| if out_value ==0: | |
| st.write("The Patient is Healthy") | |
| else : | |
| st.write("The Patient is UN Healthy") | |