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

Iteration 20 Iteration 20

Iteration 25 Iteration 25

Code from BasicOptimizer.scala:75 executed in 3815.75 seconds (23.158 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: 1245399088453800
    Reset training subject: 1245419460897900
    Adding measurement 81da6a3 to history. Total: 0
    LBFGS Accumulation History: 1 points
    Constructing line search parameters: GD+Trust
    th(0)=0.7650159902508605;dx=-2.133118896743479E-7
    New Minimum: 0.7650159902508605 > 0.7650159155286623
    WOLFE (weak): th(2.154434690031884)=0.7650159155286623; dx=-2.1072066456239046E-7 evalInputDelta=7.472219820670034E-8
    New Minimum: 0.7650159155286623 > 0.7650157528215873
    WOLFE (weak): th(4.308869380063768)=0.7650157528215873; dx=-2.1072060400256073E-7 evalInputDelta=2.3742927324210683E-7
    New Minimum: 0.7650157528215873 > 0.7650151913340371
    WOLFE (weak): th(12.926608140191302)=0.7650151913340371; dx=-2.1072053015999061E-7 evalInputDelta=7.989168234745492E-7
    New Minimum: 0.7650151913340371 > 0.7650127120308803
    WOLFE (weak): th(51.70643256076521)=0.7650127120308803; dx=-2.1072038353766415E-7 evalInputDelta=3.2782199802516843E-6
    New Minimum: 0.7650127120308803 > 0.7649993005889553
    WOLFE (weak): th(258.53216280382605)=0.7649993005889553; dx=-2.1070785994791812E-7 evalInputDelta=1.6689661905266995E-5
    New Minimum: 0.7649993005889553 > 0.7649154547528861
    WOLFE (weak): th(1551.1929768229563)=0.7649154547528861; dx=-2.1068536802356583E-7 evalInputDelta=1.0053549797439665E-4
    New Minimum: 0.7649154547528861 > 0.764312221824694
    WOLFE (weak): th(10858.350837760694)=0.764312221824694; dx=-2.1051202983547208E-7 evalInputDelta=7.037684261664845E-4
    New Minimum: 0.764312221824694 > 0.7594108549596433
    WOLFE (weak): th(86866.80670208555)=0.7594108549596433; dx=-2.0909171443318093E-7 evalInputDelta=0.0056051352912172
    New Minimum: 0.7594108549596433 > 0.7175005483678131
    WOLFE (weak): th(781801.26031877)=0.7175005483678131; dx=-1.9399713113242191E-7 evalInputDelta=0.04751544188304746
    New Minimum: 0.7175005483678131 > 0.5595658024165433
    END: th(7818012.6031877)=0.5595658024165433; dx=-9.175437026889637E-8 evalInputDelta=0.20545018783431723
    Fitness changed from 0.7650159902508605 to 0.5595658024165433

...skipping 30686 bytes...

    007950553E-8 evalInputDelta=4.260450846782504E-6
    Armijo: th(3297644.7243723935)=0.2973249673296986; dx=-1.4034756990281619E-8 evalInputDelta=-4.3352008674113485E-5
    Armijo: th(3225956.795581689)=0.29730070666522457; dx=-1.4044532825236658E-8 evalInputDelta=-1.909134420008396E-5
    Armijo: th(3190112.8311863374)=0.29728882424480146; dx=-1.405017913288898E-8 evalInputDelta=-7.208923776980125E-6
    Armijo: th(3172190.8489886615)=0.2972831337552754; dx=-1.4056406946019207E-8 evalInputDelta=-1.5184342508911541E-6
    WOLFE (weak): th(3163229.8578898236)=0.29728024254833296; dx=-1.4057098447152488E-8 evalInputDelta=1.3727726915213623E-6
    Armijo: th(3167710.3534392426)=0.29728165621634633; dx=-1.4056687445104226E-8 evalInputDelta=-4.0895321851142086E-8
    WOLFE (weak): th(3165470.105664533)=0.2972809696141651; dx=-1.405704922172824E-8 evalInputDelta=6.457068593701543E-7
    WOLFE (weak): th(3166590.229551888)=0.2972813433535357; dx=-1.4057291192090373E-8 evalInputDelta=2.7196748880742305E-7
    WOLFE (weak): th(3167150.2914955653)=0.2972815664073817; dx=-1.4056880101415579E-8 evalInputDelta=4.8913642802794755E-8
    Armijo: th(3167430.322467404)=0.2972816311130793; dx=-1.4056708947245107E-8 evalInputDelta=-1.5792054830487956E-8
    WOLFE (weak): th(3167290.3069814844)=0.2972815983428396; dx=-1.405683711860765E-8 evalInputDelta=1.6978184858018608E-8
    Armijo: th(3167360.3147244444)=0.2972816267230717; dx=-1.4056750404882233E-8 evalInputDelta=-1.1402047195296916E-8
    WOLFE (weak): th(3167325.3108529644)=0.29728160458772224; dx=-1.4056834271024798E-8 evalInputDelta=1.0733302246990206E-8
    Armijo: th(3167342.8127887044)=0.29728162601202657; dx=-1.4056855986376172E-8 evalInputDelta=-1.0691002083618173E-8
    mu ~= nu (3167325.3108529644): th(1147006.8606512675)=0.29704809328308257
    Fitness changed from 0.2972816153210245 to 0.29704809328308257
    Iteration 28 complete. Error: 0.29704809328308257 Total: 472.3078; Orientation: 0.5424; Line Search: 451.2826
    Final threshold in iteration 28: 0.29704809328308257 (> -Infinity) after 3815.739s (< 3600.000s)
    

Returns:

    0.29704809328308257