Iteration 1 Iteration 1

Iteration 2 Iteration 2

Iteration 3 Iteration 3

Iteration 4 Iteration 4

Iteration 5 Iteration 5

Iteration 10 Iteration 10

Code from BasicOptimizer.scala:75 executed in 237.93 seconds (1.642 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: 860953168694400
    Reset training subject: 860956217756800
    Adding measurement 45302e66 to history. Total: 0
    LBFGS Accumulation History: 1 points
    Constructing line search parameters: GD+Trust
    th(0)=-2.5190149409071414;dx=-6.339936060169873E-8
    New Minimum: -2.5190149409071414 > -2.519015094157398
    WOLFE (weak): th(2.154434690031884)=-2.519015094157398; dx=-6.339934468023173E-8 evalInputDelta=1.5325025648493806E-7
    New Minimum: -2.519015094157398 > -2.519015152714184
    WOLFE (weak): th(4.308869380063768)=-2.519015152714184; dx=-6.339935646245998E-8 evalInputDelta=2.118070425716212E-7
    New Minimum: -2.519015152714184 > -2.5190155815065443
    WOLFE (weak): th(12.926608140191302)=-2.5190155815065443; dx=-6.339936210630264E-8 evalInputDelta=6.405994028568784E-7
    New Minimum: -2.5190155815065443 > -2.519018010868698
    WOLFE (weak): th(51.70643256076521)=-2.519018010868698; dx=-6.339959024435025E-8 evalInputDelta=3.069961556523282E-6
    New Minimum: -2.519018010868698 > -2.519030335044116
    WOLFE (weak): th(258.53216280382605)=-2.519030335044116; dx=-6.339993429488656E-8 evalInputDelta=1.5394136974489214E-5
    New Minimum: -2.519030335044116 > -2.5191075263943308
    WOLFE (weak): th(1551.1929768229563)=-2.5191075263943308; dx=-6.340259033953649E-8 evalInputDelta=9.258548718937831E-5
    New Minimum: -2.5191075263943308 > -2.5196633332040763
    WOLFE (weak): th(10858.350837760694)=-2.5196633332040763; dx=-6.341664917375779E-8 evalInputDelta=6.483922969349187E-4
    New Minimum: -2.5196633332040763 > -2.5242087203876853
    WOLFE (weak): th(86866.80670208555)=-2.5242087203876853; dx=-6.353587679435171E-8 evalInputDelta=0.005193779480543892
    New Minimum: -2.5242087203876853 > -2.5662696265166356
    WOLFE (weak): th(781801.26031877)=-2.5662696265166356; dx=-6.459552305367645E-8 evalInputDelta=0.047254685609494196
    New Minimum: -2.5662696265166356 > -3.0368973033165947
    WOLFE (weak): th(7818012.6031877)=-3.0368973033165947; dx=-7.359348368809041E-8 evalInputDelta=0.5178823624094533
    New Minimum: -3.0368973033165947 > -11.32

...skipping 9654 bytes...

    putDelta=0.0
    Armijo: th(8.558784188470172E-7)=-160.591355370354; dx=4.5999001274959316E-5 evalInputDelta=0.0
    Armijo: th(7.780712898609247E-8)=-160.591355370354; dx=4.60013737310619E-5 evalInputDelta=0.0
    Armijo: th(6.483927415507705E-9)=-160.591355370354; dx=4.599942788450987E-5 evalInputDelta=0.0
    Armijo: th(4.987636473467466E-10)=-160.591355370354; dx=4.6005785500713435E-5 evalInputDelta=0.0
    MIN ALPHA (3.56259748104819E-11): th(3.105811606312056)=-160.59140620393495
    Fitness changed from -160.591355370354 to -160.59140620393495
    Iteration 12 complete. Error: -160.59140620393495 Total: 42.1484; Orientation: 5.2656; Line Search: 34.7574
    Adding measurement 2389f546 to history. Total: 12
    Accepted: LBFGS Orientation magnitude: 2.917e+05, gradient 2.481e-03, dot 0.588; [7e1e41fe-1130-46f5-8925-af5cb4932289 = 1.000/1.000e+00]
    th(0)=-160.59140620393495;dx=-425.8489704098287
    Armijo: th(2.1544346900318838E-10)=-160.59140620393495; dx=1.9025380203545497E-7 evalInputDelta=0.0
    Armijo: th(1.0772173450159419E-10)=-160.59140620393495; dx=-1.6524434086675945E-7 evalInputDelta=0.0
    MIN ALPHA (3.590724483386473E-11): th(0.0)=-160.59140620393495
    Fitness changed from -160.59140620393495 to -160.59140620393495
    Static Iteration Total: 17.3005; Orientation: 5.8890; Line Search: 9.2639
    Iteration 13 failed. Error: -160.59140620393495
    Previous Error: 0.0 -> -160.59140620393495
    Retrying iteration 13
    Reset training subject: 861182183362400
    Adding measurement 48224381 to history. Total: 0
    LBFGS Accumulation History: 1 points
    th(0)=-160.59140620393495;dx=-6.156818041237028E-6
    END: th(2.1544346900318838E-10)=-160.59140620393495; dx=-2.9788696434865083E-6 evalInputDelta=0.0
    Fitness changed from -160.59140620393495 to -160.59140620393495
    Static Iteration Total: 8.9159; Orientation: 0.0757; Line Search: 4.5930
    Iteration 14 failed. Error: -160.59140620393495
    Previous Error: 0.0 -> -160.59140620393495
    Optimization terminated 14
    Final threshold in iteration 14: -160.59140620393495 (> -Infinity) after 237.931s (< 3600.000s)
    

Returns:

    -160.59140620393495