1. Test Modules
  2. Training Characteristics
    1. Input Learning
      1. Gradient Descent
      2. Conjugate Gradient Descent
      3. Limited-Memory BFGS
    2. Results
  3. Results

Subreport: Logs for com.simiacryptus.ref.lang.ReferenceCountingBase

Test Modules

Using Seed 8032494515290744832

Training Characteristics

Input Learning

In this apply, we use a network to learn this target input, given it's pre-evaluated output:

TrainingTester.java:332 executed in 0.04 seconds (0.000 gc):

    return RefArrays.stream(RefUtil.addRef(input_target)).flatMap(RefArrays::stream).map(x -> {
      try {
        return x.prettyPrint();
      } finally {
        x.freeRef();
      }
    }).reduce((a, b) -> a + "\n" + b).orElse("");

Returns

    [
    	[ [ -0.552 ], [ -1.26 ], [ -0.908 ], [ -0.412 ], [ 0.9 ], [ -1.596 ], [ -1.204 ], [ -1.228 ], ... ],
    	[ [ 1.756 ], [ 0.768 ], [ -0.504 ], [ 0.068 ], [ 0.616 ], [ -1.252 ], [ 0.996 ], [ 0.532 ], ... ],
    	[ [ -1.496 ], [ 0.552 ], [ -0.156 ], [ 0.688 ], [ 0.272 ], [ 1.884 ], [ 0.032 ], [ 1.136 ], ... ],
    	[ [ -1.08 ], [ -0.996 ], [ -1.38 ], [ 0.548 ], [ 0.616 ], [ -0.58 ], [ -1.796 ], [ 0.096 ], ... ],
    	[ [ -1.948 ], [ 1.336 ], [ 0.904 ], [ -1.692 ], [ 1.452 ], [ 1.036 ], [ -1.04 ], [ 0.496 ], ... ],
    	[ [ -0.924 ], [ -0.38 ], [ 1.412 ], [ 0.184 ], [ 0.472 ], [ 1.992 ], [ 0.364 ], [ -0.384 ], ... ],
    	[ [ -0.82 ], [ -1.808 ], [ 0.592 ], [ -1.236 ], [ 1.052 ], [ -0.38 ], [ -0.544 ], [ 1.2 ], ... ],
    	[ [ 1.764 ], [ -0.744 ], [ -1.416 ], [ -0.848 ], [ -1.76 ], [ 0.496 ], [ 1.756 ], [ -0.052 ], ... ],
    	...
    ]
    [
    	[ [ 1.672 ], [ -0.128 ], [ 0.732 ], [ -0.336 ], [ 1.316 ], [ 0.032 ], [ 1.088 ], [ 0.936 ], ... ],
    	[ [ 0.944 ], [ 0.264 ], [ 0.892 ], [ 1.276 ], [ -0.864 ], [ -0.792 ], [ -0.62 ], [ 1.736 ], ... ],
    	[ [ -1.092 ], [ -0.732 ], [ -0.336 ], [ 1.624 ], [ -0.52 ], [ -1.868 ], [ -1.156 ], [ -0.052 ], ... ],
    	[ [ 0.644 ], [ 0.8 ], [ -0.132 ], [ -1.18 ], [ -0.94 ], [ 1.496 ], [ 1.496 ], [ 0.372 ], ... ],
    	[ [ -0.824 ], [ 0.428 ], [ -1.796 ], [ 1.728 ], [ -1.824 ], [ -1.0 ], [ 0.86 ], [ -1.264 ], ... ],
    	[ [ -1.728 ], [ -1.564 ], [ 0.328 ], [ -0.056 ], [ -0.288 ], [ -0.8 ], [ -1.824 ], [ -0.964 ], ... ],
    	[ [ -0.648 ], [ 0.048 ], [ 1.988 ], [ 1.084 ], [ -0.348 ], [ 1.312 ], [ 0.748 ], [ 1.676 ], ... ],
    	[ [ 0.508 ], [ -0.716 ], [ 0.732 ], [ -1.716 ], [ -1.924 ], [ -0.516 ], [ -1.744 ], [ 0.976 ], ... ],
    	...
    ]
    [
    	[ [ -0.356 ], [ -1.092 ], [ -0.36 ], [ -1.348 ], [ 1.872 ], [ 0.528 ], [ -0.552 ], [ -1.384 ], ... ],
    	[ [ 0.86 ], [ -0.812 ], [ 0.54 ], [ 0.448 ], [ -1.216 ], [ -1.076 ], [ 0.608 ], [ -0.784 ], ... ],
    	[ [ 1.812 ], [ -1.164 ], [ -0.908 ], [ 1.192 ], [ -1.4 ], [ 1.768 ], [ -0.432 ], [ 1.048 ], ... ],
    	[ [ -1.336 ], [ 0.932 ], [ 0.768 ], [ -0.36 ], [ -0.916 ], [ -0.936 ], [ 1.204 ], [ -0.048 ], ... ],
    	[ [ -1.448 ], [ 0.448 ], [ 1.392 ], [ -0.552 ], [ 1.588 ], [ -0.032 ], [ -1.948 ], [ -1.264 ], ... ],
    	[ [ -0.108 ], [ 0.452 ], [ 1.74 ], [ 1.164 ], [ -0.768 ], [ 1.076 ], [ 1.732 ], [ -0.072 ], ... ],
    	[ [ 0.304 ], [ -1.04 ], [ 0.48 ], [ 0.444 ], [ -0.836 ], [ 1.496 ], [ 0.6 ], [ 0.4 ], ... ],
    	[ [ 0.132 ], [ 1.364 ], [ 1.884 ], [ 0.12 ], [ 1.776 ], [ -1.228 ], [ 0.004 ], [ 1.208 ], ... ],
    	...
    ]
    [
    	[ [ -1.564 ], [ 1.364 ], [ 1.736 ], [ 1.268 ], [ -0.212 ], [ -0.192 ], [ -1.176 ], [ -1.808 ], ... ],
    	[ [ -1.432 ], [ -0.104 ], [ -0.104 ], [ -1.792 ], [ 1.068 ], [ 1.6 ], [ -0.744 ], [ 0.488 ], ... ],
    	[ [ 0.644 ], [ 1.824 ], [ -0.392 ], [ -1.732 ], [ 1.528 ], [ -0.692 ], [ -0.96 ], [ -1.92 ], ... ],
    	[ [ 0.732 ], [ 0.764 ], [ 0.236 ], [ 1.292 ], [ 1.76 ], [ -0.184 ], [ 1.384 ], [ 1.536 ], ... ],
    	[ [ 1.776 ], [ -1.408 ], [ -0.708 ], [ 0.224 ], [ -0.996 ], [ 1.284 ], [ -1.968 ], [ 0.296 ], ... ],
    	[ [ 1.948 ], [ 0.772 ], [ -1.792 ], [ 1.884 ], [ -1.128 ], [ -1.56 ], [ -0.156 ], [ 0.448 ], ... ],
    	[ [ 0.932 ], [ 0.448 ], [ 1.232 ], [ -1.656 ], [ -1.956 ], [ 1.608 ], [ -0.572 ], [ 1.852 ], ... ],
    	[ [ 1.328 ], [ 0.36 ], [ 0.908 ], [ 0.38 ], [ 1.968 ], [ -1.42 ], [ -1.836 ], [ -1.444 ], ... ],
    	...
    ]
    [
    	[ [ 1.784 ], [ -0.344 ], [ 0.624 ], [ -1.172 ], [ -0.74 ], [ -1.864 ], [ -0.14 ], [ -0.532 ], ... ],
    	[ [ -1.988 ], [ -0.072 ], [ -1.496 ], [ -1.32 ], [ -0.048 ], [ 0.328 ], [ 0.26 ], [ -1.564 ], ... ],
    	[ [ -0.376 ], [ -0.784 ], [ -0.416 ], [ 1.068 ], [ 1.976 ], [ -0.94 ], [ 0.392 ], [ 1.884 ], ... ],
    	[ [ -1.872 ], [ 1.744 ], [ -0.436 ], [ 1.496 ], [ 1.744 ], [ 0.448 ], [ 1.044 ], [ -1.484 ], ... ],
    	[ [ 0.436 ], [ -0.624 ], [ 1.376 ], [ -0.804 ], [ -0.756 ], [ 0.328 ], [ -0.788 ], [ 0.732 ], ... ],
    	[ [ 1.92 ], [ -0.192 ], [ 0.776 ], [ -0.46 ], [ 0.06 ], [ -1.22 ], [ -0.912 ], [ 0.16 ], ... ],
    	[ [ 1.336 ], [ -0.912 ], [ 1.772 ], [ 0.264 ], [ -0.32 ], [ -0.784 ], [ -1.112 ], [ 0.56 ], ... ],
    	[ [ -0.704 ], [ 0.648 ], [ -1.94 ], [ -0.152 ], [ -0.612 ], [ -0.632 ], [ -0.024 ], [ 1.404 ], ... ],
    	...
    ]

Gradient Descent

First, we train using basic gradient descent method apply weak line search conditions.

TrainingTester.java:480 executed in 30.14 seconds (1.468 gc):

    IterativeTrainer iterativeTrainer = new IterativeTrainer(trainable.addRef());
    try {
      iterativeTrainer.setLineSearchFactory(label -> new ArmijoWolfeSearch());
      iterativeTrainer.setOrientation(new GradientDescent());
      iterativeTrainer.setMonitor(TrainingTester.getMonitor(history));
      iterativeTrainer.setTimeout(30, TimeUnit.SECONDS);
      iterativeTrainer.setMaxIterations(250);
      iterativeTrainer.setTerminateThreshold(0);
      return iterativeTrainer.run();
    } finally {
      iterativeTrainer.freeRef();
    }
Logging
Reset training subject: 2451338514185
Reset training subject: 2451854014671
Constructing line search parameters: GD
th(0)=2.6673828581155554;dx=-1.4818793656197509E-6
New Minimum: 2.6673828581155554 > 2.6673796655041992
WOLFE (weak): th(2.154434690031884)=2.6673796655041992; dx=-1.4818784787830038E-6 evalInputDelta=3.192611356173103E-6
New Minimum: 2.6673796655041992 > 2.6673764728947535
WOLFE (weak): th(4.308869380063768)=2.6673764728947535; dx=-1.481877591946246E-6 evalInputDelta=6.385220801874425E-6
New Minimum: 2.6673764728947535 > 2.6673637024760763
WOLFE (weak): th(12.926608140191302)=2.6673637024760763; dx=-1.4818740445992345E-6 evalInputDelta=1.9155639479073727E-5
New Minimum: 2.6673637024760763 > 2.667306235970336
WOLFE (weak): th(51.70643256076521)=2.667306235970336; dx=-1.4818580815376764E-6 evalInputDelta=7.662214521930721E-5
New Minimum: 2.667306235970336 > 2.666999758394697
WOLFE (weak): th(258.53216280382605)=2.666999758394697; dx=-1.4817729452093696E-6 evalInputDelta=3.830997208584819E-4
New Minimum: 2.666999758394697 > 2.665084672486887
WOLFE (weak): th(1551.1929768229563)=2.665084672486887; dx=-1.4812408431574066E-6 evalInputDelta=0.00229818562866857
New Minimum: 2.665084672486887 > 2.651316358617617
WOLFE (weak): th(10858.350837760694)=2.651316358617617; dx=-1.4774097083833261E-6 evalInputDelta=0.01606649949793848
New Minimum: 2.651316358617617 > 2.540209789111181
WOLFE (weak): th(86866.80670208555)=2.540209789111181; dx=-1.4461221077283338E-6 evalInputDelta=0.12717306900437464
New Minimum: 2.540209789111181 > 1.6346455142163911
END: th(781801.26031877)=1.6346455142163911; dx=-1.160064044597004E-6 evalInputDelta=1.0327373438991643
Fitness changed from 2.6673828581155554 to 1.6346455142163911
Iteration 1 complete. Error: 1.6346455142163911 Total: 6.0950; Orientation: 0.3727; Line Search: 4.7912
th(0)=1.6346455142163911;dx=-9.081363967868832E-7
New Minimum: 1.6346455142163911 > 0.46286629578372745
END: th(1684339.7559414052)=0.46286629578372745; dx=-4.832446643075718E-7 evalInputDelta=1.1717792184326636
Fitness changed from 1.6346455142163911 to 0.46286629578372745
Iteration 2 complete. Error: 0.46286629578372745 Total: 1.2101; Orientation: 0.2327; Line Search: 0.7942
th(0)=0.46286629578372745;dx=-2.5714794210207186E-7
New Minimum: 0.46286629578372745 > 2.9623442930159273E-5
WOLF (strong): th(3628800.0)=2.9623442930159273E-5; dx=2.0571835368165948E-9 evalInputDelta=0.4628366723407973
END: th(1814400.0)=0.11387251462352946; dx=-1.2754537928262664E-7 evalInputDelta=0.34899378116019797
Fitness changed from 0.46286629578372745 to 2.9623442930159273E-5
Iteration 3 complete. Error: 2.9623442930159273E-5 Total: 1.7057; Orientation: 0.2534; Line Search: 1.2515
Low gradient: 4.0567805331978375E-6
th(0)=2.9623442930159273E-5;dx=-1.6457468294532888E-11
New Minimum: 2.9623442930159273E-5 > 2.1825550313909402E-7
WOLF (strong): th(3909006.30159385)=2.1825550313909402E-7; dx=1.4126281698032422E-12 evalInputDelta=2.940518742702018E-5
END: th(1954503.150796925)=6.189059255501676E-6; dx=-7.522420062364843E-12 evalInputDelta=2.3434383674657596E-5
Fitness changed from 2.9623442930159273E-5 to 2.1825550313909402E-7
Iteration 4 complete. Error: 2.1825550313909402E-7 Total: 1.4708; Orientation: 0.2262; Line Search: 1.0670
Low gradient: 3.482140969281639E-7
th(0)=2.1825550313909402E-7;dx=-1.2125305729949667E-13
New Minimum: 2.1825550313909402E-7 > 6.283888786524584E-9
WOLF (strong): th(4210849.389853513)=6.283888786524584E-9; dx=2.0574265574797437E-14 evalInputDelta=2.1197161435256943E-7
END: th(2105424.6949267564)=3.761800896408708E-8; dx=-5.033939586234968E-14 evalInputDelta=1.8063749417500693E-7
Fitness changed from 2.1825550313909402E-7 to 6.283888786524584E-9
Iteration 5 complete. Error: 6.283888786524584E-9 Total: 1.4300; Orientation: 0.2302; Line Search: 1.0179
Low gradient: 5.90851024019337E-8
th(0)=6.283888786524584E-9;dx=-3.491049325846995E-15
New Minimum: 6.283888786524584E-9 > 4.2479088196908916E-10
WOLF (strong): th(4536000.0)=4.2479088196908916E-10; dx=9.076728247202477E-16 evalInputDelta=5.859097904555495E-9
END: th(2268000.0)=8.602643748751691E-10; dx=-1.2916882505633526E-15 evalInputDelta=5.423624411649415E-9
Fitness changed from 6.283888786524584E-9 to 4.2479088196908916E-10
Iteration 6 complete. Error: 4.2479088196908916E-10 Total: 1.9870; Orientation: 0.2342; Line Search: 1.5620
Low gradient: 1.5362126624503256E-8
th(0)=4.2479088196908916E-10;dx=-2.3599493442727127E-16
New Minimum: 4.2479088196908916E-10 > 5.422833613630771E-11
WOLF (strong): th(4886257.876992312)=5.422833613630771E-11; dx=8.431953981593527E-17 evalInputDelta=3.7056254583278143E-10
New Minimum: 5.422833613630771E-11 > 4.386721869200667E-11
END: th(2443128.938496156)=4.386721869200667E-11; dx=-7.58376973056675E-17 evalInputDelta=3.809236632770825E-10
Fitness changed from 4.2479088196908916E-10 to 4.386721869200667E-11
Iteration 7 complete. Error: 4.386721869200667E-11 Total: 1.4596; Orientation: 0.2249; Line Search: 1.0586
Low gradient: 4.9366665930681225E-9
th(0)=4.386721869200667E-11;dx=-2.4370677051114905E-17
New Minimum: 4.386721869200667E-11 > 9.367267961307414E-12
WOLF (strong): th(5263561.737316892)=9.367267961307414E-12; dx=1.1261701626315361E-17 evalInputDelta=3.4499950730699255E-11
New Minimum: 9.367267961307414E-12 > 3.1730901996441115E-12
END: th(2631780.868658446)=3.1730901996441115E-12; dx=-6.5544877123991324E-18 evalInputDelta=4.0694128492362557E-11
Fitness changed from 4.386721869200667E-11 to 3.1730901996441115E-12
Iteration 8 complete. Error: 3.1730901996441115E-12 Total: 1.4553; Orientation: 0.2284; Line Search: 1.0571
Low gradient: 1.3277152890176316E-9
th(0)=3.1730901996441115E-12;dx=-1.7628278886911756E-18
New Minimum: 3.1730901996441115E-12 > 1.0491029472610044E-12
WOLF (strong): th(5670000.000000001)=1.0491029472610044E-12; dx=1.0136260359991974E-18 evalInputDelta=2.123987252383107E-12
New Minimum: 1.0491029472610044E-12 > 1.4328485432708972E-13
END: th(2835000.0000000005)=1.4328485432708972E-13; dx=-3.746009263461035E-19 evalInputDelta=3.0298053453170217E-12
Fitness changed from 3.1730901996441115E-12 to 1.4328485432708972E-13
Iteration 9 complete. Error: 1.4328485432708972E-13 Total: 1.4826; Orientation: 0.2275; Line Search: 1.0825
Low gradient: 2.8213949891566617E-10
th(0)=1.4328485432708972E-13;dx=-7.960269684838319E-20
New Minimum: 1.4328485432708972E-13 > 6.953265630602457E-14
WOLF (strong): th(6107822.346240392)=6.953265630602457E-14; dx=5.545261721601852E-20 evalInputDelta=7.375219802106515E-14
New Minimum: 6.953265630602457E-14 > 3.2970221638622643E-15
END: th(3053911.173120196)=3.2970221638622643E-15; dx=-1.2075039816182982E-20 evalInputDelta=1.3998783216322747E-13
Fitness changed from 1.4328485432708972E-13 to 3.2970221638622643E-15
Iteration 10 complete. Error: 3.2970221638622643E-15 Total: 1.5170; Orientation: 0.2305; Line Search: 1.1155
Zero gradient: 4.279811888300093E-11
th(0)=3.2970221638622643E-15;dx=-1.831678979923479E-21
New Minimum: 3.2970221638622643E-15 > 2.258341948182332E-15
WOLF (strong): th(6579452.171646116)=2.258341948182332E-15; dx=1.5159444206986063E-21 evalInputDelta=1.0386802156799323E-15
New Minimum: 2.258341948182332E-15 > 2.4491049386603066E-17
END: th(3289726.085823058)=2.4491049386603066E-17; dx=-1.5786727962597231E-22 evalInputDelta=3.2725311144756613E-15
Fitness changed from 3.2970221638622643E-15 to 2.4491049386603066E-17
Iteration 11 complete. Error: 2.4491049386603066E-17 Total: 1.5216; Orientation: 0.2795; Line Search: 1.0495
Zero gradient: 3.688649962806557E-12
th(0)=2.4491049386603066E-17;dx=-1.36061385481128E-23
New Minimum: 2.4491049386603066E-17 > 2.2984275861587194E-17
WOLF (strong): th(7087500.000000003)=2.2984275861587194E-17; dx=1.3180946724571764E-23 evalInputDelta=1.5067735250158719E-18
New Minimum: 2.2984275861587194E-17 > 5.9792599519586495E-21
END: th(3543750.0000000014)=5.9792599519586495E-21; dx=-2.1259591210857647E-25 evalInputDelta=2.4485070126651108E-17
Fitness changed from 2.4491049386603066E-17 to 5.9792599519586495E-21
Iteration 12 complete. Error: 5.9792599519586495E-21 Total: 1.4455; Orientation: 0.2256; Line Search: 1.0497
Zero gradient: 5.763515493534716E-14
th(0)=5.9792599519586495E-21;dx=-3.321811084421472E-27
Armijo: th(7634777.932800491)=7.510722300955015E-21; dx=3.722991672724447E-27 evalInputDelta=-1.5314623489963653E-21
New Minimum: 5.9792599519586495E-21 > 2.1803063260439712E-23
WOLF (strong): th(3817388.9664002457)=2.1803063260439712E-23; dx=2.0059031937013983E-28 evalInputDelta=5.95745688869821E-21
END: th(1272462.988800082)=2.4993991601316664E-21; dx=-2.1476772769295704E-27 evalInputDelta=3.479860791826983E-21
Fitness changed from 5.9792599519586495E-21 to 2.1803063260439712E-23
Iteration 13 complete. Error: 2.1803063260439712E-23 Total: 1.7588; Orientation: 0.2246; Line Search: 1.3635
Zero gradient: 3.4803466669954746E-15
th(0)=2.1803063260439712E-23;dx=-1.2112812922466526E-29
New Minimum: 2.1803063260439712E-23 > 1.2400963897497607E-24
END: th(2741438.404852549)=1.2400963897497607E-24; dx=-2.8887767063181217E-30 evalInputDelta=2.0562966870689952E-23
Fitness changed from 2.1803063260439712E-23 to 1.2400963897497607E-24
Iteration 14 complete. Error: 1.2400963897497607E-24 Total: 1.2029; Orientation: 0.2309; Line Search: 0.8000
Zero gradient: 8.300255651182481E-16
th(0)=1.2400963897497607E-24;dx=-6.889424387498655E-31
New Minimum: 1.2400963897497607E-24 > 5.08937838606697E-25
WOLF (strong): th(5906250.000000004)=5.08937838606697E-25; dx=4.413545274850218E-31 evalInputDelta=7.311585511430637E-25
New Minimum: 5.08937838606697E-25 > 4.0039388942342416E-26
END: th(2953125.000000002)=4.0039388942342416E-26; dx=-1.237938085163697E-31 evalInputDelta=1.2000570008074183E-24
Fitness changed from 1.2400963897497607E-24 to 4.0039388942342416E-26
Iteration 15 complete. Error: 4.0039388942342416E-26 Total: 1.4467; Orientation: 0.2267; Line Search: 1.0503
Zero gradient: 1.4914457740048082E-16
th(0)=4.0039388942342416E-26;dx=-2.224410496796806E-32
New Minimum: 4.0039388942342416E-26 > 2.357389508707957E-26
WOLF (strong): th(6362314.944000411)=2.357389508707957E-26; dx=1.7068166349522274E-32 evalInputDelta=1.6465493855262847E-26
New Minimum: 2.357389508707957E-26 > 5.419832916293651E-28
END: th(3181157.4720002054)=5.419832916293651E-28; dx=-2.5879937163231626E-33 evalInputDelta=3.949740565071305E-26
Fitness changed from 4.0039388942342416E-26 to 5.419832916293651E-28
Iteration 16 complete. Error: 5.419832916293651E-28 Total: 1.4902; Orientation: 0.2245; Line Search: 1.0916
Zero gradient: 1.7352285978596038E-17
th(0)=5.419832916293651E-28;dx=-3.0110182868298074E-34
New Minimum: 5.419832916293651E-28 > 4.42738483123773E-28
WOLF (strong): th(6853596.012131373)=4.42738483123773E-28; dx=2.721403403173759E-34 evalInputDelta=9.924480850559209E-29
New Minimum: 4.42738483123773E-28 > 1.2561503417158032E-30
END: th(3426798.0060656867)=1.2561503417158032E-30; dx=-1.4482128009082413E-35 evalInputDelta=5.407271412876493E-28
Fitness changed from 5.419832916293651E-28 to 1.2561503417158032E-30
Iteration 17 complete. Error: 1.2561503417158032E-30 Total: 1.4464; Orientation: 0.2260; Line Search: 1.0505
Final threshold in iteration 17: 1.2561503417158032E-30 (> 0.0) after 30.126s (< 30.000s)

Returns

    1.2561503417158032E-30

Training Converged

Conjugate Gradient Descent

First, we use a conjugate gradient descent method, which converges the fastest for purely linear functions.

TrainingTester.java:452 executed in 17.72 seconds (0.591 gc):

    IterativeTrainer iterativeTrainer = new IterativeTrainer(trainable.addRef());
    try {
      iterativeTrainer.setLineSearchFactory(label -> new QuadraticSearch());
      iterativeTrainer.setOrientation(new GradientDescent());
      iterativeTrainer.setMonitor(TrainingTester.getMonitor(history));
      iterativeTrainer.setTimeout(30, TimeUnit.SECONDS);
      iterativeTrainer.setMaxIterations(250);
      iterativeTrainer.setTerminateThreshold(0);
      return iterativeTrainer.run();
    } finally {
      iterativeTrainer.freeRef();
    }
Logging
Reset training subject: 2481528554070
Reset training subject: 2481701623550
Constructing line search parameters: GD
F(0.0) = LineSearchPoint{point=PointSample{avg=2.6673828581155554}, derivative=-1.4818793656197509E-6}
F(1.0E-10) = LineSearchPoint{point=PointSample{avg=2.6673828581155554}, derivative=-1.4818793656197509E-6}, evalInputDelta = 0.0
New Minimum: 2.6673828581155554 > 2.6673828581155545
F(7.000000000000001E-10) = LineSearchPoint{point=PointSample{avg=2.6673828581155545}, derivative=-1.4818793656197505E-6}, evalInputDelta = -8.881784197001252E-16
New Minimum: 2.6673828581155545 > 2.6673828581155483
F(4.900000000000001E-9) = LineSearchPoint{point=PointSample{avg=2.6673828581155483}, derivative=-1.4818793656197496E-6}, evalInputDelta = -7.105427357601002E-15
New Minimum: 2.6673828581155483 > 2.667382858115505
F(3.430000000000001E-8) = LineSearchPoint{point=PointSample{avg=2.667382858115505}, derivative=-1.4818793656197375E-6}, evalInputDelta = -5.062616992290714E-14
New Minimum: 2.667382858115505 > 2.6673828581151997
F(2.4010000000000004E-7) = LineSearchPoint{point=PointSample{avg=2.6673828581151997}, derivative=-1.4818793656196524E-6}, evalInputDelta = -3.5571545708990016E-13
New Minimum: 2.6673828581151997 > 2.667382858113065
F(1.6807000000000003E-6) = LineSearchPoint{point=PointSample{avg=2.667382858113065}, derivative=-1.4818793656190641E-6}, evalInputDelta = -2.490452288839151E-12
New Minimum: 2.667382858113065 > 2.6673828580981214
F(1.1764900000000001E-5) = LineSearchPoint{point=PointSample{avg=2.6673828580981214}, derivative=-1.481879365614914E-6}, evalInputDelta = -1.7434054200293758E-11
New Minimum: 2.6673828580981214 > 2.6673828579935166
F(8.235430000000001E-5) = LineSearchPoint{point=PointSample{avg=2.6673828579935166}, derivative=-1.4818793655858503E-6}, evalInputDelta = -1.2203882349126616E-10
New Minimum: 2.6673828579935166 > 2.6673828572612814
F(5.764801000000001E-4) = LineSearchPoint{point=PointSample{avg=2.6673828572612814}, derivative=-1.481879365382458E-6}, evalInputDelta = -8.542739848849124E-10
New Minimum: 2.6673828572612814 > 2.6673828521356375
F(0.004035360700000001) = LineSearchPoint{point=PointSample{avg=2.6673828521356375}, derivative=-1.4818793639586684E-6}, evalInputDelta = -5.9799178941943865E-9
New Minimum: 2.6673828521356375 > 2.6673828162561315
F(0.028247524900000005) = LineSearchPoint{point=PointSample{avg=2.6673828162561315}, derivative=-1.481879353992129E-6}, evalInputDelta = -4.1859423927093076E-8
New Minimum: 2.6673828162561315 > 2.6673825650995937
F(0.19773267430000002) = LineSearchPoint{point=PointSample{avg=2.6673825650995937}, derivative=-1.4818792842264276E-6}, evalInputDelta = -2.930159617164918E-7
New Minimum: 2.6673825650995937 > 2.66738080700416
F(1.3841287201) = LineSearchPoint{point=PointSample{avg=2.66738080700416}, derivative=-1.4818787958664806E-6}, evalInputDelta = -2.0511113953958215E-6
New Minimum: 2.66738080700416 > 2.6673685003523486
F(9.688901040700001) = LineSearchPoint{point=PointSample{avg=2.6673685003523486}, derivative=-1.4818753773468315E-6}, evalInputDelta = -1.4357763206795937E-5
New Minimum: 2.6673685003523486 > 2.66728235458459
F(67.8223072849) = LineSearchPoint{point=PointSample{avg=2.66728235458459}, derivative=-1.4818514477092795E-6}, evalInputDelta = -1.0050353096557885E-4
New Minimum: 2.66728235458459 > 2.6666793731613954
F(474.7561509943) = LineSearchPoint{point=PointSample{avg=2.6666793731613954}, derivative=-1.4816839402464594E-6}, evalInputDelta = -7.034849541600607E-4
New Minimum: 2.6666793731613954 > 2.662460411803791
F(3323.2930569601003) = LineSearchPoint{point=PointSample{avg=2.662460411803791}, derivative=-1.480511388006695E-6}, evalInputDelta = -0.004922446311764528
New Minimum: 2.662460411803791 > 2.633021203933777
F(23263.0513987207) = LineSearchPoint{point=PointSample{avg=2.633021203933777}, derivative=-1.47230352232833E-6}, evalInputDelta = -0.03436165418177861
New Minimum: 2.633021203933777 > 2.4315293088712675
F(162841.3597910449) = LineSearchPoint{point=PointSample{avg=2.4315293088712675}, derivative=-1.4148484625798053E-6}, evalInputDelta = -0.23585354924428792
New Minimum: 2.4315293088712675 > 1.24563148478552
F(1139889.5185373144) = LineSearchPoint{point=PointSample{avg=1.24563148478552}, derivative=-1.01266304434012E-6}, evalInputDelta = -1.4217513733300353
F(7979226.6297612) = LineSearchPoint{point=PointSample{avg=3.947073342424429}, derivative=1.80263488333769E-6}, evalInputDelta = 1.2796904843088734
F(613786.6638277846) = LineSearchPoint{point=PointSample{avg=1.8353631831412813}, derivative=-1.2292244233922669E-6}, evalInputDelta = -0.8320196749742741
New Minimum: 1.24563148478552 > 0.0998460491733689
F(4296506.646794492) = LineSearchPoint{point=PointSample{avg=0.0998460491733689}, derivative=2.8670522997271253E-7}, evalInputDelta = -2.5675368089421866
0.0998460491733689 <= 2.6673828581155554
New Minimum: 0.0998460491733689 > 2.487464496509866E-31
F(3599999.9999999986) = LineSearchPoint{point=PointSample{avg=2.487464496509866E-31}, derivative=-4.259446497808985E-22}, evalInputDelta = -2.6673828581155554
Left bracket at 3599999.9999999986
Converged to left
Fitness changed from 2.6673828581155554 to 2.487464496509866E-31
Iteration 1 complete. Error: 2.487464496509866E-31 Total: 10.9746; Orientation: 0.2293; Line Search: 10.2307
Zero gradient: 3.7174248079594823E-19
F(0.0) = LineSearchPoint{point=PointSample{avg=2.487464496509866E-31}, derivative=-1.3819247202832573E-37}
New Minimum: 2.487464496509866E-31 > 8.480624116644562E-66
F(3599999.9999999986) = LineSearchPoint{point=PointSample{avg=8.480624116644562E-66}, derivative=-1.8402998503828643E-56}, evalInputDelta = -2.487464496509866E-31
F(2.519999999999999E7) = LineSearchPoint{point=PointSample{avg=8.954872187435519E-30}, derivative=8.291548321699476E-37}, evalInputDelta = 8.706125737784532E-30
F(1938461.5384615376) = LineSearchPoint{point=PointSample{avg=4.9262375154890926E-32}, derivative=-6.008097588381442E-38}, evalInputDelta = -1.994840744960957E-31
F(1.3569230769230762E7) = LineSearchPoint{point=PointSample{avg=1.933191613467905E-30}, derivative=3.85039831564912E-37}, evalInputDelta = 1.684445163816918E-30
F(1043786.9822485202) = LineSearchPoint{point=PointSample{avg=1.2869382308084721E-31}, derivative=-9.855980016383346E-38}, evalInputDelta = -1.200526265701394E-31
F(7306508.8757396415) = LineSearchPoint{point=PointSample{avg=2.5007174365597578E-31}, derivative=1.3854741012146938E-37}, evalInputDelta = 1.3252940049891551E-33
F(562039.1442876647) = LineSearchPoint{point=PointSample{avg=1.8517821029385648E-31}, derivative=-1.185678201858115E-37}, evalInputDelta = -6.356823935713014E-32
F(3934274.010013653) = LineSearchPoint{point=PointSample{avg=1.607049978253299E-33}, derivative=6.535479740113429E-39}, evalInputDelta = -2.471393996727333E-31
1.607049978253299E-33 <= 2.487464496509866E-31
F(3756614.0088161086) = LineSearchPoint{point=PointSample{avg=7.107247709485978E-35}, derivative=6.646398348988355E-40}, evalInputDelta = -2.4867537717389174E-31
Right bracket at 3756614.0088161086
Converged to right
Fitness changed from 2.487464496509866E-31 to 8.480624116644562E-66
Iteration 2 complete. Error: 8.480624116644562E-66 Total: 4.2426; Orientation: 0.2354; Line Search: 3.8248
Zero gradient: 2.1705892846368503E-36
F(0.0) = LineSearchPoint{point=PointSample{avg=8.480624116644562E-66}, derivative=-4.711457842580312E-72}
New Minimum: 8.480624116644562E-66 > 1.605033219781233E-68
F(3756614.0088161086) = LineSearchPoint{point=PointSample{avg=1.605033219781233E-68}, derivative=2.049667500262776E-73}, evalInputDelta = -8.464573784446749E-66
1.605033219781233E-68 <= 8.480624116644562E-66
New Minimum: 1.605033219781233E-68 > 0.0
F(3599999.9999999995) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=0.0}, evalInputDelta = -8.480624116644562E-66
Right bracket at 3599999.9999999995
Converged to right
Fitness changed from 8.480624116644562E-66 to 0.0
Iteration 3 complete. Error: 0.0 Total: 1.7522; Orientation: 0.2297; Line Search: 1.3505
Zero gradient: 0.0
F(0.0) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=0.0}
Fitness changed from 0.0 to 0.0
Static Iteration Total: 0.7483; Orientation: 0.2373; Line Search: 0.3418
Iteration 4 failed. Error: 0.0
Previous Error: 0.0 -> 0.0
Optimization terminated 4
Final threshold in iteration 4: 0.0 (> 0.0) after 17.719s (< 30.000s)

Returns

    0.0

Training Converged

Limited-Memory BFGS

Next, we apply the same optimization using L-BFGS, which is nearly ideal for purely second-order or quadratic functions.

TrainingTester.java:509 executed in 92.90 seconds (1.637 gc):

    IterativeTrainer iterativeTrainer = new IterativeTrainer(trainable.addRef());
    try {
      iterativeTrainer.setLineSearchFactory(label -> new ArmijoWolfeSearch());
      iterativeTrainer.setOrientation(new LBFGS());
      iterativeTrainer.setMonitor(TrainingTester.getMonitor(history));
      iterativeTrainer.setTimeout(30, TimeUnit.SECONDS);
      iterativeTrainer.setIterationsPerSample(100);
      iterativeTrainer.setMaxIterations(250);
      iterativeTrainer.setTerminateThreshold(0);
      return iterativeTrainer.run();
    } finally {
      iterativeTrainer.freeRef();
    }
Logging
Reset training subject: 2499312073559
Reset training subject: 2499482093947
Adding measurement 5f2da2ba to history. Total: 0
LBFGS Accumulation History: 1 points
Constructing line search parameters: GD
Non-optimal measurement 2.6673828581155554 < 2.6673828581155554. Total: 1
th(0)=2.6673828581155554;dx=-1.4818793656197509E-6
Adding measurement 1a021a76 to history. Total: 1
New Minimum: 2.6673828581155554 > 2.6673796655041992
WOLFE (weak): th(2.154434690031884)=2.6673796655041992; dx=-1.4818784787830038E-6 evalInputDelta=3.192611356173103E-6
Adding measurement 873594f to history. Total: 2
New Minimum: 2.6673796655041992 > 2.6673764728947535
WOLFE (weak): th(4.308869380063768)=2.6673764728947535; dx=-1.481877591946246E-6 evalInputDelta=6.385220801874425E-6
Adding measurement 16a2a852 to history. Total: 3
New Minimum: 2.6673764728947535 > 2.6673637024760763
WOLFE (weak): th(12.926608140191302)=2.6673637024760763; dx=-1.4818740445992345E-6 evalInputDelta=1.9155639479073727E-5
Adding measurement 7db02b27 to history. Total: 4
New Minimum: 2.6673637024760763 > 2.667306235970336
WOLFE (weak): th(51.70643256076521)=2.667306235970336; dx=-1.4818580815376764E-6 evalInputDelta=7.662214521930721E-5
Adding measurement 3d28fec4 to history. Total: 5
New Minimum: 2.667306235970336 > 2.666999758394697
WOLFE (weak): th(258.53216280382605)=2.666999758394697; dx=-1.4817729452093696E-6 evalInputDelta=3.830997208584819E-4
Adding measurement 1011f41c to history. Total: 6
New Minimum: 2.666999758394697 > 2.665084672486887
WOLFE (weak): th(1551.1929768229563)=2.665084672486887; dx=-1.4812408431574066E-6 evalInputDelta=0.00229818562866857
Adding measurement 401b64e4 to history. Total: 7
New Minimum: 2.665084672486887 > 2.651316358617617
WOLFE (weak): th(10858.350837760694)=2.651316358617617; dx=-1.4774097083833261E-6 evalInputDelta=0.01606649949793848
Adding measurement 7f9bdb06 to history. Total: 8
New Minimum: 2.651316358617617 > 2.540209789111181
WOLFE (weak): th(86866.80670208555)=2.540209789111181; dx=-1.4461221077283338E-6 evalInputDelta=0.12717306900437464
Adding measurement 489872ae to history. Total: 9
New Minimum: 2.540209789111181 > 1.6346455142163911
END: th(781801.26031877)=1.6346455142163911; dx=-1.160064044597004E-6 evalInputDelta=1.0327373438991643
Fitness changed from 2.6673828581155554 to 1.6346455142163911
Iteration 1 complete. Error: 1.6346455142163911 Total: 6.9738; Orientation: 0.2724; Line Search: 6.1901
Non-optimal measurement 1.6346455142163911 < 1.6346455142163911. Total: 10
Rejected: LBFGS Orientation magnitude: 3.431e+03, gradient 9.530e-04, dot -1.000; [46e6abce-d991-4b0f-b825-fe5be23de546 = 1.000/1.000e+00, 2f6c8354-62c8-4088-b3b2-e798cbaedbd2 = 1.000/1.000e+00, fe54f08e-5151-480a-a58b-4c03db8fcc93 = 1.000/1.000e+00, 0b93f978-311b-47c3-8a5c-bea09329e855 = 1.000/1.000e+00, 6c6f51f5-c1a2-4d40-b7f6-e1f5c4ffa1eb = 1.000/1.000e+00]
Orientation rejected. Popping history element from 1.6346455142163911, 2.540209789111181, 2.651316358617617, 2.665084672486887, 2.666999758394697, 2.667306235970336, 2.6673637024760763, 2.6673764728947535, 2.6673796655041992, 2.6673828581155554
Rejected: LBFGS Orientation magnitude: 3.431e+03, gradient 9.530e-04, dot -1.000; [2f6c8354-62c8-4088-b3b2-e798cbaedbd2 = 1.000/1.000e+00, 0b93f978-311b-47c3-8a5c-bea09329e855 = 1.000/1.000e+00, 46e6abce-d991-4b0f-b825-fe5be23de546 = 1.000/1.000e+00, 6c6f51f5-c1a2-4d40-b7f6-e1f5c4ffa1eb = 1.000/1.000e+00, fe54f08e-5151-480a-a58b-4c03db8fcc93 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 1.6346455142163911, 2.540209789111181, 2.651316358617617, 2.665084672486887, 2.666999758394697, 2.667306235970336, 2.6673637024760763, 2.6673764728947535, 2.6673796655041992
Rejected: LBFGS Orientation magnitude: 3.431e+03, gradient 9.530e-04, dot -1.000; [46e6abce-d991-4b0f-b825-fe5be23de546 = 1.000/1.000e+00, 2f6c8354-62c8-4088-b3b2-e798cbaedbd2 = 1.000/1.000e+00, fe54f08e-5151-480a-a58b-4c03db8fcc93 = 1.000/1.000e+00, 0b93f978-311b-47c3-8a5c-bea09329e855 = 1.000/1.000e+00, 6c6f51f5-c1a2-4d40-b7f6-e1f5c4ffa1eb = 1.000/1.000e+00]
Orientation rejected. Popping history element from 1.6346455142163911, 2.540209789111181, 2.651316358617617, 2.665084672486887, 2.666999758394697, 2.667306235970336, 2.6673637024760763, 2.6673764728947535
Rejected: LBFGS Orientation magnitude: 3.431e+03, gradient 9.530e-04, dot -1.000; [46e6abce-d991-4b0f-b825-fe5be23de546 = 1.000/1.000e+00, 2f6c8354-62c8-4088-b3b2-e798cbaedbd2 = 1.000/1.000e+00, 0b93f978-311b-47c3-8a5c-bea09329e855 = 1.000/1.000e+00, fe54f08e-5151-480a-a58b-4c03db8fcc93 = 1.000/1.000e+00, 6c6f51f5-c1a2-4d40-b7f6-e1f5c4ffa1eb = 1.000/1.000e+00]
Orientation rejected. Popping history element from 1.6346455142163911, 2.540209789111181, 2.651316358617617, 2.665084672486887, 2.666999758394697, 2.667306235970336, 2.6673637024760763
Rejected: LBFGS Orientation magnitude: 3.431e+03, gradient 9.530e-04, dot -1.000; [0b93f978-311b-47c3-8a5c-bea09329e855 = 1.000/1.000e+00, 46e6abce-d991-4b0f-b825-fe5be23de546 = 1.000/1.000e+00, 2f6c8354-62c8-4088-b3b2-e798cbaedbd2 = 1.000/1.000e+00, 6c6f51f5-c1a2-4d40-b7f6-e1f5c4ffa1eb = 1.000/1.000e+00, fe54f08e-5151-480a-a58b-4c03db8fcc93 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 1.6346455142163911, 2.540209789111181, 2.651316358617617, 2.665084672486887, 2.666999758394697, 2.667306235970336
Rejected: LBFGS Orientation magnitude: 3.431e+03, gradient 9.530e-04, dot -1.000; [46e6abce-d991-4b0f-b825-fe5be23de546 = 1.000/1.000e+00, fe54f08e-5151-480a-a58b-4c03db8fcc93 = 1.000/1.000e+00, 2f6c8354-62c8-4088-b3b2-e798cbaedbd2 = 1.000/1.000e+00, 6c6f51f5-c1a2-4d40-b7f6-e1f5c4ffa1eb = 1.000/1.000e+00, 0b93f978-311b-47c3-8a5c-bea09329e855 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 1.6346455142163911, 2.540209789111181, 2.651316358617617, 2.665084672486887, 2.666999758394697
Rejected: LBFGS Orientation magnitude: 3.431e+03, gradient 9.530e-04, dot -1.000; [46e6abce-d991-4b0f-b825-fe5be23de546 = 1.000/1.000e+00, fe54f08e-5151-480a-a58b-4c03db8fcc93 = 1.000/1.000e+00, 2f6c8354-62c8-4088-b3b2-e798cbaedbd2 = 1.000/1.000e+00, 0b93f978-311b-47c3-8a5c-bea09329e855 = 1.000/1.000e+00, 6c6f51f5-c1a2-4d40-b7f6-e1f5c4ffa1eb = 1.000/1.000e+00]
Orientation rejected. Popping history element from 1.6346455142163911, 2.540209789111181, 2.651316358617617, 2.665084672486887
LBFGS Accumulation History: 3 points
Removed measurement 489872ae to history. Total: 9
Removed measurement 7f9bdb06 to history. Total: 8
Removed measurement 401b64e4 to history. Total: 7
Removed measurement 1011f41c to history. Total: 6
Removed measurement 3d28fec4 to history. Total: 5
Removed measurement 7db02b27 to history. Total: 4
Removed measurement 16a2a852 to history. Total: 3
Adding measurement 1a49e5f4 to history. Total: 3
th(0)=1.6346455142163911;dx=-9.081363967868832E-7
Adding measurement 7278fa0b to history. Total: 4
New Minimum: 1.6346455142163911 > 0.46286629578372745
END: th(1684339.7559414052)=0.46286629578372745; dx=-4.832446643075718E-7 evalInputDelta=1.1717792184326636
Fitness changed from 1.6346455142163911 to 0.46286629578372745
Iteration 2 complete. Error: 0.46286629578372745 Total: 85.9266; Orientation: 84.8066; Line Search: 0.9469
Final threshold in iteration 2: 0.46286629578372745 (> 0.0) after 92.900s (< 30.000s)

Returns

    0.46286629578372745

This training apply resulted in the following configuration:

TrainingTester.java:610 executed in 0.00 seconds (0.000 gc):

    RefList<double[]> state = network.state();
    assert state != null;
    String description = state.stream().map(RefArrays::toString).reduce((a, b) -> a + "\n" + b)
        .orElse("");
    state.freeRef();
    return description;

Returns

    

And regressed input:

TrainingTester.java:622 executed in 0.01 seconds (0.000 gc):

    return RefArrays.stream(RefUtil.addRef(data)).flatMap(x -> {
      return RefArrays.stream(x);
    }).limit(1).map(x -> {
      String temp_18_0015 = x.prettyPrint();
      x.freeRef();
      return temp_18_0015;
    }).reduce((a, b) -> a + "\n" + b).orElse("");

Returns

    [
    	[ [ -0.8652585560700967 ], [ -0.2619049197553833 ], [ -0.13151868548582413 ], [ -0.4203313445763323 ], [ 0.9216614958984641 ], [ -0.37295861619440973 ], [ -0.10592878483939516 ], [ -0.1949132725347874 ], ... ],
    	[ [ 1.1928011066399327 ], [ 0.5730465369138228 ], [ -0.20240532633676855 ], [ -0.2152657155953002 ], [ 0.23109188057344493 ], [ -0.8754232251497773 ], [ 0.45612887145366315 ], [ 0.9352370774944863 ], ... ],
    	[ [ -1.2193993600657655 ], [ 0.15542799816657976 ], [ -0.8774944403103823 ], [ 0.4530560829474275 ], [ -0.5444717684805712 ], [ 0.5376547164646905 ], [ 0.20529196718771306 ], [ 0.5128154256903394 ], ... ],
    	[ [ -0.24353300453623128 ], [ 0.14539420695753336 ], [ -1.5666221185098448 ], [ -0.11184249044552286 ], [ 1.1891965068516663 ], [ -0.6599809079327906 ], [ -1.231134837724666 ], [ -0.43054097722420515 ], ... ],
    	[ [ -1.8363599826771464 ], [ 1.3693253783053294 ], [ 0.1341837611468899 ], [ -0.3873114393463526 ], [ 0.8571419972498695 ], [ 0.19786673562096468 ], [ 0.20803541753458732 ], [ -0.20883175115771768 ], ... ],
    	[ [ 0.07409508024461664 ], [ -0.2983528231519429 ], [ 1.1353993600657657 ], [ 0.5539116991891567 ], [ 1.0485290446821993 ], [ 0.9272541631447246 ], [ 0.7089176654601597 ], [ 0.3408269781409152 ], ... ],
    	[ [ -0.43009307382764556 ], [ -1.2697951403689296 ], [ -0.4194252315667485 ], [ -0.9010799480314391 ], [ 0.022245810365320584 ], [ -0.9332012798684686 ], [ -0.868922438476962 ], [ 0.34353777755303344 ], ... ],
    	[ [ 0.44431501910895443 ], [ 0.024149969937843574 ], [ -0.38624581036532046 ], [ -1.04628600091671 ], [ -1.1118213919613424 ], [ 0.8575803546128244 ], [ 0.8345532898576411 ], [ -0.11531821878012592 ], ... ],
    	...
    ]

To produce the following output:

TrainingTester.java:633 executed in 0.01 seconds (0.000 gc):

    Result[] array = ConstantResult.batchResultArray(pop(RefUtil.addRef(data)));
    @Nullable
    Result eval = layer.eval(array);
    assert eval != null;
    TensorList tensorList = Result.getData(eval);
    String temp_18_0016 = tensorList.stream().limit(1).map(x -> {
      String temp_18_0017 = x.prettyPrint();
      x.freeRef();
      return temp_18_0017;
    }).reduce((a, b) -> a + "\n" + b).orElse("");
    tensorList.freeRef();
    return temp_18_0016;

Returns

    [
    	[ [ -0.8652585560700967 ], [ -0.2619049197553833 ], [ -0.13151868548582413 ], [ -0.4203313445763323 ], [ 0.9216614958984641 ], [ -0.37295861619440973 ], [ -0.10592878483939516 ], [ -0.1949132725347874 ], ... ],
    	[ [ 1.1928011066399327 ], [ 0.5730465369138228 ], [ -0.20240532633676855 ], [ -0.2152657155953002 ], [ 0.23109188057344493 ], [ -0.8754232251497773 ], [ 0.45612887145366315 ], [ 0.9352370774944863 ], ... ],
    	[ [ -1.2193993600657655 ], [ 0.15542799816657976 ], [ -0.8774944403103823 ], [ 0.4530560829474275 ], [ -0.5444717684805712 ], [ 0.5376547164646905 ], [ 0.20529196718771306 ], [ 0.5128154256903394 ], ... ],
    	[ [ -0.24353300453623128 ], [ 0.14539420695753336 ], [ -1.5666221185098448 ], [ -0.11184249044552286 ], [ 1.1891965068516663 ], [ -0.6599809079327906 ], [ -1.231134837724666 ], [ -0.43054097722420515 ], ... ],
    	[ [ -1.8363599826771464 ], [ 1.3693253783053294 ], [ 0.1341837611468899 ], [ -0.3873114393463526 ], [ 0.8571419972498695 ], [ 0.19786673562096468 ], [ 0.20803541753458732 ], [ -0.20883175115771768 ], ... ],
    	[ [ 0.07409508024461664 ], [ -0.2983528231519429 ], [ 1.1353993600657657 ], [ 0.5539116991891567 ], [ 1.0485290446821993 ], [ 0.9272541631447246 ], [ 0.7089176654601597 ], [ 0.3408269781409152 ], ... ],
    	[ [ -0.43009307382764556 ], [ -1.2697951403689296 ], [ -0.4194252315667485 ], [ -0.9010799480314391 ], [ 0.022245810365320584 ], [ -0.9332012798684686 ], [ -0.868922438476962 ], [ 0.34353777755303344 ], ... ],
    	[ [ 0.44431501910895443 ], [ 0.024149969937843574 ], [ -0.38624581036532046 ], [ -1.04628600091671 ], [ -1.1118213919613424 ], [ 0.8575803546128244 ], [ 0.8345532898576411 ], [ -0.11531821878012592 ], ... ],
    	...
    ]

TrainingTester.java:432 executed in 0.14 seconds (0.000 gc):

    return TestUtil.compare(title + " vs Iteration", runs);
Logging
Plotting range=[1.0, -65.07157218542716], [17.0, 0.21342358701997668]; valueStats=DoubleSummaryStatistics{count=21, sum=4.195053, min=0.000000, average=0.199764, max=1.634646}
Plotting 17 points for GD
Plotting 3 points for CjGD
Plotting 2 points for LBFGS

Returns

Result

TrainingTester.java:435 executed in 0.01 seconds (0.000 gc):

    return TestUtil.compareTime(title + " vs Time", runs);
Logging
Plotting range=[0.0, -65.07157218542716], [85.926, 0.21342358701997668]; valueStats=DoubleSummaryStatistics{count=21, sum=4.195053, min=0.000000, average=0.199764, max=1.634646}
Plotting 17 points for GD
Plotting 3 points for CjGD
Plotting 2 points for LBFGS

Returns

Result

Results

TrainingTester.java:255 executed in 0.00 seconds (0.000 gc):

    return grid(inputLearning, modelLearning, completeLearning);

Returns

Result

TrainingTester.java:258 executed in 0.00 seconds (0.000 gc):

    return new ComponentResult(null == inputLearning ? null : inputLearning.value,
        null == modelLearning ? null : modelLearning.value, null == completeLearning ? null : completeLearning.value);

Returns

    {"input":{ "LBFGS": { "type": "NonConverged", "value": 0.46286629578372745 }, "CjGD": { "type": "Converged", "value": 0.0 }, "GD": { "type": "Converged", "value": 1.2561503417158032E-30 } }, "model":null, "complete":null}

LayerTests.java:425 executed in 0.00 seconds (0.000 gc):

    throwException(exceptions.addRef());

Results

detailsresult
{"input":{ "LBFGS": { "type": "NonConverged", "value": 0.46286629578372745 }, "CjGD": { "type": "Converged", "value": 0.0 }, "GD": { "type": "Converged", "value": 1.2561503417158032E-30 } }, "model":null, "complete":null}OK
  {
    "result": "OK",
    "performance": {
      "execution_time": "142.598",
      "gc_time": "3.953"
    },
    "created_on": 1586737082161,
    "file_name": "trainingTest",
    "report": {
      "simpleName": "Basic",
      "canonicalName": "com.simiacryptus.mindseye.layers.cudnn.ImgModulusPaddingSubnetLayerTest.Basic",
      "link": "https://github.com/SimiaCryptus/mindseye-cudnn/tree/59d5b3318556370acb2d83ee6ec123ce0fc6974f/src/test/java/com/simiacryptus/mindseye/layers/cudnn/ImgModulusPaddingSubnetLayerTest.java",
      "javaDoc": ""
    },
    "training_analysis": {
      "input": {
        "LBFGS": {
          "type": "NonConverged",
          "value": 0.46286629578372745
        },
        "CjGD": {
          "type": "Converged",
          "value": 0.0
        },
        "GD": {
          "type": "Converged",
          "value": 1.2561503417158032E-30
        }
      }
    },
    "archive": "s3://code.simiacrypt.us/tests/com/simiacryptus/mindseye/layers/cudnn/ImgModulusPaddingSubnetLayer/Basic/trainingTest/202004131802",
    "id": "5df48959-35e9-4d92-803a-44cacdbdbdef",
    "report_type": "Components",
    "display_name": "Comparative Training",
    "target": {
      "simpleName": "ImgModulusPaddingSubnetLayer",
      "canonicalName": "com.simiacryptus.mindseye.layers.cudnn.ImgModulusPaddingSubnetLayer",
      "link": "https://github.com/SimiaCryptus/mindseye-cudnn/tree/59d5b3318556370acb2d83ee6ec123ce0fc6974f/src/main/java/com/simiacryptus/mindseye/layers/cudnn/ImgModulusPaddingSubnetLayer.java",
      "javaDoc": ""
    }
  }