gin-config
gin-config copied to clipboard
Feature suggestion: defining arbitrary functions only using gin
This may be kinda hacky, but what if I wanted to use some function and only define it via gin file, so this is the solution I came up with: Function:
#utils.py
@gin.configurable
def arbitrary_func(module_name, func_name, kwargs):
"""Returns a function from a module."""
module = importlib.import_module(module_name)
func = getattr(module, func_name)
return func(**kwargs)
Gin file:
import utils
lr_schedule/utils.arbitrary_func:
module_name = "optax"
func_name = "linear_schedule"
kwargs = { "init_value":0.005, "end_value":0.1, "transition_steps": 10000 }
optimizer_config.AdamConfig:
lr_schedule = @lr_schedule/utils.arbitrary_func()
let me know what you think.