computer_vision / model_result.py
destiratnakomala's picture
Upload 26 files
71b20ff
import streamlit as st
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import plotly.express as px
import time
def report():
df = pd.read_csv('./csv/training_history.csv')
df.rename(columns={'Unnamed: 0':'epoch'}, inplace=True)
st.header("Model Report")
st.subheader("Performance")
plot_anim = st.sidebar.selectbox(label='Select Performance Metrics', options=["Accuracy", "Loss"])
def performance_plot(data):
progress_bar = st.sidebar.progress(0)
status_text = st.sidebar.empty()
last_rows = [df[data].iloc[0]]
chart = st.line_chart(last_rows, use_container_width=True, height=400)
for i in range(1, len(df)):
new_rows = [df[data].iloc[i]]
status_text.text(f"{round(i/63 * 100, 2)} % Complete")
chart.add_rows(new_rows)
progress_bar.progress(i)
last_rows = new_rows
time.sleep(0.05)
progress_bar.empty()
if plot_anim == "Accuracy":
data_plot = ['accuracy', 'val_accuracy']
performance_plot(data_plot)
else:
data_plot = ['loss', 'val_loss']
performance_plot(data_plot)
st.button("Re-run")
st.markdown('''
* In this model, it can be observed that the convergence occurs before epoch 20.
* From epoch 40-50, the model starts to stagnate, prompting a reduction in the learning rate.
* However, it can be seen that the model is slightly less stable in validation before the learning rate reduction.
* Based on these observations, we can say that this model is still slightly underfit.
''')
if __name__ == "__main__":
report()