Open Kpt10086 opened 2 years ago
replace the portion of code in utils.py
@torch.no_grad()
def video_ref(nets, args, x_src, x_ref, y_ref, fname):
video = []
frames = []
s_ref = nets.style_encoder(x_ref, y_ref)
s_prev = None
for data_next in tqdm(zip(x_ref, y_ref, s_ref), 'video_ref', len(x_ref)):
x_next, y_next, s_next = [d.unsqueeze(0) for d in data_next]
if s_prev is None:
x_prev, y_prev, s_prev = x_next, y_next, s_next
continue
if y_prev != y_next:
x_prev, y_prev, s_prev = x_next, y_next, s_next
continue
interpolated = interpolate(nets, args, x_src, s_prev, s_next)
entries = [x_prev, x_next]
slided = slide(entries) # (T, C, 256*2, 256)
frames = torch.cat([slided, interpolated], dim=3).cpu() # (T, C, 256*2, 256*(batch+1))
video.append(frames)
x_prev, y_prev, s_prev = x_next, y_next, s_next
# append last frame 10 time
for _ in range(10):
video.append(frames[-1:])
video = tensor2ndarray255(torch.cat(video))
save_video(fname, video)
Namespace(batch_size=8, beta1=0.0, beta2=0.99, checkpoint_dir='expr/checkpoints/celeba_hq', ds_iter=100000, eval_dir='expr/eval', eval_every=50000, f_lr=1e-06, hidden_dim=512, img_size=256, inp_dir='ass ets/representative/custom/female', lambda_cyc=1, lambda_ds=1, lambda_reg=1, lambda_sty=1, latent_dim=16, lm_path='expr/checkpoints/celeba_lm_mean.npz', lr=0.0001, mode='sample', num_domains=2, numouts per_domain=10, num_workers=4, out_dir='assets/representative/celeba_hq/src/female', print_every=10, randcrop_prob=0.5, ref_dir='assets/representative/celeba_hq/ref', result_dir='expr/results/celeba_hq', resume_iter=100000, sample_dir='expr/samples', sample_every=5000, save_every=10000, seed=777, src_dir='assets/representative/celeba_hq/src', style_dim=64, total_iters=100000, train_img_dir='data/celeba _hq/train', val_batch_size=32, val_img_dir='data/celeba_hq/val', w_hpf=1.0, weight_decay=0.0001, wing_path='expr/checkpoints/wing.ckpt') Number of parameters of generator: 43467395 Number of parameters of mapping_network: 2438272 Number of parameters of style_encoder: 20916928 Number of parameters of discriminator: 20852290 Number of parameters of fan: 6333603 Initializing generator... Initializing mapping_network... Initializing style_encoder... Initializing discriminator... Preparing DataLoader for the generation phase... Preparing DataLoader for the generation phase... Loading checkpoint from expr/checkpoints/celeba_hq\100000_nets_ema.ckpt... Working on expr/results/celeba_hq\reference.jpg... C:\Users\acer\anaconda3\envs\python38\lib\site-packages\torch\nn\functional.py:3631: UserWarning: Default upsampling behavior when mode=bilinear is changed to align_corners=False since 0.4.0. Please spe cify align_corners=True if the old behavior is desired. See the documentation of nn.Upsample for details. warnings.warn( Working on expr/results/celeba_hq\video_ref.mp4... video_ref: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 4013.69it/s] Traceback (most recent call last): File "main.py", line 182, in
main(args)
File "main.py", line 73, in main
solver.sample(loaders)
File "C:\Users\acer\anaconda3\envs\python38\lib\site-packages\torch\autograd\grad_mode.py", line 28, in decorate_context
return func(*args, *kwargs)
File "C:\Users\acer\PycharmProjects\untitled9gan\stargan-v2-master\core\solver.py", line 189, in sample
utils.video_ref(nets_ema, args, src.x, ref.x, ref.y, fname)
File "C:\Users\acer\anaconda3\envs\python38\lib\site-packages\torch\autograd\grad_mode.py", line 28, in decorate_context
return func(args, **kwargs)
File "C:\Users\acer\PycharmProjects\untitled9gan\stargan-v2-master\core\utils.py", line 221, in video_ref
video.append(frames[-1:])
UnboundLocalError: local variable 'frames' referenced before assignment
How to solve?