Spaces:
Running
Running
File size: 2,309 Bytes
fe965ff 9c5b99f fe965ff 9c5b99f fe965ff 9c5b99f fe965ff 9c5b99f fe965ff 9c5b99f fe965ff 9c5b99f fe965ff 9c5b99f fe965ff 9c5b99f fe965ff 9c5b99f fe965ff 9c5b99f | 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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | import streamlit as st
from autocatalog.inference.predictor import AutoCatalogPredictor
@st.cache_resource(show_spinner=False)
def load_predictor(repo_id, device=None):
return AutoCatalogPredictor(
repo_id=repo_id,
device=device,
)
def format_percent(value):
return f"{value * 100:.2f}%"
def render_prediction_card(task_name, task_result):
label = task_result["label"]
confidence = task_result["confidence"]
st.markdown(
f"""
<div class="prediction-card">
<div class="prediction-header">
<span class="task-name">{task_name}</span>
<span class="confidence">
{format_percent(confidence)}
</span>
</div>
<div class="label">{label}</div>
<div class="bar-bg">
<div
class="bar-fill"
style="width: {confidence * 100:.2f}%"
></div>
</div>
</div>
""",
unsafe_allow_html=True,
)
def render_top_predictions(prediction):
with st.expander("View Top-3 Predictions"):
for task, result in prediction.items():
st.markdown(f"**{task}**")
for item in result["top_3"]:
st.write(
f"{item['label']} — "
f"{format_percent(item['confidence'])}"
)
st.divider()
def render_metrics(metrics):
if not metrics:
return
overall = metrics.get("overall_metrics",{},)
if not overall:
return
st.subheader("Model Evaluation")
col1, col2, col3, col4 = st.columns(4)
col1.metric(
"Average Accuracy",
format_percent(
overall.get(
"average_accuracy",
0,
)
),
)
col2.metric(
"Weighted F1",
format_percent(
overall.get(
"average_weighted_f1",
0,
)
),
)
col3.metric(
"Top-3 Accuracy",
format_percent(
overall.get(
"average_top3_accuracy",
0,
)
),
)
col4.metric(
"Test Samples",
f"{overall.get('samples', 0):,}",
) |