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:88 executed in 130.38 seconds (3.163 gc):

    val lineSearchInstance: LineSearchStrategy = lineSearchFactory
    val trainer = new IterativeTrainer(trainable)
    trainer.setOrientation(orientation())
    trainer.setMonitor(new TrainingMonitor() {
      override def clear(): Unit = trainingMonitor.clear()
  
      override def log(msg: String): Unit = {
        trainingMonitor.log(msg)
        BasicOptimizer.this.log(msg)
      }
  
      override def onStepFail(currentPoint: Step): Boolean = {
        BasicOptimizer.this.onStepFail(trainable.addRef().asInstanceOf[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.addRef().asInstanceOf[Trainable], currentPoint)
        trainingMonitor.onStepComplete(currentPoint)
        super.onStepComplete(currentPoint)
      }
    })
    trainer.setTimeout(trainingMinutes, TimeUnit.MINUTES)
    trainer.setMaxIterations(trainingIterations)
    trainer.setLineSearchFactory((_: CharSequence) => lineSearchInstance)
    trainer.setTerminateThreshold(java.lang.Double.NEGATIVE_INFINITY)
    val result = trainer.run.asInstanceOf[lang.Double]
    trainer.freeRef()
    result

Logging:

    Reset training subject: 2496393478602
    Reset training subject: 2498810682106
    Adding measurement 67d1730f to history. Total: 0
    LBFGS Accumulation History: 1 points
    Constructing line search parameters: GD+Trust
    th(0)=1.845182478427887;dx=-1.8452769595740616E-7
    New Minimum: 1.845182478427887 > 1.8451820313930511
    WOLFE (weak): th(2.154434690031884)=1.8451820313930511; dx=-1.8704489883960091E-7 evalInputDelta=4.470348358154297E-7
    New Minimum: 1.8451820313930511 > 1.8451814949512482
    WOLFE (weak): th(4.308869380063768)=1.8451814949512482; dx=-1.872223951077796E-7 evalInputDelta=9.834766387939453E-7
    New Minimum: 1.8451814949512482 > 1.845179557800293
    WOLFE (weak): th(12.926608140191302)=1.845179557800293; dx=-1.8701260057679684E-7 evalInputDelta=2.9206275939941406E-6
    New Minimum: 1.845179557800293 > 1.8451703190803528
    WOLFE (weak): th(51.70643256076521)=1.8451703190803528; dx=-1.8705096346099178E-7 evalInputDelta=1.2159347534179688E-5
    New Minimum: 1.8451703190803528 > 1.845120683312416
    WOLFE (weak): th(258.53216280382605)=1.845120683312416; dx=-1.8705010811141354E-7 evalInputDelta=6.179511547088623E-5
    New Minimum: 1.845120683312416 > 1.8448114842176437
    WOLFE (weak): th(1551.1929768229563)=1.8448114842176437; dx=-1.870344458513155E-7 evalInputDelta=3.709942102432251E-4
    New Minimum: 1.8448114842176437 > 1.842586800456047
    WOLFE (weak): th(10858.350837760694)=1.842586800456047; dx=-1.869501764493338E-7 evalInputDelta=0.002595677971839905
    New Minimum: 1.842586800456047 > 1.8245183527469635
    WOLFE (weak): th(86866.80670208555)=1.8245183527469635; dx=-1.8512617099260154E-7 evalInputDelta=0.020664125680923462
    New Minimum: 1.8245183527469635 > 1.6680122762918472
    WOLFE (weak): th(781801.26031877)=1.6680122762918472; dx=-1.6838321430869556E-7 evalInputDelta=0.17717020213603973
    New Minimum: 1.6680122762918472 > 0.8215375542640686
    END: th(7818012.6031877)=0.8215375542640686; dx=-5.132704367236598E-8 evalInputDelta=1.0236449241638184
    Fitness changed from 1.845182478427887 to 0.8215375542640686
    Iteration 1 complete. Error: 0.821537554264

...skipping 6298 bytes...

    on magnitude: 9.979e+03, gradient 1.365e-04, dot -0.626; [a4609e91-7ea5-48d7-99f1-251b725159fd = 1.000/1.000e+00]
    Orientation rejected. Popping history element from -1.23794487118721, 0.265923410654068, 0.8215375542640686, 1.845182478427887
    LBFGS Accumulation History: 3 points
    Removed measurement 78327902 to history. Total: 3
    th(0)=-1.23794487118721;dx=-1.845838067534029E-8
    Armijo: th(2.5200000000000007E7)=-1.2169962525367737; dx=1.0086879981483308E-8 evalInputDelta=-0.0209486186504364
    New Minimum: -1.23794487118721 > -1.336067944765091
    WOLF (strong): th(1.2600000000000004E7)=-1.336067944765091; dx=1.9016494113646983E-9 evalInputDelta=0.09812307357788086
    END: th(4200000.000000001)=-1.3111139237880707; dx=-1.0813741811829631E-8 evalInputDelta=0.0731690526008606
    Fitness changed from -1.23794487118721 to -1.336067944765091
    Iteration 9 complete. Error: -1.336067944765091 Total: 14.4566; Orientation: 0.2177; Line Search: 11.8214
    Adding measurement 707cc713 to history. Total: 3
    Rejected: LBFGS Orientation magnitude: 1.015e+04, gradient 1.577e-04, dot -0.535; [a4609e91-7ea5-48d7-99f1-251b725159fd = 1.000/1.000e+00]
    Orientation rejected. Popping history element from -1.336067944765091, 0.265923410654068, 0.8215375542640686, 1.845182478427887
    LBFGS Accumulation History: 3 points
    Removed measurement 707cc713 to history. Total: 3
    th(0)=-1.336067944765091;dx=-2.4728169392362687E-8
    New Minimum: -1.336067944765091 > -1.4341990500688553
    WOLF (strong): th(9048625.698133914)=-1.4341990500688553; dx=2.2338727427320813E-9 evalInputDelta=0.09813110530376434
    END: th(4524312.849066957)=-1.4220404624938965; dx=-9.886871242883427E-9 evalInputDelta=0.08597251772880554
    Fitness changed from -1.336067944765091 to -1.4341990500688553
    Iteration 10 complete. Error: -1.4341990500688553 Total: 10.4229; Orientation: 0.2998; Line Search: 7.7429
    <a id="p-13"></a>Iteration 10
    <a id="p-12"></a>![Iteration 10](etc/43007578-002a-4407-97c0-a3f5d34aef4e.jpg)
    
    Final threshold in iteration 11: -1.4341990500688553 (> -Infinity) after 130.380s (< 3600.000s)
    

Returns:

    -1.4341990500688553