config parsing - beyondnlp/nlp GitHub Wiki

  • config class
class Config(dict):
    __getattr__ = dict.__getitem__
    __setattr__ = dict.__setitem__

    @classmethod
    def load(cls, file):
        with open(file, 'r') as f:
            config = json.loads(f.read())
            return Config(config)
  • example
{
    "n_enc_vocab": 3000,
    "n_dec_vocab": 3,
    "n_enc_seq": 512,
    "n_dec_seq": 512,
    "n_layer": 12,
    "d_hidn": 768,
    "i_pad": 0,
    "d_ff": 3072,
    "n_head": 12,
    "d_head": 64,
    "dropout": 0.1,
    "layer_norm_epsilon": 1e-12,
    "n_output": 2,
    "weight_decay": 0,
    "learning_rate": 5e-5,
    "adam_epsilon": 1e-8,
    "warmup_steps": 0
}
  • config file loading
config = Config.load('config.json')
  • config로 읽어들인 변수 접근
optimizer = torch.optim.Adam(model.parameters(), lr=config.learning_rate)