I’m trying to understand how optimization and backpropagation work.
In this code from Neural style transfer:
optimizer = optim.LBFGS([opt_img]); n_iter= while n_iter <= max_iter: def closure(): optimizer.zero_grad() out = vgg(opt_img, loss_layers) layer_losses = [weights[a] * loss_fns[a](A, targets[a]) for a,A in enumerate(out)] loss = sum(layer_losses) loss.backward() n_iter+=1 return loss optimizer.step(closure)
Do the pretrained weights of VGG optimized?
(Or, do both
opt_img and the weights of VGG optimized by LBFGS?)
(Do the weights of VGG stay same for every iterations, or they get optimized and different for each iterations?)