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")
    ]