Spaces:
Runtime error
Runtime error
| ## LIBRARIES ### | |
| from cProfile import label | |
| from tkinter import font | |
| from turtle import width | |
| import streamlit as st | |
| import pandas as pd | |
| from datetime import datetime | |
| import plotly.express as px | |
| def read_file_to_df(file): | |
| return pd.read_csv(file) | |
| def date_range(df): | |
| time = df.index.to_list() | |
| time_range = [] | |
| for t in time: | |
| time_range.append(str(datetime.strptime(t, '%Y-%m-%dT%H:%M:%S.%fZ').date().month) +'/' + str(datetime.strptime(t, '%Y-%m-%dT%H:%M:%S.%fZ').date().day)) | |
| return time_range | |
| if __name__ == "__main__": | |
| ### STREAMLIT APP CONGFIG ### | |
| st.set_page_config(layout="wide", page_title="HF Hub Model Usage Visualization") | |
| popularity = st.sidebar.radio( | |
| "Model popularity", ('Low', 'Moderate', 'High'), key = "popularity", index=2) | |
| st.header("Model Usage Visualization") | |
| with st.container(): | |
| df_2021 = read_file_to_df("./assets/2021/model_init_time.csv") | |
| df_2021.fillna(0, inplace=True) | |
| df_plot = df_2021.set_index('Model').T | |
| df_plot.index = date_range(df_plot) | |
| df_plot_2021 = pd.DataFrame() | |
| if popularity == 'Low': | |
| df_plot_2021 = df_plot[df_plot.columns[(df_plot.mean(axis=0)<=5000) & (df_plot.mean(axis=0)>=3500)]] | |
| elif popularity == 'Moderate': | |
| df_plot_2021 = df_plot[df_plot.columns[(df_plot.mean(axis=0)<=40000) & (df_plot.mean(axis=0)>=5000)]] | |
| else: | |
| df_plot_2021 = df_plot[df_plot.columns[df_plot.mean(axis=0)>=40000]] | |
| fig = px.line(df_plot_2021, title="Model Usage Trends in 2021", labels={"index": "Weeks", "value": "Usage", "variable": "Model"}) | |
| st.plotly_chart(fig, use_container_width=True) | |
| with st.container(): | |
| df_2022 = read_file_to_df("./assets/2022/model_init_time.csv") | |
| df_2022.fillna(0, inplace=True) | |
| df_plot = df_2022.set_index('Model').T | |
| df_plot.index = date_range(df_plot) | |
| df_plot_2022 = pd.DataFrame() | |
| if popularity == 'Low': | |
| df_plot_2022 = df_plot[df_plot.columns[(df_plot.mean(axis=0)<500) & (df_plot.mean(axis=0)>=300)]] | |
| elif popularity == 'Moderate': | |
| df_plot_2022 = df_plot[df_plot.columns[(df_plot.mean(axis=0)<=1500) & (df_plot.mean(axis=0)>=500)]] | |
| else: | |
| df_plot_2022 = df_plot[df_plot.columns[df_plot.mean(axis=0)>=1500]] | |
| fig = px.line(df_plot_2022, title="Model Usage Trends in 2022", labels={"index": "Weeks", "value": "Usage", "variable": "Model"}) | |
| st.plotly_chart(fig, use_container_width=True) | |