com.intel.analytics.bigdl.optim

LBFGS

class LBFGS[T] extends OptimMethod[T]

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 rate allows a reduction of confidence in the step size.

Linear Supertypes
OptimMethod[T], Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. LBFGS
  2. OptimMethod
  3. Serializable
  4. Serializable
  5. AnyRef
  6. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new LBFGS(maxIter: Int = 20, maxEval: Double = scala.Double.MaxValue, tolFun: Double = 1.0E-5, tolX: Double = 1.0E-9, nCorrection: Int = 100, learningRate: Double = 1.0, verbose: Boolean = false, lineSearch: Option[LineSearch[T]] = scala.None, lineSearchOptions: Option[Table] = scala.None)(implicit arg0: ClassTag[T], ev: TensorNumeric[T])

    maxIter

    Maximum number of iterations allowed

    maxEval

    Maximum number of function evaluations

    tolFun

    Termination tolerance on the first-order optimality

    tolX

    Termination tol on progress in terms of func/param changes

    nCorrection
    learningRate
    verbose
    lineSearch

    A line search function

    lineSearchOptions

    If no line search provided, then a fixed step size is used

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clearHistory(): Unit

    Clear the history information in the OptimMethod state

    Clear the history information in the OptimMethod state

    returns

    Definition Classes
    LBFGSOptimMethod
  8. def clone(): OptimMethod[T]

    clone OptimMethod

    clone OptimMethod

    returns

    Definition Classes
    OptimMethod → AnyRef
  9. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  13. def getHyperParameter(): String

    Get hyper parameter from config table.

    Get hyper parameter from config table.

    Definition Classes
    OptimMethod
  14. def getLearningRate(): Double

    get learning rate

    get learning rate

    returns

    Definition Classes
    LBFGSOptimMethod
  15. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  16. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  17. var learningRate: Double

  18. var lineSearch: Option[LineSearch[T]]

    A line search function

  19. var lineSearchOptions: Option[Table]

    If no line search provided, then a fixed step size is used

  20. def loadFromTable(config: Table): LBFGS.this.type

    load optimMethod parameters from Table

    load optimMethod parameters from Table

    config
    returns

    Definition Classes
    LBFGSOptimMethod
  21. var maxEval: Double

    Maximum number of function evaluations

  22. var maxIter: Int

    Maximum number of iterations allowed

  23. var nCorrection: Int

  24. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  25. final def notify(): Unit

    Definition Classes
    AnyRef
  26. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  27. def optimize(opfunc: (Tensor[T]) ⇒ (T, Tensor[T]), x: Tensor[T]): (Tensor[T], Array[T])

    Optimize the model parameter

    Optimize the model parameter

    opfunc

    a function that takes a single input (X), the point of a evaluation, and returns f(X) and df/dX

    x

    the initial point

    returns

    the new x vector and the evaluate value list, evaluated before the update x : the new x vector, at the optimal point f : a table of all function values: f[1] is the value of the function before any optimization and f[#f] is the final fully optimized value, at x*

    Definition Classes
    LBFGSOptimMethod
  28. def save(path: String, overWrite: Boolean = false): LBFGS.this.type

    save OptimMethod

    save OptimMethod

    path

    path

    overWrite

    whether to overwrite

    returns

    Definition Classes
    OptimMethod
  29. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  30. def toString(): String

    Definition Classes
    AnyRef → Any
  31. var tolFun: Double

    Termination tolerance on the first-order optimality

  32. var tolX: Double

    Termination tol on progress in terms of func/param changes

  33. def updateHyperParameter(): Unit

    Update hyper parameter.

    Update hyper parameter. We have updated hyper parameter in method optimize(). But in DistriOptimizer, the method optimize() is only called on the executor side, the driver's hyper parameter is unchanged. So this method is using to update hyper parameter on the driver side.

    returns

    A string.

    Definition Classes
    OptimMethod
  34. def verbose(msg: String): Unit

  35. var verbose: Boolean

  36. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  37. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  38. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def clearHistory(state: Table): Table

    Clear the history information in the state

    Clear the history information in the state

    state
    returns

    Definition Classes
    OptimMethod
    Annotations
    @deprecated
    Deprecated

    (Since version 0.2.0) Please use clearHistory() instead

  2. def getHyperParameter(config: Table): String

    Get hyper parameter from config table.

    Get hyper parameter from config table.

    config

    a table contains the hyper parameter.

    Definition Classes
    OptimMethod
    Annotations
    @deprecated
    Deprecated

    (Since version 0.2.0) Please use getHyperParameter() instead

  3. def optimize(feval: (Tensor[T]) ⇒ (T, Tensor[T]), parameter: Tensor[T], config: Table, state: Table = null): (Tensor[T], Array[T])

    Optimize the model parameter

    Optimize the model parameter

    feval

    a function that takes a single input (X), the point of a evaluation, and returns f(X) and df/dX

    parameter

    the initial point

    config

    a table with configuration parameters for the optimizer

    state

    a table describing the state of the optimizer; after each call the state is modified

    returns

    the new x vector and the function list, evaluated before the update

    Definition Classes
    OptimMethod
    Annotations
    @deprecated
    Deprecated

    (Since version 0.2.0) Please initialize OptimMethod with parameters when creating it instead of importing table

  4. def updateHyperParameter(config: Table, state: Table): Unit

    Update hyper parameter.

    Update hyper parameter. We have updated hyper parameter in method optimize(). But in DistriOptimizer, the method optimize() is only called on the executor side, the driver's hyper parameter is unchanged. So this method is using to update hyper parameter on the driver side.

    config

    config table.

    state

    state Table.

    returns

    A string.

    Definition Classes
    OptimMethod
    Annotations
    @deprecated
    Deprecated

    (Since version 0.2.0) Please use updateHyperParameter() instead

Inherited from OptimMethod[T]

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped