Pliploop's picture
Upload folder using huggingface_hub
bda104d verified
Raw
History Blame Contribute Delete
1.09 kB
r"""Custom functions to register by Hydra"""
from typing import Callable, Dict
from dora import get_xp
from omegaconf import OmegaConf
def register_custom_resolvers(extra_resolvers: Dict[str, Callable] = None):
"""Wrap your main function with this.
You can pass extra kwargs, e.g. `version_base` introduced in 1.2.
"""
extra_resolvers = extra_resolvers or {}
for name, resolver in extra_resolvers.items():
OmegaConf.register_new_resolver(name, resolver)
def dora_resolver(var: str) -> str:
obj, attr = var.split('.')
if obj == "xp":
try:
xp = get_xp()
except RuntimeError as e:
if str(e) == "Not in a xp!":
return ""
raise e
return str(getattr(xp, attr))
raise ValueError("Unrecognized variable '{}'".format(var))
def effective_lr(base_lr: float, batch_size: int) -> float:
return base_lr * batch_size / 256
def register_resolvers():
register_custom_resolvers({
"dora": dora_resolver,
"effective_lr": effective_lr,
"eval": eval
})