The original Torch7 L-BFGS was:

heavily inspired by minFunc (Mark Schmidt)


  
      github.com
  
  
    torch/optim/blob/master/lbfgs.lua#L1 6

--[[ An implementation of L-BFGS, heavily inspired by minFunc (Mark Schmidt)


This implementation of L-BFGS relies on a user-provided line
search function (state.lineSearch). If this function is not
provided, then a simple learningRate is used to produce fixed
size steps. Fixed size steps are much less costly than line
searches, and can be useful for stochastic problems.


The learning rate is used even when a line search is provided.
This is also useful for large-scale stochastic problems, where
opfunc is a noisy approximation of f(x). In that case, the learning



  
  
    
    
  
  


I have been having issues getting optim.lbfgs to perform (in terms of memory usage) like the Torch7 version. In the Torch7 version, the memory usage stopped increasing one you started running your feval/closure function. But the PyTorch version just keeps increasing in memory usage as the iterations go by, until it hits some ceiling, or your script crashes with an “out of memory” error.