概述
数据集定义为
CelebA = {
0: {'batch_size': 12, 'num_steps': 12, 'img_size': 64, 'batch_split': 2, 'gen_lr': 6e-5, 'disc_lr': 2e-4},
int(200e3): {},
'dataset_path': '/home/ubuntu541/yhj_lsp/nerf/data/pigan-data/celaba/img_align_celeba/*.jpg',
'fov': 12,
'ray_start': 0.88,
'ray_end': 1.12,
'fade_steps': 10000,
'h_stddev': 0.3,
'v_stddev': 0.155,
'h_mean': math.pi*0.5,
'v_mean': math.pi*0.5,
'sample_dist': 'gaussian',
'topk_interval': 2000,
'topk_v': 0.6,
'betas': (0, 0.9),
'unique_lr': False,
'weight_decay': 0,
'r1_lambda': 0.2,
'latent_dim': 256,
'grad_clip': 10,
'model': 'SPATIALSIRENBASELINE',
'generator': 'ImplicitGenerator3d',
'discriminator': 'CCSEncoderDiscriminator',
'dataset': 'CelebA',
'clamp_mode': 'relu',
'z_dist': 'gaussian',
'hierarchical_sample': True,
'z_lambda': 0,
'pos_lambda': 15,
'last_back': False,
'eval_last_back': True,
}
这里的坑是当使用如下的语句提取数字部分的信息时,我们会遇到’batch_size’是KeyError的情况
metadata = curriculums.extract_metadata(curriculum, discriminator.step)
torch.multiprocessing.spawn.ProcessRaisedException:
-- Process 0 terminated with the following error:
Traceback (most recent call last):
File "/home/ubuntu541/anaconda3/envs/pigan/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line 59, in _wrap
fn(i, *args)
File "/home/ubuntu541/yhj_lsp/nerf/pi-GAN-master(1)/pi-GAN-master/train.py", line 161, in train
param_group['lr'] = metadata['gen_lr']
KeyError: 'gen_lr'
原因其实很简单,在epoch循环的时候,结尾要对step进行归零或者设置不同step的参数信息
for _ in range(opt.n_epochs):
if(discriminator.step == 199999):
discriminator.step = 0;
else:
discriminator.step += 1
if (generator.step == 199999):
generator.step = 0;
else:
discriminator.step += 1
discriminator.epoch += 1
generator.epoch += 1
最后
以上就是多情帅哥为你收集整理的KeyError问题记录的全部内容,希望文章能够帮你解决KeyError问题记录所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复