WireFrameDETR / src /utils.py
StarAtNyte1's picture
Add src/utils.py
e8cd165 verified
Raw
History Blame Contribute Delete
1.32 kB
"""General utilities for S23DR 2026."""
import numpy as np
import os
from typing import Optional
def set_seed(seed=42):
import random
random.seed(seed)
np.random.seed(seed)
try:
import torch
torch.manual_seed(seed)
if torch.cuda.is_available():
torch.cuda.manual_seed_all(seed)
except ImportError:
pass
def get_hf_token():
return os.environ.get("HF_TOKEN") or os.environ.get("HUGGING_FACE_HUB_TOKEN")
def setup_hf_auth():
token = get_hf_token()
if token:
from huggingface_hub import login
login(token=token, add_to_git_credential=False)
return True
return False
def empty_solution():
return np.zeros((2, 3)), [(0, 1)], [6]
def validate_solution(vertices, edges):
if vertices is None or edges is None:
return False
if len(vertices) < 2 or len(edges) < 1:
return False
max_idx = len(vertices) - 1
for a, b in edges:
if a < 0 or b < 0 or a > max_idx or b > max_idx or a == b:
return False
return True
def format_time(seconds):
if seconds < 60:
return f"{seconds:.1f}s"
elif seconds < 3600:
return f"{seconds/60:.1f}m"
else:
return f"{seconds/3600:.1f}h"