Iteration 1 Iteration 1

Iteration 2 Iteration 2

Iteration 3 Iteration 3

Iteration 4 Iteration 4

Iteration 5 Iteration 5

Iteration 10 Iteration 10

Iteration 15 Iteration 15

Code from BasicOptimizer.scala:75 executed in 4008.49 seconds (33.390 gc):

    val lineSearchInstance: LineSearchStrategy = lineSearchFactory
    IterativeTrainer.wrap(trainable)
      .setOrientation(orientation())
      .setMonitor(new TrainingMonitor() {
        override def clear(): Unit = trainingMonitor.clear()
  
        override def log(msg: String): Unit = trainingMonitor.log(msg)
  
        override def onStepFail(currentPoint: Step): Boolean = {
          BasicOptimizer.this.onStepFail(trainable, currentPoint)
        }
  
        override def onStepComplete(currentPoint: Step): Unit = {
          if (0 < logEvery && (0 == currentPoint.iteration % logEvery || currentPoint.iteration < logEvery)) {
            val image = currentImage
            timelineAnimation += image
            val caption = "Iteration " + currentPoint.iteration
            out.p(caption + "\n" + out.jpg(image, caption))
          }
          BasicOptimizer.this.onStepComplete(trainable, currentPoint)
          trainingMonitor.onStepComplete(currentPoint)
          super.onStepComplete(currentPoint)
        }
      })
      .setTimeout(trainingMinutes, TimeUnit.MINUTES)
      .setMaxIterations(trainingIterations)
      .setLineSearchFactory((_: CharSequence) => lineSearchInstance)
      .setTerminateThreshold(java.lang.Double.NEGATIVE_INFINITY)
      .runAndFree
      .asInstanceOf[lang.Double]

Logging:

    Reset training subject: 1043773356711000
    Reset training subject: 1043794054572500
    Adding measurement 3b9e1476 to history. Total: 0
    LBFGS Accumulation History: 1 points
    Constructing line search parameters: GD+Trust
    th(0)=-1.3697863817214966;dx=-7.399892785914977E-8
    New Minimum: -1.3697863817214966 > -1.3697865419089794
    WOLFE (weak): th(2.154434690031884)=-1.3697865419089794; dx=-7.387621233666587E-8 evalInputDelta=1.601874828338623E-7
    New Minimum: -1.3697865419089794 > -1.3697867281734943
    WOLFE (weak): th(4.308869380063768)=-1.3697867281734943; dx=-7.38661943161903E-8 evalInputDelta=3.46451997756958E-7
    New Minimum: -1.3697867281734943 > -1.3697874769568443
    WOLFE (weak): th(12.926608140191302)=-1.3697874769568443; dx=-7.386000520805095E-8 evalInputDelta=1.0952353477478027E-6
    New Minimum: -1.3697874769568443 > -1.3697906993329525
    WOLFE (weak): th(51.70643256076521)=-1.3697906993329525; dx=-7.385631295007083E-8 evalInputDelta=4.317611455917358E-6
    New Minimum: -1.3697906993329525 > -1.3698083460330963
    WOLFE (weak): th(258.53216280382605)=-1.3698083460330963; dx=-7.386936018483794E-8 evalInputDelta=2.1964311599731445E-5
    New Minimum: -1.3698083460330963 > -1.3699178770184517
    WOLFE (weak): th(1551.1929768229563)=-1.3699178770184517; dx=-7.38569848564948E-8 evalInputDelta=1.3149529695510864E-4
    New Minimum: -1.3699178770184517 > -1.37070694565773
    WOLFE (weak): th(10858.350837760694)=-1.37070694565773; dx=-7.382396562834629E-8 evalInputDelta=9.205639362335205E-4
    New Minimum: -1.37070694565773 > -1.3771335780620575
    WOLFE (weak): th(86866.80670208555)=-1.3771335780620575; dx=-7.345307038477765E-8 evalInputDelta=0.007347196340560913
    New Minimum: -1.3771335780620575 > -1.4343984499573708
    WOLFE (weak): th(781801.26031877)=-1.4343984499573708; dx=-7.007248400071233E-8 evalInputDelta=0.06461206823587418
    New Minimum: -1.4343984499573708 > -1.8365745432674885
    END: th(7818012.6031877)=-1.8365745432674885; dx=-3.8810012084015966E-8 evalInputDelta=0.4667881615459919
    Fitness changed from -1.3697863817214966 to 

...skipping 27558 bytes...

    235180855; dx=-2.19807899005085E-9 evalInputDelta=-2.8330832719802856E-5
    Armijo: th(4008286.9449792523)=-2.498517081141472; dx=-2.2015448326447583E-9 evalInputDelta=-1.32732093334198E-5
    Armijo: th(3890396.152479863)=-2.4985240139067173; dx=-2.202152921657322E-9 evalInputDelta=-6.340444087982178E-6
    Armijo: th(3831450.756230168)=-2.49852729216218; dx=-2.2027905191208173E-9 evalInputDelta=-3.0621886253356934E-6
    Armijo: th(3801978.0581053207)=-2.4985290989279747; dx=-2.203385988452676E-9 evalInputDelta=-1.255422830581665E-6
    Armijo: th(3787241.7090428965)=-2.49852979183197; dx=-2.204294216924575E-9 evalInputDelta=-5.62518835067749E-7
    Armijo: th(3779873.5345116844)=-2.4985301569104195; dx=-2.204353401648906E-9 evalInputDelta=-1.9744038581848145E-7
    WOLFE (weak): th(3776189.4472460784)=-2.4985304102301598; dx=-2.2043676252872484E-9 evalInputDelta=5.587935447692871E-8
    Armijo: th(3778031.4908788814)=-2.4985302798449993; dx=-2.204554601483491E-9 evalInputDelta=-7.450580596923828E-8
    WOLFE (weak): th(3777110.46906248)=-2.498530361801386; dx=-2.2045569098054647E-9 evalInputDelta=7.450580596923828E-9
    Armijo: th(3777570.9799706805)=-2.4985303208231926; dx=-2.2046617312397115E-9 evalInputDelta=-3.3527612686157227E-8
    Armijo: th(3777340.7245165803)=-2.4985303170979023; dx=-2.2037268176150213E-9 evalInputDelta=-3.725290298461914E-8
    Armijo: th(3777225.5967895305)=-2.4985303431749344; dx=-2.2041011764716567E-9 evalInputDelta=-1.1175870895385742E-8
    Armijo: th(3777168.0329260053)=-2.4985303431749344; dx=-2.204124826145515E-9 evalInputDelta=-1.1175870895385742E-8
    WOLFE (weak): th(3777139.2509942427)=-2.498530361801386; dx=-2.2053568884807227E-9 evalInputDelta=7.450580596923828E-9
    mu ~= nu (3777139.2509942427): th(1886252.6799902364)=-2.4985782392323017
    Fitness changed from -2.4985303543508053 to -2.4985782392323017
    Iteration 18 complete. Error: -2.4985782392323017 Total: 460.2674; Orientation: 0.7037; Line Search: 439.6899
    Final threshold in iteration 18: -2.4985782392323017 (> -Infinity) after 4008.487s (< 3600.000s)
    

Returns:

    -2.4985782392323017