一些背景:可以为平方根定义自定义插值:
from omegaconf import OmegaConf
import math
OmegaConf.register_resolver("sqrt", lambda x: math.sqrt(float(x)))
并将其与此 config.yaml 一起使用:
foo: ${sqrt:9}
加载和打印 foo:
cfg = OmegaConf.load('config.yaml')
print(cfg.foo)
输出3.0
尝试使用 Hydra 时:
import hydra
@hydra.main(config_path="config.yaml")
def main(cfg):
print(cfg.foo)
if __name__ == "__main__":
main()
我收到以下错误:
Unsupported interpolation type sqrt
full_key: foo
reference_type=Optional[Dict[Any, Any]]
object_type=dict
使用 Hydra 时如何注册我的解析器?