megvii-research / hpman

A hyperparameter manager for deep learning experiments.
MIT License
94 stars 11 forks source link

Comparison with YACS #21

Open ae86208 opened 4 years ago

ae86208 commented 4 years ago

There is something in common. https://github.com/rbgirshick/yacs

zxytim commented 4 years ago

There are at least two major advantages comparing hpman to yacs:

  1. No need of forward-declaration
    • Using hpman, you can declare a hyperparameter wherever you want. However, in YACS, prior to using a hyperparameter, you have to declare it first. The example given in yacs's README clearly shows that.
  2. Able to gather the meta info (file, lineno, default values, all appearances) of hyperparameters prior to running any code
    • In hpman, we statically parsed the code to gather all information we need. We could print out the code context of every single use of all hyperparameters, as shown in README, batteries-included. We believe recovering the context of writing a piece of code is fundamental to code-readability.
    • While in yacs, there's no easy way to do that.
    • This also eases the integration of hpman to downstream applications, such as hyperparamter optimization frameworks, IDEs, etc.

Besides, both hyperparameter managing framework supports common basic features like save/load from a config file, override hyperparameter values, etc.