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 6986892124939817984

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.02 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.9641390764346096 ], [ -0.221392736062187 ], [ 0.3774081131196336 ], [ -0.3470025700504482 ], [ 0.44554243532501747 ], [ -0.6467772643303982 ], [ 0.7741859931228605 ], [ -0.4961045043550256 ], ... ],
    	[ [ -0.7782137505374203 ], [ -0.07010558419097812 ], [ -0.051150912658468606 ], [ -0.394700249998424 ], [ 0.7149955987136649 ], [ 0.27043683862796364 ], [ 0.6286346517877555 ], [ -0.18328340388762054 ], ... ],
    	[ [ -0.9890646114525632 ], [ -0.2477790546701908 ], [ 0.6490586177311413 ], [ -0.41905153996962996 ], [ -0.7037069885547798 ], [ 0.3778907241523255 ], [ 0.9981649354041233 ], [ 0.7327443503734503 ], ... ],
    	[ [ -0.024899540380136642 ], [ -0.2663168216983782 ], [ -0.4008032642702797 ], [ -0.4529892305686891 ], [ -0.9354482075640276 ], [ 0.565845987626211 ], [ -0.5480468981106514 ], [ -0.32180756655303555 ], ... ],
    	[ [ 0.023162539028890983 ], [ 0.5910909066226093 ], [ -0.98237525798644 ], [ -0.08192302488613401 ], [ -0.3551218694110072 ], [ -0.5810357253123073 ], [ -0.2388151122050739 ], [ 0.5245733708418023 ], ... ],
    	[ [ 0.12719720984121485 ], [ -0.7066656744129425 ], [ -0.049151303514717304 ], [ 0.14727732839800556 ], [ 0.4229928067596336 ], [ -0.6653895334998701 ], [ -0.4677231449716479 ], [ 0.13552840917499576 ], ... ],
    	[ [ 0.7699255993565444 ], [ -0.5752955950875305 ], [ 0.9180763194191537 ], [ -0.06811842934654377 ], [ -0.6527579364691571 ], [ -0.49940091399648034 ], [ -0.468205987264219 ], [ 0.42288587434994307 ], ... ],
    	[ [ -0.9464955520185478 ], [ -0.8553901031709323 ], [ 0.30053902320084225 ], [ -0.41116681728981397 ], [ 0.42430903790596664 ], [ 0.2847203553211408 ], [ -0.27919094577749726 ], [ -0.8201494545028933 ], ... ],
    	...
    ]
    [
    	[ [ -0.22594173972075127 ], [ -0.2511923471839772 ], [ -0.9132459587184443 ], [ 0.7653581784546142 ], [ 0.4073250174179843 ], [ -0.9151970125738 ], [ 0.8588452444839241 ], [ -0.24854067265154245 ], ... ],
    	[ [ 0.9831881696579392 ], [ 0.44678476466724915 ], [ -0.5432632183150914 ], [ 0.18845054720228283 ], [ -0.4076214244058045 ], [ 0.9600958791295209 ], [ 0.9633862939814508 ], [ 0.5418865781736075 ], ... ],
    	[ [ 0.49457162490559736 ], [ -0.6251343051695266 ], [ 0.3634903147937125 ], [ 0.32432153587545187 ], [ -0.4634236198425541 ], [ 0.6645252475929226 ], [ -0.7035189036450655 ], [ 0.8919933441982104 ], ... ],
    	[ [ -0.05359193786103522 ], [ -0.4335512660379479 ], [ 0.9845100237415332 ], [ 0.4599317985888547 ], [ -0.47740503041879445 ], [ -0.36875376790002123 ], [ 0.9545207156779643 ], [ -0.9816241983111011 ], ... ],
    	[ [ -0.2713711424698948 ], [ 0.028614164652672525 ], [ 0.0366619712673002 ], [ -0.054339015930565226 ], [ -0.4541887937876983 ], [ 0.03515737127193641 ], [ 0.8198399195123711 ], [ 0.30021854262787206 ], ... ],
    	[ [ -0.7228672715315247 ], [ -0.9920272603055453 ], [ -0.21931254176976678 ], [ -0.44561778527045237 ], [ -0.3033489386974344 ], [ 0.4305761623669946 ], [ -0.12117970242968834 ], [ -0.5426843163898982 ], ... ],
    	[ [ -0.6790666370471272 ], [ -0.1984220394066889 ], [ -0.5596982382662234 ], [ 0.7949991288304779 ], [ 0.3393360754091945 ], [ 0.09043880638812607 ], [ -0.5090214804508615 ], [ 0.9646591401440237 ], ... ],
    	[ [ 0.29288098750348146 ], [ -0.8409902026809735 ], [ -0.14607894112176045 ], [ -0.4487507947351934 ], [ -0.28216533102750563 ], [ 0.2784899912259784 ], [ -0.2527255625871483 ], [ 0.9771941724253876 ], ... ],
    	...
    ]
    [
    	[ [ -0.017284890766120053 ], [ 0.06299328416944427 ], [ 0.3624383703741765 ], [ -0.30817114847802407 ], [ -0.19411969464432688 ], [ -0.24158327170939775 ], [ -0.5440614911886359 ], [ 0.5522261523206882 ], ... ],
    	[ [ 0.3356610400092972 ], [ -0.6494292193470113 ], [ 0.9598440393788528 ], [ -0.6975552847264808 ], [ 0.8090722656816589 ], [ -0.8914220058001625 ], [ -0.33845881979584047 ], [ 0.2543662535850062 ], ... ],
    	[ [ 0.39288797409420284 ], [ 0.4939211140508739 ], [ -0.3457634788106083 ], [ -0.33470612562559676 ], [ -0.7884845676839767 ], [ 0.8451935884948145 ], [ 0.8414667553755417 ], [ -0.6573961807268196 ], ... ],
    	[ [ 0.3753474488511954 ], [ -0.387890782577867 ], [ -0.3427629914849415 ], [ -0.29732988165151375 ], [ -0.4283016007116638 ], [ 0.22360829443031838 ], [ -0.3609170023197543 ], [ -0.28711676880115244 ], ... ],
    	[ [ -0.81817624939132 ], [ -0.9571626747905568 ], [ 0.9650983382158747 ], [ -0.684141115571937 ], [ 0.11717187606334356 ], [ -0.6978280555234027 ], [ 0.6820212385905802 ], [ 0.31498712152931563 ], ... ],
    	[ [ -0.47575516612820423 ], [ 0.565524032162535 ], [ 0.8216427568623899 ], [ 0.6018359397744215 ], [ 0.3337006930759663 ], [ -0.07304869060719543 ], [ -0.9412695753703972 ], [ -0.8592081455433662 ], ... ],
    	[ [ 0.37657071792875385 ], [ -0.5332098862063839 ], [ 0.5974539269560519 ], [ 0.9687469637135444 ], [ -0.9906623979335154 ], [ 0.1579436360226505 ], [ 0.5928977473324175 ], [ -0.8509676360433911 ], ... ],
    	[ [ 0.13295388382536255 ], [ -0.010495317397071435 ], [ -0.30086090538774735 ], [ 0.5613380863236848 ], [ 0.046146332163033765 ], [ 0.0418316327862811 ], [ 0.5224222601166175 ], [ 0.4198510449856505 ], ... ],
    	...
    ]
    [
    	[ [ 0.4648861886599964 ], [ 0.24502231680459108 ], [ 0.503417312535352 ], [ -0.5357994960026666 ], [ -0.5103300915562778 ], [ 0.5967865575496507 ], [ -0.3335489691761515 ], [ -0.06648717566694673 ], ... ],
    	[ [ 0.506140347386802 ], [ -0.4408043577577412 ], [ -0.2378059372842618 ], [ 0.0064076747773098575 ], [ -0.39881679986889274 ], [ 0.10761229214547896 ], [ 0.4347614737287693 ], [ 0.08963655247393931 ], ... ],
    	[ [ 0.5124549818391197 ], [ 0.20156712670535004 ], [ -0.7335696742830182 ], [ 0.44656641338808134 ], [ -0.43158004008902995 ], [ -0.3485615658451975 ], [ -0.2637388523197106 ], [ -0.5854297548805898 ], ... ],
    	[ [ 0.23340786849182038 ], [ -0.25888972862731796 ], [ -0.6417198939063193 ], [ -0.2160114252343519 ], [ 0.7531988561592431 ], [ 0.11527185332728385 ], [ -0.6674663440506499 ], [ -0.09175792648646786 ], ... ],
    	[ [ -0.20027008313823713 ], [ -0.48040277148017396 ], [ -0.793817918444212 ], [ 0.5302360944309008 ], [ 0.4197535449862968 ], [ 0.6536015212357051 ], [ 0.9180116736805752 ], [ 0.7127141105787116 ], ... ],
    	[ [ 0.9634834587987962 ], [ 0.3070339761857688 ], [ 0.06601127911482152 ], [ 0.047447823077723994 ], [ 0.18473788135593372 ], [ -0.06368768811451342 ], [ 0.2115823387259459 ], [ -0.40771964317848064 ], ... ],
    	[ [ -0.2480696585912172 ], [ 0.8306781277055544 ], [ -0.8663256589550228 ], [ -0.9616926646052213 ], [ 0.969539067439342 ], [ 0.2425748727475694 ], [ -0.9216136018303995 ], [ -0.14828058050749982 ], ... ],
    	[ [ -0.9932502497724935 ], [ -0.8542147411737617 ], [ -0.31579055368227427 ], [ -0.40933717230614697 ], [ 0.3795405966181853 ], [ 0.20033452256225326 ], [ -0.4185282344500636 ], [ -0.2538078152271348 ], ... ],
    	...
    ]
    [
    	[ [ -0.25062707048156874 ], [ 0.6543781418110195 ], [ 0.7468263589488435 ], [ 0.1632988290828501 ], [ 0.9909708998631095 ], [ 0.6807822130991221 ], [ -0.3209773089782293 ], [ -0.6894008667742928 ], ... ],
    	[ [ 0.8363348630903391 ], [ -0.06831492166355235 ], [ 0.4161586658378811 ], [ 0.036661759452828235 ], [ 0.5730701905800948 ], [ 0.31106751797206855 ], [ 0.5941933394455876 ], [ -0.8959113415650664 ], ... ],
    	[ [ -0.46938299225679914 ], [ -0.42521363691006187 ], [ -0.20547505562606871 ], [ -0.7592096090536977 ], [ -0.7530811783579439 ], [ 0.9168537638817724 ], [ -0.29122503022907686 ], [ 0.6639924995601882 ], ... ],
    	[ [ 0.10423478016433863 ], [ 0.3231539858080905 ], [ -0.7338319873434203 ], [ 0.5305407984306447 ], [ 0.13910744316137547 ], [ -0.9548206950442875 ], [ 0.8780671503394113 ], [ -0.6786272597910525 ], ... ],
    	[ [ 0.3961125748810108 ], [ 0.8635985632912719 ], [ 0.43741563333724964 ], [ -0.7310755441505679 ], [ -0.2382209071926542 ], [ -0.48049240821138306 ], [ 0.5394015782598283 ], [ -0.2651925779389346 ], ... ],
    	[ [ -0.8851100620127377 ], [ -0.6433129783556715 ], [ 0.39385794957060116 ], [ 0.528631916929198 ], [ -0.5003678122555251 ], [ 0.15863454211878647 ], [ 0.5615576294822981 ], [ 0.2496261068810981 ], ... ],
    	[ [ 0.1303305615047905 ], [ 0.36835321744862437 ], [ -0.3044597775036022 ], [ -0.2643017952797493 ], [ 0.8958319756526576 ], [ 0.3021447265010453 ], [ -0.33500534532733695 ], [ -0.047247133242560135 ], ... ],
    	[ [ 0.16845124798652922 ], [ -0.23965079949473433 ], [ 0.6485010069856378 ], [ -0.07179587980594393 ], [ -0.8200585141681085 ], [ 0.2841944272019883 ], [ -0.09337779938341995 ], [ -0.2960381421239766 ], ... ],
    	...
    ]

Gradient Descent

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

TrainingTester.java:480 executed in 2.56 seconds (0.000 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: 690471820217
BACKPROP_AGG_SIZE = 3
THREADS = 64
SINGLE_THREADED = false
Initialized CoreSettings = {
"backpropAggregationSize" : 3,
"jvmThreads" : 64,
"singleThreaded" : false
}
Reset training subject: 690536254947
Constructing line search parameters: GD
th(0)=5028.060835168183;dx=-4.539134111273675E7
New Minimum: 5028.060835168183 > 179.30268877805443
END: th(2.154434690031884)=179.30268877805443; dx=-7719.134548383826 evalInputDelta=4848.758146390129
Fitness changed from 5028.060835168183 to 179.30268877805443
Iteration 1 complete. Error: 179.30268877805443 Total: 0.1955; Orientation: 0.0086; Line Search: 0.0831
th(0)=179.30268877805443;dx=-690.1110527880757
New Minimum: 179.30268877805443 > 33.84234021851351
WOLFE (weak): th(4.641588833612779)=33.84234021851351; dx=-677.8174053507194 evalInputDelta=145.46034855954093
New Minimum: 33.84234021851351 > 11.710764289287425
WOLFE (weak): th(9.283177667225559)=11.710764289287425; dx=-676.6194270940689 evalInputDelta=167.591924488767
New Minimum: 11.710764289287425 > 1.3180720178114407
WOLFE (weak): th(27.849533001676676)=1.3180720178114407; dx=-676.2628522448424 evalInputDelta=177.984616760243
New Minimum: 1.3180720178114407 > 0.07113805260455326
WOLFE (weak): th(111.3981320067067)=0.07113805260455326; dx=-676.2460785923965 evalInputDelta=179.23155072544986
New Minimum: 0.07113805260455326 > 0.00238948383700749
WOLFE (weak): th(556.9906600335335)=0.00238948383700749; dx=-676.2458615654335 evalInputDelta=179.3002992942174
New Minimum: 0.00238948383700749 > 5.839552621565021E-5
WOLFE (weak): th(3341.9439602012008)=5.839552621565021E-5; dx=-676.2458601556239 evalInputDelta=179.3026303825282
New Minimum: 5.839552621565021E-5 > 1.5599610171416925E-7
WOLFE (weak): th(23393.607721408407)=1.5599610171416925E-7; dx=-676.2458601488515 evalInputDelta=179.30268862205833
New Minimum: 1.5599610171416925E-7 > 0.0
WOLFE (weak): th(187148.86177126726)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Armijo: th(1684339.7559414054)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Armijo: th(935744.3088563364)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Armijo: th(561446.5853138019)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Armijo: th(374297.7235425346)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Armijo: th(280723.29265690094)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
WOLFE (weak): th(233936.0772140841)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
WOLFE (weak): th(257329.68493549252)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Armijo: th(269026.48879619676)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Armijo: th(263178.08686584467)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Armijo: th(260253.8859006686)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
WOLFE (weak): th(258791.78541808057)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
mu ~= nu (258791.78541808057): th(187148.86177126726)=0.0
Fitness changed from 179.30268877805443 to 0.0
Iteration 2 complete. Error: 0.0 Total: 1.3350; Orientation: 0.0036; Line Search: 1.3162
th(0)=0.0;dx=-666.3398828036749
Armijo: th(559125.0000000002)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(279562.5000000001)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(93187.50000000004)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(23296.87500000001)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(4659.375000000002)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(776.5625000000003)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(110.93750000000004)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(13.867187500000005)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(1.5407986111111116)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(0.15407986111111116)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(0.014007260101010105)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(0.0011672716750841755)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(8.979012885262889E-5)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(6.413580632330635E-6)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(4.2757204215537565E-7)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(2.6723252634710978E-8)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(1.5719560373359399E-9)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(8.733089096310777E-11)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(4.59636268226883E-12)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(2.298181341134415E-13)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Armijo: th(1.0943720672068644E-14)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
MIN ALPHA (4.974418487303929E-16): th(0.0)=0.0
Fitness changed from 0.0 to 0.0
Static Iteration Total: 1.0170; Orientation: 0.0050; Line Search: 1.0020
Iteration 3 failed. Error: 0.0
Previous Error: 0.0 -> 0.0
Optimization terminated 3
Final threshold in iteration 3: 0.0 (> 0.0) after 2.548s (< 30.000s)

Returns

    0.0

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 2.59 seconds (0.018 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: 693025118718
Reset training subject: 693035743401
Constructing line search parameters: GD
F(0.0) = LineSearchPoint{point=PointSample{avg=5028.060835168183}, derivative=-4.539134111273675E7}
New Minimum: 5028.060835168183 > 5028.056327642252
F(1.0E-10) = LineSearchPoint{point=PointSample{avg=5028.056327642252}, derivative=-4.4762977943582274E7}, evalInputDelta = -0.004507525931330747
New Minimum: 5028.056327642252 > 5028.030506785062
F(7.000000000000001E-10) = LineSearchPoint{point=PointSample{avg=5028.030506785062}, derivative=-4.142024966170002E7}, evalInputDelta = -0.03032838312083186
New Minimum: 5028.030506785062 > 5027.887616936302
F(4.900000000000001E-9) = LineSearchPoint{point=PointSample{avg=5027.887616936302}, derivative=-2.874669487607685E7}, evalInputDelta = -0.17321823188103735
New Minimum: 5027.887616936302 > 5027.353063160898
F(3.430000000000001E-8) = LineSearchPoint{point=PointSample{avg=5027.353063160898}, derivative=-1.3449245324480157E7}, evalInputDelta = -0.7077720072848024
New Minimum: 5027.353063160898 > 5025.700842141143
F(2.4010000000000004E-7) = LineSearchPoint{point=PointSample{avg=5025.700842141143}, derivative=-5855384.521122498}, evalInputDelta = -2.3599930270402183
New Minimum: 5025.700842141143 > 5020.857558256687
F(1.6807000000000003E-6) = LineSearchPoint{point=PointSample{avg=5020.857558256687}, derivative=-2352968.124950714}, evalInputDelta = -7.203276911495777
New Minimum: 5020.857558256687 > 5007.8883046928795
F(1.1764900000000001E-5) = LineSearchPoint{point=PointSample{avg=5007.8883046928795}, derivative=-882502.527622971}, evalInputDelta = -20.172530475303574
New Minimum: 5007.8883046928795 > 4974.1180519318
F(8.235430000000001E-5) = LineSearchPoint{point=PointSample{avg=4974.1180519318}, derivative=-325319.14679467434}, evalInputDelta = -53.94278323638264
New Minimum: 4974.1180519318 > 4888.155127469159
F(5.764801000000001E-4) = LineSearchPoint{point=PointSample{avg=4888.155127469159}, derivative=-119138.25842139326}, evalInputDelta = -139.90570769902388
New Minimum: 4888.155127469159 > 4668.707475634337
F(0.004035360700000001) = LineSearchPoint{point=PointSample{avg=4668.707475634337}, derivative=-45719.22449114783}, evalInputDelta = -359.35335953384583
New Minimum: 4668.707475634337 > 4111.320691376664
F(0.028247524900000005) = LineSearchPoint{point=PointSample{avg=4111.320691376664}, derivative=-19481.899549412243}, evalInputDelta = -916.7401437915187
New Minimum: 4111.320691376664 > 2775.9388283740423
F(0.19773267430000002) = LineSearchPoint{point=PointSample{avg=2775.9388283740423}, derivative=-10337.354497948681}, evalInputDelta = -2252.122006794141
New Minimum: 2775.9388283740423 > 433.64854132118774
F(1.3841287201) = LineSearchPoint{point=PointSample{avg=433.64854132118774}, derivative=-7795.692166036199}, evalInputDelta = -4594.412293846995
New Minimum: 433.64854132118774 > 8.927018818560368
F(9.688901040700001) = LineSearchPoint{point=PointSample{avg=8.927018818560368}, derivative=-7691.783717933106}, evalInputDelta = -5019.133816349623
New Minimum: 8.927018818560368 > 0.18492171457299517
F(67.8223072849) = LineSearchPoint{point=PointSample{avg=0.18492171457299517}, derivative=-7691.480195223791}, evalInputDelta = -5027.87591345361
New Minimum: 0.18492171457299517 > 0.0032578032068171885
F(474.7561509943) = LineSearchPoint{point=PointSample{avg=0.0032578032068171885}, derivative=-7691.479293278513}, evalInputDelta = -5028.057577364976
New Minimum: 0.0032578032068171885 > 5.8996413100381975E-5
F(3323.2930569601003) = LineSearchPoint{point=PointSample{avg=5.8996413100381975E-5}, derivative=-7691.47929100919}, evalInputDelta = -5028.06077617177
New Minimum: 5.8996413100381975E-5 > 1.5618425773243852E-7
F(23263.0513987207) = LineSearchPoint{point=PointSample{avg=1.5618425773243852E-7}, derivative=-7691.479291002313}, evalInputDelta = -5028.060835011999
New Minimum: 1.5618425773243852E-7 > 0.0
F(162841.3597910449) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-7691.479291002313}, evalInputDelta = -5028.060835168183
F(1139889.5185373144) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-7691.479291002313}, evalInputDelta = -5028.060835168183
F(7979226.6297612) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-7691.479291002313}, evalInputDelta = -5028.060835168183
F(5.58545864083284E7) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-7691.479291002313}, evalInputDelta = -5028.060835168183
F(3.909821048582988E8) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-7691.479291002313}, evalInputDelta = -5028.060835168183
F(2.7368747340080914E9) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-7691.479291002313}, evalInputDelta = -5028.060835168183
F(1.915812313805664E10) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-7691.479291002313}, evalInputDelta = -5028.060835168183
0.0 <= 5028.060835168183
F(1.0E10) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-7691.479291002313}, evalInputDelta = -5028.060835168183
Right bracket at 1.0E10
Converged to right
Fitness changed from 5028.060835168183 to 0.0
Iteration 1 complete. Error: 0.0 Total: 1.7722; Orientation: 0.0038; Line Search: 1.6191
F(0.0) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-666.3398828036749}
F(1.0E10) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-666.3398828036749}, evalInputDelta = 0.0
0.0 <= 0.0
F(5.0E9) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-666.3398828036749}, evalInputDelta = 0.0
Right bracket at 5.0E9
F(2.5E9) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-666.3398828036749}, evalInputDelta = 0.0
Right bracket at 2.5E9
F(1.25E9) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-666.3398828036749}, evalInputDelta = 0.0
Right bracket at 1.25E9
F(6.25E8) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-666.3398828036749}, evalInputDelta = 0.0
Right bracket at 6.25E8
F(3.125E8) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-666.3398828036749}, evalInputDelta = 0.0
Right bracket at 3.125E8
F(1.5625E8) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-666.3398828036749}, evalInputDelta = 0.0
Right bracket at 1.5625E8
F(7.8125E7) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-666.3398828036749}, evalInputDelta = 0.0
Right bracket at 7.8125E7
F(3.90625E7) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-666.3398828036749}, evalInputDelta = 0.0
Right bracket at 3.90625E7
F(1.953125E7) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-666.3398828036749}, evalInputDelta = 0.0
Right bracket at 1.953125E7
F(9765625.0) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-666.3398828036749}, evalInputDelta = 0.0
Right bracket at 9765625.0
F(4882812.5) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-666.3398828036749}, evalInputDelta = 0.0
Right bracket at 4882812.5
F(2441406.25) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-666.3398828036749}, evalInputDelta = 0.0
Loops = 12
Fitness changed from 0.0 to 0.0
Static Iteration Total: 0.8197; Orientation: 0.0038; Line Search: 0.8003
Iteration 2 failed. Error: 0.0
Previous Error: 0.0 -> 0.0
Optimization terminated 2
Final threshold in iteration 2: 0.0 (> 0.0) after 2.593s (< 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 10.85 seconds (0.035 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: 695621732370
Reset training subject: 695630760195
Adding measurement 7023b31f to history. Total: 0
LBFGS Accumulation History: 1 points
Constructing line search parameters: GD
Non-optimal measurement 5028.060835168183 < 5028.060835168183. Total: 1
th(0)=5028.060835168183;dx=-4.539134111273675E7
Adding measurement 47568089 to history. Total: 1
New Minimum: 5028.060835168183 > 179.30268877805443
END: th(2.154434690031884)=179.30268877805443; dx=-7719.134548383826 evalInputDelta=4848.758146390129
Fitness changed from 5028.060835168183 to 179.30268877805443
Iteration 1 complete. Error: 179.30268877805443 Total: 0.1437; Orientation: 0.0220; Line Search: 0.0379
Non-optimal measurement 179.30268877805443 < 179.30268877805443. Total: 2
LBFGS Accumulation History: 2 points
Non-optimal measurement 179.30268877805443 < 179.30268877805443. Total: 2
th(0)=179.30268877805443;dx=-690.1110527880757
Adding measurement 4cb7092f to history. Total: 2
New Minimum: 179.30268877805443 > 33.84234021851351
WOLFE (weak): th(4.641588833612779)=33.84234021851351; dx=-677.8174053507194 evalInputDelta=145.46034855954093
Adding measurement 3a8f4341 to history. Total: 3
New Minimum: 33.84234021851351 > 11.710764289287425
WOLFE (weak): th(9.283177667225559)=11.710764289287425; dx=-676.6194270940689 evalInputDelta=167.591924488767
Adding measurement 5dcb7550 to history. Total: 4
New Minimum: 11.710764289287425 > 1.3180720178114407
WOLFE (weak): th(27.849533001676676)=1.3180720178114407; dx=-676.2628522448424 evalInputDelta=177.984616760243
Adding measurement 4e564311 to history. Total: 5
New Minimum: 1.3180720178114407 > 0.07113805260455326
WOLFE (weak): th(111.3981320067067)=0.07113805260455326; dx=-676.2460785923965 evalInputDelta=179.23155072544986
Adding measurement 7a0f636c to history. Total: 6
New Minimum: 0.07113805260455326 > 0.00238948383700749
WOLFE (weak): th(556.9906600335335)=0.00238948383700749; dx=-676.2458615654335 evalInputDelta=179.3002992942174
Adding measurement a640e20 to history. Total: 7
New Minimum: 0.00238948383700749 > 5.839552621565021E-5
WOLFE (weak): th(3341.9439602012008)=5.839552621565021E-5; dx=-676.2458601556239 evalInputDelta=179.3026303825282
Adding measurement 37991426 to history. Total: 8
New Minimum: 5.839552621565021E-5 > 1.5599610171416925E-7
WOLFE (weak): th(23393.607721408407)=1.5599610171416925E-7; dx=-676.2458601488515 evalInputDelta=179.30268862205833
Adding measurement 5e1ef89a to history. Total: 9
New Minimum: 1.5599610171416925E-7 > 0.0
WOLFE (weak): th(187148.86177126726)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Non-optimal measurement 0.0 < 0.0. Total: 10
Armijo: th(1684339.7559414054)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Non-optimal measurement 0.0 < 0.0. Total: 10
Armijo: th(935744.3088563364)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Non-optimal measurement 0.0 < 0.0. Total: 10
Armijo: th(561446.5853138019)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Non-optimal measurement 0.0 < 0.0. Total: 10
Armijo: th(374297.7235425346)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Non-optimal measurement 0.0 < 0.0. Total: 10
Armijo: th(280723.29265690094)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Non-optimal measurement 0.0 < 0.0. Total: 10
WOLFE (weak): th(233936.0772140841)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Non-optimal measurement 0.0 < 0.0. Total: 10
WOLFE (weak): th(257329.68493549252)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Non-optimal measurement 0.0 < 0.0. Total: 10
Armijo: th(269026.48879619676)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Non-optimal measurement 0.0 < 0.0. Total: 10
Armijo: th(263178.08686584467)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Non-optimal measurement 0.0 < 0.0. Total: 10
Armijo: th(260253.8859006686)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Non-optimal measurement 0.0 < 0.0. Total: 10
WOLFE (weak): th(258791.78541808057)=0.0; dx=-676.2458601488513 evalInputDelta=179.30268877805443
Non-optimal measurement 0.0 < 0.0. Total: 10
mu ~= nu (258791.78541808057): th(187148.86177126726)=0.0
Fitness changed from 179.30268877805443 to 0.0
Iteration 2 complete. Error: 0.0 Total: 1.0002; Orientation: 0.0052; Line Search: 0.9830
Non-optimal measurement 0.0 < 0.0. Total: 10
Rejected: LBFGS Orientation magnitude: 7.341e+03, gradient 2.581e+01, dot -0.998; [e9279ff9-0250-4253-a7ef-1bc3c9d348d4 = 1.000/1.000e+00, ac6961f1-c30c-484f-a8f2-e8a6c5ebac9f = 1.000/1.000e+00, 84f274f5-9866-43b5-bd25-c14320f26684 = 1.000/1.000e+00, 7792d8ba-4b6f-4710-ada0-75c214385ca4 = 1.000/1.000e+00, c43d052b-a1d9-49c1-b9ad-971f77bf30cd = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.0, 1.5599610171416925E-7, 5.839552621565021E-5, 0.00238948383700749, 0.07113805260455326, 1.3180720178114407, 11.710764289287425, 33.84234021851351, 179.30268877805443, 5028.060835168183
Rejected: LBFGS Orientation magnitude: 1.314e+04, gradient 2.581e+01, dot -0.997; [84f274f5-9866-43b5-bd25-c14320f26684 = 1.000/1.000e+00, e9279ff9-0250-4253-a7ef-1bc3c9d348d4 = 1.000/1.000e+00, c43d052b-a1d9-49c1-b9ad-971f77bf30cd = 1.000/1.000e+00, ac6961f1-c30c-484f-a8f2-e8a6c5ebac9f = 1.000/1.000e+00, 7792d8ba-4b6f-4710-ada0-75c214385ca4 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.0, 1.5599610171416925E-7, 5.839552621565021E-5, 0.00238948383700749, 0.07113805260455326, 1.3180720178114407, 11.710764289287425, 33.84234021851351, 179.30268877805443
Rejected: LBFGS Orientation magnitude: 1.374e+05, gradient 2.581e+01, dot -0.999; [84f274f5-9866-43b5-bd25-c14320f26684 = 1.000/1.000e+00, ac6961f1-c30c-484f-a8f2-e8a6c5ebac9f = 1.000/1.000e+00, e9279ff9-0250-4253-a7ef-1bc3c9d348d4 = 1.000/1.000e+00, 7792d8ba-4b6f-4710-ada0-75c214385ca4 = 1.000/1.000e+00, c43d052b-a1d9-49c1-b9ad-971f77bf30cd = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.0, 1.5599610171416925E-7, 5.839552621565021E-5, 0.00238948383700749, 0.07113805260455326, 1.3180720178114407, 11.710764289287425, 33.84234021851351
Rejected: LBFGS Orientation magnitude: 1.849e+06, gradient 2.581e+01, dot -0.998; [e9279ff9-0250-4253-a7ef-1bc3c9d348d4 = 1.000/1.000e+00, 84f274f5-9866-43b5-bd25-c14320f26684 = 1.000/1.000e+00, 7792d8ba-4b6f-4710-ada0-75c214385ca4 = 1.000/1.000e+00, c43d052b-a1d9-49c1-b9ad-971f77bf30cd = 1.000/1.000e+00, ac6961f1-c30c-484f-a8f2-e8a6c5ebac9f = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.0, 1.5599610171416925E-7, 5.839552621565021E-5, 0.00238948383700749, 0.07113805260455326, 1.3180720178114407, 11.710764289287425
Rejected: LBFGS Orientation magnitude: 1.770e+08, gradient 2.581e+01, dot -0.997; [e9279ff9-0250-4253-a7ef-1bc3c9d348d4 = 1.000/1.000e+00, c43d052b-a1d9-49c1-b9ad-971f77bf30cd = 1.000/1.000e+00, ac6961f1-c30c-484f-a8f2-e8a6c5ebac9f = 1.000/1.000e+00, 7792d8ba-4b6f-4710-ada0-75c214385ca4 = 1.000/1.000e+00, 84f274f5-9866-43b5-bd25-c14320f26684 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.0, 1.5599610171416925E-7, 5.839552621565021E-5, 0.00238948383700749, 0.07113805260455326, 1.3180720178114407
Rejected: LBFGS Orientation magnitude: 7.295e+10, gradient 2.581e+01, dot -0.997; [c43d052b-a1d9-49c1-b9ad-971f77bf30cd = 1.000/1.000e+00, ac6961f1-c30c-484f-a8f2-e8a6c5ebac9f = 1.000/1.000e+00, 7792d8ba-4b6f-4710-ada0-75c214385ca4 = 1.000/1.000e+00, 84f274f5-9866-43b5-bd25-c14320f26684 = 1.000/1.000e+00, e9279ff9-0250-4253-a7ef-1bc3c9d348d4 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.0, 1.5599610171416925E-7, 5.839552621565021E-5, 0.00238948383700749, 0.07113805260455326
Rejected: LBFGS Orientation magnitude: 7.019e+13, gradient 2.581e+01, dot -0.997; [e9279ff9-0250-4253-a7ef-1bc3c9d348d4 = 1.000/1.000e+00, 7792d8ba-4b6f-4710-ada0-75c214385ca4 = 1.000/1.000e+00, ac6961f1-c30c-484f-a8f2-e8a6c5ebac9f = 1.000/1.000e+00, 84f274f5-9866-43b5-bd25-c14320f26684 = 1.000/1.000e+00, c43d052b-a1d9-49c1-b9ad-971f77bf30cd = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.0, 1.5599610171416925E-7, 5.839552621565021E-5, 0.00238948383700749
LBFGS Accumulation History: 3 points
Removed measurement 5e1ef89a to history. Total: 9
Removed measurement 37991426 to history. Total: 8
Removed measurement a640e20 to history. Total: 7
Removed measurement 7a0f636c to history. Total: 6
Removed measurement 4e564311 to history. Total: 5
Removed measurement 5dcb7550 to history. Total: 4
Removed measurement 3a8f4341 to history. Total: 3
Adding measurement 52a7f3aa to history. Total: 3
th(0)=0.0;dx=-666.3398828036749
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(559125.0000000002)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(279562.5000000001)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(93187.50000000004)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(23296.87500000001)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(4659.375000000002)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(776.5625000000003)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(110.93750000000004)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(13.867187500000005)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(1.5407986111111116)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(0.15407986111111116)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(0.014007260101010105)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(0.0011672716750841755)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(8.979012885262889E-5)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(6.413580632330635E-6)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(4.2757204215537565E-7)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(2.6723252634710978E-8)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(1.5719560373359399E-9)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(8.733089096310777E-11)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(4.59636268226883E-12)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(2.298181341134415E-13)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(1.0943720672068644E-14)=0.0; dx=-666.3398828036749 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
MIN ALPHA (4.974418487303929E-16): th(0.0)=0.0
Fitness changed from 0.0 to 0.0
Static Iteration Total: 9.7044; Orientation: 8.3687; Line Search: 1.3266
Iteration 3 failed. Error: 0.0
Previous Error: 0.0 -> 0.0
Optimization terminated 3
Final threshold in iteration 3: 0.0 (> 0.0) after 10.849s (< 30.000s)

Returns

    0.0

Training Converged

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

    return TestUtil.compare(title + " vs Iteration", runs);
Logging
Plotting range=[1.0, 1.2535868021819074], [2.0, 3.2535868021819074]; valueStats=DoubleSummaryStatistics{count=2, sum=358.605378, min=179.302689, average=179.302689, max=179.302689}
Plotting 2 points for GD
Only 1 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, 1.2535868021819074], [1.335, 3.2535868021819074]; valueStats=DoubleSummaryStatistics{count=2, sum=358.605378, min=179.302689, average=179.302689, max=179.302689}
Plotting 2 points for GD
Only 1 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": "Converged", "value": 0.0 }, "CjGD": { "type": "Converged", "value": 0.0 }, "GD": { "type": "Converged", "value": 0.0 } }, "model":null, "complete":null}

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

    throwException(exceptions.addRef());

Results

detailsresult
{"input":{ "LBFGS": { "type": "Converged", "value": 0.0 }, "CjGD": { "type": "Converged", "value": 0.0 }, "GD": { "type": "Converged", "value": 0.0 } }, "model":null, "complete":null}OK
  {
    "result": "OK",
    "performance": {
      "execution_time": "16.649",
      "gc_time": "0.253"
    },
    "created_on": 1586735278240,
    "file_name": "trainingTest",
    "report": {
      "simpleName": "Basic",
      "canonicalName": "com.simiacryptus.mindseye.layers.java.AbsActivationLayerTest.Basic",
      "link": "https://github.com/SimiaCryptus/mindseye-java/tree/93db34cedee48c0202777a2b25deddf1dfaf5731/src/test/java/com/simiacryptus/mindseye/layers/java/AbsActivationLayerTest.java",
      "javaDoc": ""
    },
    "training_analysis": {
      "input": {
        "LBFGS": {
          "type": "Converged",
          "value": 0.0
        },
        "CjGD": {
          "type": "Converged",
          "value": 0.0
        },
        "GD": {
          "type": "Converged",
          "value": 0.0
        }
      }
    },
    "archive": "s3://code.simiacrypt.us/tests/com/simiacryptus/mindseye/layers/java/AbsActivationLayer/Basic/trainingTest/202004124758",
    "id": "2bead6bf-ac51-4814-ad3a-1bbb86228d5e",
    "report_type": "Components",
    "display_name": "Comparative Training",
    "target": {
      "simpleName": "AbsActivationLayer",
      "canonicalName": "com.simiacryptus.mindseye.layers.java.AbsActivationLayer",
      "link": "https://github.com/SimiaCryptus/mindseye-java/tree/93db34cedee48c0202777a2b25deddf1dfaf5731/src/main/java/com/simiacryptus/mindseye/layers/java/AbsActivationLayer.java",
      "javaDoc": ""
    }
  }