File size: 2,145 Bytes
505d963 |
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 |
from dataclasses import dataclass
from typing import List, Any
import gradio as gr
@dataclass
class AutoEvalColumn:
"""Column definition for the main leaderboard table"""
name: str
type: str
def make_clickable_model(model_name: str) -> str:
"""
Convert model name to clickable link format for Gradio.
"""
if not model_name or model_name == "N/A":
return model_name
# Create clickable link to Hugging Face model page
huggingface_url = f"https://huggingface.co/{model_name}"
return f"[{model_name}]({huggingface_url})"
def make_clickable_paper(paper_url: str) -> str:
"""
Convert paper URL to clickable link format for Gradio.
"""
if paper_url == "N/A" or not paper_url:
return "N/A"
# Use markdown format for better Gradio compatibility
return f'[π Paper]({paper_url})'
def styled_error(message: str) -> str:
"""Return a styled error message"""
return f'<div style="color: red; background-color: #ffe6e6; padding: 10px; border-radius: 5px; border: 1px solid #ffcccc;">β {message}</div>'
def styled_message(message: str) -> str:
"""Return a styled success message"""
return f'<div style="color: green; background-color: #e6ffe6; padding: 10px; border-radius: 5px; border: 1px solid #ccffcc;">β
{message}</div>'
# Define the fields for the main leaderboard
fields = lambda cls: [getattr(cls, field.name) for field in cls.__dataclass_fields__.values()]
# Column definitions for ImageNet-1k leaderboard
def get_imagenet_columns() -> List[AutoEvalColumn]:
"""Get column definitions for ImageNet-1k leaderboard"""
return [
AutoEvalColumn("Model", "markdown"),
AutoEvalColumn("Top-1 Accuracy β¬οΈ", "number"),
AutoEvalColumn("Top-5 Accuracy β¬οΈ", "number"),
AutoEvalColumn("Parameters (M)", "number"),
AutoEvalColumn("FLOPs (G)", "number"),
AutoEvalColumn("Inference Time (ms)", "number"),
AutoEvalColumn("Model Size (MB)", "number"),
AutoEvalColumn("Paper", "markdown"),
AutoEvalColumn("Year", "number"),
AutoEvalColumn("License", "str")
]
|