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 3702.61 seconds (23.704 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: 1170655646315500
    Reset training subject: 1170676726257700
    Adding measurement 3a8ae302 to history. Total: 0
    LBFGS Accumulation History: 1 points
    Constructing line search parameters: GD+Trust
    th(0)=0.9269117834264807;dx=-2.4018320357076203E-7
    New Minimum: 0.9269117834264807 > 0.9269117131637395
    WOLFE (weak): th(2.154434690031884)=0.9269117131637395; dx=-2.3804670051870298E-7 evalInputDelta=7.026274118082654E-8
    New Minimum: 0.9269117131637395 > 0.9269115235908387
    WOLFE (weak): th(4.308869380063768)=0.9269115235908387; dx=-2.3804640883967317E-7 evalInputDelta=2.5983564200249276E-7
    New Minimum: 0.9269115235908387 > 0.9269108908744478
    WOLFE (weak): th(12.926608140191302)=0.9269108908744478; dx=-2.3804622952013908E-7 evalInputDelta=8.925520329494674E-7
    New Minimum: 0.9269108908744478 > 0.9269078162750474
    WOLFE (weak): th(51.70643256076521)=0.9269078162750474; dx=-2.3804587865748997E-7 evalInputDelta=3.9671514333594615E-6
    New Minimum: 0.9269078162750474 > 0.9268917867944676
    WOLFE (weak): th(258.53216280382605)=0.9268917867944676; dx=-2.3804028556651343E-7 evalInputDelta=1.9996632013130622E-5
    New Minimum: 0.9268917867944676 > 0.9267919142593426
    WOLFE (weak): th(1551.1929768229563)=0.9267919142593426; dx=-2.3801479135153833E-7 evalInputDelta=1.1986916713813134E-4
    New Minimum: 0.9267919142593426 > 0.926072480804929
    WOLFE (weak): th(10858.350837760694)=0.926072480804929; dx=-2.3777701074496718E-7 evalInputDelta=8.393026215517407E-4
    New Minimum: 0.926072480804929 > 0.9202360423615001
    WOLFE (weak): th(86866.80670208555)=0.9202360423615001; dx=-2.3603878683039728E-7 evalInputDelta=0.006675741064980589
    New Minimum: 0.9202360423615001 > 0.8702083401457912
    WOLFE (weak): th(781801.26031877)=0.8702083401457912; dx=-2.1934394770201336E-7 evalInputDelta=0.05670344328068955
    New Minimum: 0.8702083401457912 > 0.6755966373495196
    END: th(7818012.6031877)=0.6755966373495196; dx=-1.0043868152898651E-7 evalInputDelta=0.25131514607696115
    Fitness changed from 0.9269117834264807 to 0.675596637349

...skipping 28976 bytes...

    3076566E-8 evalInputDelta=9.052868065972941E-5
    WOLFE (weak): th(3340897.465895569)=0.39804527911357024; dx=-1.4280119905260713E-8 evalInputDelta=3.0033706291732187E-5
    Armijo: th(3428815.820261242)=0.39807845643410283; dx=-1.4264099198965951E-8 evalInputDelta=-3.1436142408636236E-6
    WOLFE (weak): th(3384856.6430784054)=0.3980616786437205; dx=-1.4270027951481447E-8 evalInputDelta=1.3634176141474885E-5
    WOLFE (weak): th(3406836.2316698236)=0.39807000393224734; dx=-1.4266521126377968E-8 evalInputDelta=5.308887614630109E-6
    WOLFE (weak): th(3417826.0259655328)=0.39807420461868387; dx=-1.4265782745280251E-8 evalInputDelta=1.1082011781016199E-6
    Armijo: th(3423320.923113387)=0.3980762408679144; dx=-1.4265337369342156E-8 evalInputDelta=-9.280480524065382E-7
    WOLFE (weak): th(3420573.4745394597)=0.3980751757224395; dx=-1.4265842539168858E-8 evalInputDelta=1.370974224701449E-7
    Armijo: th(3421947.1988264234)=0.39807575960953595; dx=-1.426532886001326E-8 evalInputDelta=-4.4678967398015246E-7
    Armijo: th(3421260.3366829418)=0.3980755020585231; dx=-1.4265868057389466E-8 evalInputDelta=-1.8923866113018661E-7
    Armijo: th(3420916.9056112007)=0.39807535857769893; dx=-1.4265847553724462E-8 evalInputDelta=-4.5757836963922216E-8
    WOLFE (weak): th(3420745.1900753304)=0.39807528950181104; dx=-1.4265818438678628E-8 evalInputDelta=2.3318050934584278E-8
    WOLFE (weak): th(3420831.0478432653)=0.3980753086460369; dx=-1.426583594835129E-8 evalInputDelta=4.173825063347181E-9
    Armijo: th(3420873.9767272333)=0.3980753309473437; dx=-1.4265837230477726E-8 evalInputDelta=-1.8127481737906237E-8
    Armijo: th(3420852.5122852493)=0.39807532137523094; dx=-1.426583543565035E-8 evalInputDelta=-8.555368968821142E-9
    mu ~= nu (3420831.0478432653): th(1406693.669850766)=0.3977613874149193
    Fitness changed from 0.39807531281986197 to 0.3977613874149193
    Iteration 26 complete. Error: 0.3977613874149193 Total: 469.6879; Orientation: 0.5640; Line Search: 448.8515
    Final threshold in iteration 26: 0.3977613874149193 (> -Infinity) after 3702.605s (< 3600.000s)
    

Returns:

    0.3977613874149193