So I setup my input image:
image = Image.open(image_name)
image = image.convert('RGB')
loader = transforms.Compose([transforms.Resize((image_size)), transforms.ToTensor()])  # resize and convert to tensor
image = Variable(loader(image))
image = image.unsqueeze(0)
img = input_image.clone()
img = nn.Parameter(img.data,requires_grad=True)

And then I try to run LBFGS:
x, losses = optim.LBFGS([img])

And I get this error:
 x, losses = optim.LBFGS([img])
TypeError: 'LBFGS' object is not iterable

I have a feval function, and I tried to create a dictionary for my input parameters:
  optim_state = {
    "max_iter": 1000,
    "tolerance_change": -1,
    "tolerance_grad": -1,
  }

This worked in torch.legacy.optim:
x, losses = optim.LBFGS(feval, img, optim_state)

But that results in this error with torch.optim:
  File "/usr/local/lib/python2.7/dist-packages/torch/optim/lbfgs.py", line 39, in __init__
    max_eval = max_iter * 5 // 4
TypeError: unsupported operand type(s) for *: 'dict' and 'int'

What am I doing wrong here?