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
Exemplo n.º 2
0
    def image_from_array(self, image):
        if self.scheme == 'color':
            return Image.fromarray(image, mode="RGB")

        return Image.fromarray(image, mode="L")