KeyError问题记录

2022-10-24 09:57:51

数据集定义为

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:-- Process0 terminatedwith the following error:
Traceback(most recent call last):
  File"/home/ubuntu541/anaconda3/envs/pigan/lib/python3.8/site-packages/torch/multiprocessing/spawn.py", line59,in _wrap
    fn(i,*args)
  File"/home/ubuntu541/yhj_lsp/nerf/pi-GAN-master(1)/pi-GAN-master/train.py", line161,in train
    param_group['lr']= metadata['gen_lr']
KeyError:'gen_lr'

原因其实很简单,在epoch循环的时候,结尾要对step进行归零或者设置不同step的参数信息

for _inrange(opt.n_epochs):
if(discriminator.step==199999):
	                discriminator.step=0;else:
	                discriminator.step+=1if(generator.step==199999):
	                generator.step=0;else:
	                discriminator.step+=1
	discriminator.epoch+=1
  	generator.epoch+=1
  • 作者:生成滞涨网络~
  • 原文链接:https://blog.csdn.net/qq_42061298/article/details/119711404
    更新时间:2022-10-24 09:57:51