Upgrade python config compiler.
python config file can support for full python syntax now.
python
neko_cfg compile this function
def steps_cfg():
return dict(
train_steps=1000,
save_steps=100,
)
neko_cfg
def config(low_vram=False):
if low_vram:
from bitsandbytes.optim import AdamW8bit
optimizer = AdamW8bit(_partial_=True, betas=(0.9, 0.99))
else:
import torch
optimizer = torch.optim.AdamW(_partial_=True, betas=(0.9, 0.99))
return dict(
exp_dir='exps',
**steps_cfg(), insert steps_cfg here
x=nn.Linear(1, 1),
optimizer=optimizer,
)
The compiled function:
python
def config(low_vram=False):
if low_vram:
from bitsandbytes.optim import AdamW8bit
optimizer = dict(_target_=AdamW8bit, _partial_=True, betas=(0.9, 0.99))
else:
import torch
optimizer = dict(
_target_=torch.optim.AdamW, _partial_=True, betas=(0.9, 0.99)
)
return dict(
exp_dir='exps',
_merge_1_=dict(_target_=steps_cfg),
x=dict(_target_=nn.Linear, _args_=[1, 1]),
optimizer=optimizer
)