def dd_helper(image, layer, iterations, lr): input = Variable(preprocess(image).unsqueeze(0).cuda(), requires_grad=True) vgg.zero_grad() for i in range(iterations): # print('Iteration: ', i) out = input for j in range(layer): out = module_list[j + 1](out) loss = out.norm() loss.backward() input.data = input.data + lr * input.grad.data input = input.data.squeeze() input.transpose_(0, 1) input.transpose_(1, 2) input = np.clip(deprocess(input), 0, 1) im = Image.fromarray(np.uint8(input * 255)) return im
def image_from_array(self, image): if self.scheme == 'color': return Image.fromarray(image, mode="RGB") return Image.fromarray(image, mode="L")