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 4012753898454713344

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.00 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.7, 1.524, -1.028 ], [ -0.128, 1.208, -0.608 ] ],
    	[ [ 0.496, 0.048, -1.72 ], [ 1.764, 0.08, -0.384 ] ]
    ]
    [
    	[ [ 1.208, -0.128, 0.7 ], [ -1.028, -0.384, 0.08 ] ],
    	[ [ -1.72, 1.524, -0.608 ], [ 0.048, 0.496, 1.764 ] ]
    ]
    [
    	[ [ 1.524, 0.7, 0.496 ], [ 1.208, -0.384, -0.128 ] ],
    	[ [ 0.08, -1.028, -1.72 ], [ 0.048, -0.608, 1.764 ] ]
    ]
    [
    	[ [ 1.524, 1.764, -0.608 ], [ 0.496, 0.7, -1.72 ] ],
    	[ [ -0.384, 0.08, 0.048 ], [ 1.208, -0.128, -1.028 ] ]
    ]
    [
    	[ [ 0.08, 0.048, 1.208 ], [ -0.384, -1.028, 1.764 ] ],
    	[ [ 0.496, 0.7, -0.608 ], [ -0.128, 1.524, -1.72 ] ]
    ]

Gradient Descent

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

TrainingTester.java:480 executed in 0.47 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: 833022120137
BACKPROP_AGG_SIZE = 3
THREADS = 64
SINGLE_THREADED = false
Initialized CoreSettings = {
"backpropAggregationSize" : 3,
"jvmThreads" : 64,
"singleThreaded" : false
}
Reset training subject: 833055522201
Constructing line search parameters: GD
th(0)=45.461817419069234;dx=-4.3016192E23
New Minimum: 45.461817419069234 > 0.02528178856107105
Armijo: th(2.154434690031884)=0.02528178856107105; dx=-4.301619200054307E11 evalInputDelta=45.43653563050816
Armijo: th(1.077217345015942)=0.08826339085026516; dx=-4.301619200054498E11 evalInputDelta=45.37355402821897
Armijo: th(0.3590724483386473)=0.29371142717017495; dx=-4.301619200055807E11 evalInputDelta=45.16810599189906
Armijo: th(0.08976811208466183)=1.1713023421956894; dx=-4.3016192001028546E11 evalInputDelta=44.29051507687355
Armijo: th(0.017953622416932366)=2.4093908303331144; dx=-4.301619200335697E11 evalInputDelta=43.05242658873612
Armijo: th(0.002992270402822061)=3.123536626593542; dx=-4.3016192007261145E11 evalInputDelta=42.33828079247569
Armijo: th(4.2746720040315154E-4)=3.3334743109214218; dx=-4.3016192009310925E11 evalInputDelta=42.12834310814781
Armijo: th(5.343340005039394E-5)=3.369036624929521; dx=-4.3016192009725024E11 evalInputDelta=42.09278079413971
Armijo: th(5.9370444500437714E-6)=3.3736655759874985; dx=-4.3016192009780585E11 evalInputDelta=42.08815184308173
Armijo: th(5.937044450043771E-7)=3.3741879886645014; dx=-4.3016192009786884E11 evalInputDelta=42.08762943040473
Armijo: th(5.397313136403428E-8)=3.3742407763312805; dx=-4.301619200978752E11 evalInputDelta=42.08757664273796
Armijo: th(4.4977609470028565E-9)=3.3742456153725926; dx=-4.3016192009787573E11 evalInputDelta=42.08757180369664
Armijo: th(3.4598161130791205E-10)=3.374246021447302; dx=-4.3016192009787585E11 evalInputDelta=42.08757139762193
Armijo: th(2.4712972236279432E-11)=3.8684581313172943; dx=-2.5600000043421883E20 evalInputDelta=41.59335928775194
Armijo: th(1.6475314824186289E-12)=24.614339223391447; dx=-1.9319104000107023E23 evalInputDelta=20.847478195677787
Armijo: th(1.029707176511643E-13)=45.46181741905916; dx=-4.3016192E23 evalInputDelta=1.007549599307822E-11
Armijo: th(6.057101038303783E-15)=45.461817419068645; dx=-4.3016192E23 evalInputDelta=5.897504706808832E-13
MIN ALPHA (3.3650561323909904E-16): th(2.154434690031884)=0.02528178856107105
Fitness changed from 45.461817419069234 to 0.02528178856107105
Iteration 1 complete. Error: 0.02528178856107105 Total: 0.1697; Orientation: 0.0035; Line Search: 0.1241
th(0)=0.02528178856107105;dx=-1.0004008394619943
New Minimum: 0.02528178856107105 > 0.025281788561071
WOLFE (weak): th(2.154434690031884E-15)=0.025281788561071; dx=-1.0004008394619943 evalInputDelta=4.85722573273506E-17
New Minimum: 0.025281788561071 > 0.02528178856107095
WOLFE (weak): th(4.308869380063768E-15)=0.02528178856107095; dx=-1.0004008394619943 evalInputDelta=1.0061396160665481E-16
New Minimum: 0.02528178856107095 > 0.025281788561070752
WOLFE (weak): th(1.2926608140191303E-14)=0.025281788561070752; dx=-1.0004008394619943 evalInputDelta=2.983724378680108E-16
New Minimum: 0.025281788561070752 > 0.02528178856106982
WOLFE (weak): th(5.1706432560765214E-14)=0.02528178856106982; dx=-1.000400839461994 evalInputDelta=1.231653667943533E-15
New Minimum: 0.02528178856106982 > 0.025281788561064934
WOLFE (weak): th(2.5853216280382605E-13)=0.025281788561064934; dx=-1.0004008394619937 evalInputDelta=6.116634976294222E-15
New Minimum: 0.025281788561064934 > 0.025281788561034347
WOLFE (weak): th(1.5511929768229563E-12)=0.025281788561034347; dx=-1.00040083946199 evalInputDelta=3.6703279304717285E-14
New Minimum: 0.025281788561034347 > 0.025281788560814106
WOLFE (weak): th(1.0858350837760695E-11)=0.025281788560814106; dx=-1.0004008394619652 evalInputDelta=2.569437718147327E-13
New Minimum: 0.025281788560814106 > 0.025281788559015472
WOLFE (weak): th(8.686680670208556E-11)=0.025281788559015472; dx=-1.0004008394617625 evalInputDelta=2.0555779300934773E-12
New Minimum: 0.025281788559015472 > 0.025281788542570856
WOLFE (weak): th(7.8180126031877E-10)=0.025281788542570856; dx=-1.0004008394599087 evalInputDelta=1.8500194431947392E-11
New Minimum: 0.025281788542570856 > 0.025281788376069047
WOLFE (weak): th(7.818012603187701E-9)=0.025281788376069047; dx=-1.0004008394411383 evalInputDelta=1.850020033000721E-10
New Minimum: 0.025281788376069047 > 0.025281786526049
WOLFE (weak): th(8.599813863506471E-8)=0.025281786526049; dx=-1.0004008392325796 evalInputDelta=2.035022050178581E-9
New Minimum: 0.025281786526049 > 0.02528176414080765
WOLFE (weak): th(1.0319776636207765E-6)=0.02528176414080765; dx=-1.0004008367090198 evalInputDelta=2.4420263401714326E-8
New Minimum: 0.02528176414080765 > 0.025281471097868637
WOLFE (weak): th(1.3415709627070094E-5)=0.025281471097868637; dx=-1.000400803673376 evalInputDelta=3.174632024136037E-7
New Minimum: 0.025281471097868637 > 0.02527734411992837
WOLFE (weak): th(1.878199347789813E-4)=0.02527734411992837; dx=-1.000400338431366 evalInputDelta=4.444441142680694E-6
New Minimum: 0.02527734411992837 > 0.025215131822744485
WOLFE (weak): th(0.0028172990216847197)=0.025215131822744485; dx=-1.0003933262694475 evalInputDelta=6.665673832656482E-5
New Minimum: 0.025215131822744485 > 0.02421781232522625
WOLFE (weak): th(0.045076784346955515)=0.02421781232522625; dx=-1.0002812082914072 evalInputDelta=0.0010639762358447998
New Minimum: 0.02421781232522625 > 0.009646549513559297
WOLFE (weak): th(0.7663053338982437)=0.009646549513559297; dx=-0.9987090836183286 evalInputDelta=0.015635239047511754
New Minimum: 0.009646549513559297 > 0.0023365412130451216
WOLFE (weak): th(13.793496010168386)=0.0023365412130451216; dx=-0.9985237927338932 evalInputDelta=0.02294524734802593
New Minimum: 0.0023365412130451216 > 0.0
WOLFE (weak): th(262.07642419319933)=0.0; dx=-0.9984765615865271 evalInputDelta=0.02528178856107105
WOLFE (weak): th(5241.528483863986)=0.0; dx=-0.9984765615865271 evalInputDelta=0.02528178856107105
Armijo: th(110072.09816114372)=0.0; dx=-0.9984765615865271 evalInputDelta=0.02528178856107105
Armijo: th(57656.813322503855)=0.0; dx=-0.9984765615865271 evalInputDelta=0.02528178856107105
Armijo: th(31449.17090318392)=0.0; dx=-0.9984765615865271 evalInputDelta=0.02528178856107105
WOLFE (weak): th(18345.349693523953)=0.0; dx=-0.9984765615865271 evalInputDelta=0.02528178856107105
WOLFE (weak): th(24897.260298353936)=0.0; dx=-0.9984765615865271 evalInputDelta=0.02528178856107105
Armijo: th(28173.215600768926)=0.0; dx=-0.9984765615865271 evalInputDelta=0.02528178856107105
Armijo: th(26535.23794956143)=0.0; dx=-0.9984765615865271 evalInputDelta=0.02528178856107105
Armijo: th(25716.249123957685)=0.0; dx=-0.9984765615865271 evalInputDelta=0.02528178856107105
Armijo: th(25306.75471115581)=0.0; dx=-0.9984765615865271 evalInputDelta=0.02528178856107105
WOLFE (weak): th(25102.007504754874)=0.0; dx=-0.9984765615865271 evalInputDelta=0.02528178856107105
mu ~= nu (25102.007504754874): th(262.07642419319933)=0.0
Fitness changed from 0.02528178856107105 to 0.0
Iteration 2 complete. Error: 0.0 Total: 0.1935; Orientation: 0.0013; Line Search: 0.1881
th(0)=0.0;dx=-0.99676672
Armijo: th(54301.19299976323)=0.0; dx=-0.99676672 evalInputDelta=0.0
Armijo: th(27150.596499881616)=0.0; dx=-0.99676672 evalInputDelta=0.0
Armijo: th(9050.198833293873)=0.0; dx=-0.99676672 evalInputDelta=0.0
Armijo: th(2262.549708323468)=0.0; dx=-0.99676672 evalInputDelta=0.0
Armijo: th(452.50994166469366)=0.0; dx=-0.99676672 evalInputDelta=0.0
Armijo: th(75.41832361078228)=0.0; dx=-0.9967667200000001 evalInputDelta=0.0
Armijo: th(10.774046230111754)=0.0; dx=-0.99676672 evalInputDelta=0.0
Armijo: th(1.3467557787639692)=0.0; dx=-0.99676672 evalInputDelta=0.0
Armijo: th(0.14963953097377436)=0.0; dx=-0.99676672 evalInputDelta=0.0
Armijo: th(0.014963953097377436)=0.0; dx=-0.99676672 evalInputDelta=0.0
Armijo: th(0.001360359372488858)=0.0; dx=-0.99676672 evalInputDelta=0.0
Armijo: th(1.1336328104073816E-4)=0.0; dx=-0.99676672 evalInputDelta=0.0
Armijo: th(8.720252387749088E-6)=0.0; dx=-0.99676672 evalInputDelta=0.0
Armijo: th(6.228751705535063E-7)=0.0; dx=-0.99676672 evalInputDelta=0.0
Armijo: th(4.152501137023376E-8)=0.0; dx=-0.99676672 evalInputDelta=0.0
Armijo: th(2.59531321063961E-9)=0.0; dx=-0.99676672 evalInputDelta=0.0
Armijo: th(1.5266548297880059E-10)=0.0; dx=-0.9967667200000001 evalInputDelta=0.0
Armijo: th(8.481415721044477E-12)=0.0; dx=-0.9967667200000001 evalInputDelta=0.0
Armijo: th(4.463903011076041E-13)=0.0; dx=-0.99676672 evalInputDelta=0.0
Armijo: th(2.2319515055380205E-14)=0.0; dx=-0.9967667200000001 evalInputDelta=0.0
Armijo: th(1.0628340502562003E-15)=0.0; dx=-0.99676672 evalInputDelta=0.0
MIN ALPHA (4.831063864800911E-17): th(0.0)=0.0
Fitness changed from 0.0 to 0.0
Static Iteration Total: 0.0966; Orientation: 0.0010; Line Search: 0.0933
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 0.461s (< 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 0.26 seconds (0.000 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: 833488928724
Reset training subject: 833491952117
Constructing line search parameters: GD
F(0.0) = LineSearchPoint{point=PointSample{avg=45.461817419069234}, derivative=-4.3016192E23}
New Minimum: 45.461817419069234 > 3.8163423833609853
F(1.0E-10) = LineSearchPoint{point=PointSample{avg=3.8163423833609853}, derivative=-2.5600000042990594E20}, evalInputDelta = -41.64547503570825
New Minimum: 3.8163423833609853 > 3.374245986821679
F(7.000000000000001E-10) = LineSearchPoint{point=PointSample{avg=3.374245986821679}, derivative=-4.301619200978758E11}, evalInputDelta = -42.08757143224756
New Minimum: 3.374245986821679 > 3.3742455760306513
F(4.900000000000001E-9) = LineSearchPoint{point=PointSample{avg=3.3742455760306513}, derivative=-4.3016192009787573E11}, evalInputDelta = -42.08757184303858
New Minimum: 3.3742455760306513 > 3.374242700499277
F(3.430000000000001E-8) = LineSearchPoint{point=PointSample{avg=3.374242700499277}, derivative=-4.301619200978754E11}, evalInputDelta = -42.087574718569954
New Minimum: 3.374242700499277 > 3.3742225720650345
F(2.4010000000000004E-7) = LineSearchPoint{point=PointSample{avg=3.3742225720650345}, derivative=-4.30161920097873E11}, evalInputDelta = -42.0875948470042
New Minimum: 3.3742225720650345 > 3.3740816870063894
F(1.6807000000000003E-6) = LineSearchPoint{point=PointSample{avg=3.3740816870063894}, derivative=-4.30161920097856E11}, evalInputDelta = -42.087735732062846
New Minimum: 3.3740816870063894 > 3.3730961759462703
F(1.1764900000000001E-5) = LineSearchPoint{point=PointSample{avg=3.3730961759462703}, derivative=-4.301619200977373E11}, evalInputDelta = -42.08872124312296
New Minimum: 3.3730961759462703 > 3.366230886418421
F(8.235430000000001E-5) = LineSearchPoint{point=PointSample{avg=3.366230886418421}, derivative=-4.301619200969154E11}, evalInputDelta = -42.09558653265081
New Minimum: 3.366230886418421 > 3.3197256674464213
F(5.764801000000001E-4) = LineSearchPoint{point=PointSample{avg=3.3197256674464213}, derivative=-4.301619200915667E11}, evalInputDelta = -42.142091751622814
New Minimum: 3.3197256674464213 > 3.0509777264416083
F(0.004035360700000001) = LineSearchPoint{point=PointSample{avg=3.0509777264416083}, derivative=-4.301619200668241E11}, evalInputDelta = -42.410839692627626
New Minimum: 3.0509777264416083 > 2.1136008063297007
F(0.028247524900000005) = LineSearchPoint{point=PointSample{avg=2.1136008063297007}, derivative=-4.301619200249386E11}, evalInputDelta = -43.348216612739535
New Minimum: 2.1136008063297007 > 0.5511704520833584
F(0.19773267430000002) = LineSearchPoint{point=PointSample{avg=0.5511704520833584}, derivative=-4.301619200062556E11}, evalInputDelta = -44.91064696698587
New Minimum: 0.5511704520833584 > 0.06814743951637617
F(1.3841287201) = LineSearchPoint{point=PointSample{avg=0.06814743951637617}, derivative=-4.3016192000544275E11}, evalInputDelta = -45.39366997955286
New Minimum: 0.06814743951637617 > 0.003652693919892109
F(9.688901040700001) = LineSearchPoint{point=PointSample{avg=0.003652693919892109}, derivative=-4.301619200054259E11}, evalInputDelta = -45.458164725149345
New Minimum: 0.003652693919892109 > 0.0
F(67.8223072849) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-4.301619200054258E11}, evalInputDelta = -45.461817419069234
F(474.7561509943) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-4.301619200054258E11}, evalInputDelta = -45.461817419069234
F(3323.2930569601003) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-4.301619200054258E11}, evalInputDelta = -45.461817419069234
F(23263.0513987207) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-4.301619200054258E11}, evalInputDelta = -45.461817419069234
F(162841.3597910449) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-4.301619200054258E11}, evalInputDelta = -45.461817419069234
F(1139889.5185373144) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-4.301619200054258E11}, evalInputDelta = -45.461817419069234
F(7979226.6297612) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-4.301619200054258E11}, evalInputDelta = -45.461817419069234
F(5.58545864083284E7) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-4.301619200054258E11}, evalInputDelta = -45.461817419069234
F(3.909821048582988E8) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-4.301619200054258E11}, evalInputDelta = -45.461817419069234
F(2.7368747340080914E9) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-4.301619200054258E11}, evalInputDelta = -45.461817419069234
F(1.915812313805664E10) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-4.301619200054258E11}, evalInputDelta = -45.461817419069234
0.0 <= 45.461817419069234
F(1.0E10) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-4.301619200054258E11}, evalInputDelta = -45.461817419069234
Right bracket at 1.0E10
Converged to right
Fitness changed from 45.461817419069234 to 0.0
Iteration 1 complete. Error: 0.0 Total: 0.1471; Orientation: 0.0019; Line Search: 0.1363
F(0.0) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-0.99676672}
F(1.0E10) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-0.99676672}, evalInputDelta = 0.0
0.0 <= 0.0
F(5.0E9) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-0.99676672}, evalInputDelta = 0.0
Right bracket at 5.0E9
F(2.5E9) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-0.9967667200000001}, evalInputDelta = 0.0
Right bracket at 2.5E9
F(5.0E9) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-0.99676672}, evalInputDelta = 0.0
Right bracket at 5.0E9
F(2.5E9) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-0.9967667200000001}, evalInputDelta = 0.0
Right bracket at 2.5E9
F(5.0E9) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-0.99676672}, evalInputDelta = 0.0
Right bracket at 5.0E9
F(2.5E9) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-0.99676672}, evalInputDelta = 0.0
Right bracket at 2.5E9
F(1.25E9) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-0.99676672}, evalInputDelta = 0.0
Right bracket at 1.25E9
F(6.25E8) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-0.99676672}, evalInputDelta = 0.0
Right bracket at 6.25E8
F(3.125E8) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-0.99676672}, evalInputDelta = 0.0
Right bracket at 3.125E8
F(1.5625E8) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-0.99676672}, evalInputDelta = 0.0
Right bracket at 1.5625E8
F(7.8125E7) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-0.99676672}, evalInputDelta = 0.0
Right bracket at 7.8125E7
F(3.90625E7) = LineSearchPoint{point=PointSample{avg=0.0}, derivative=-0.9967667200000001}, evalInputDelta = 0.0
Loops = 12
Fitness changed from 0.0 to 0.0
Static Iteration Total: 0.1091; Orientation: 0.0006; Line Search: 0.1072
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 0.257s (< 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 2.59 seconds (0.000 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: 833750373029
Reset training subject: 833751819519
Adding measurement 21bca81f to history. Total: 0
LBFGS Accumulation History: 1 points
Constructing line search parameters: GD
Non-optimal measurement 45.461817419069234 < 45.461817419069234. Total: 1
th(0)=45.461817419069234;dx=-4.3016192E23
Adding measurement 43bfd423 to history. Total: 1
New Minimum: 45.461817419069234 > 0.02528178856107105
Armijo: th(2.154434690031884)=0.02528178856107105; dx=-4.301619200054307E11 evalInputDelta=45.43653563050816
Non-optimal measurement 0.08826339085026516 < 0.02528178856107105. Total: 2
Armijo: th(1.077217345015942)=0.08826339085026516; dx=-4.301619200054498E11 evalInputDelta=45.37355402821897
Non-optimal measurement 0.29371142717017495 < 0.02528178856107105. Total: 2
Armijo: th(0.3590724483386473)=0.29371142717017495; dx=-4.301619200055807E11 evalInputDelta=45.16810599189906
Non-optimal measurement 1.1713023421956894 < 0.02528178856107105. Total: 2
Armijo: th(0.08976811208466183)=1.1713023421956894; dx=-4.3016192001028546E11 evalInputDelta=44.29051507687355
Non-optimal measurement 2.4093908303331144 < 0.02528178856107105. Total: 2
Armijo: th(0.017953622416932366)=2.4093908303331144; dx=-4.301619200335697E11 evalInputDelta=43.05242658873612
Non-optimal measurement 3.123536626593542 < 0.02528178856107105. Total: 2
Armijo: th(0.002992270402822061)=3.123536626593542; dx=-4.3016192007261145E11 evalInputDelta=42.33828079247569
Non-optimal measurement 3.3334743109214218 < 0.02528178856107105. Total: 2
Armijo: th(4.2746720040315154E-4)=3.3334743109214218; dx=-4.3016192009310925E11 evalInputDelta=42.12834310814781
Non-optimal measurement 3.369036624929521 < 0.02528178856107105. Total: 2
Armijo: th(5.343340005039394E-5)=3.369036624929521; dx=-4.3016192009725024E11 evalInputDelta=42.09278079413971
Non-optimal measurement 3.3736655759874985 < 0.02528178856107105. Total: 2
Armijo: th(5.9370444500437714E-6)=3.3736655759874985; dx=-4.3016192009780585E11 evalInputDelta=42.08815184308173
Non-optimal measurement 3.3741879886645014 < 0.02528178856107105. Total: 2
Armijo: th(5.937044450043771E-7)=3.3741879886645014; dx=-4.3016192009786884E11 evalInputDelta=42.08762943040473
Non-optimal measurement 3.3742407763312805 < 0.02528178856107105. Total: 2
Armijo: th(5.397313136403428E-8)=3.3742407763312805; dx=-4.301619200978752E11 evalInputDelta=42.08757664273796
Non-optimal measurement 3.3742456153725926 < 0.02528178856107105. Total: 2
Armijo: th(4.4977609470028565E-9)=3.3742456153725926; dx=-4.3016192009787573E11 evalInputDelta=42.08757180369664
Non-optimal measurement 3.374246021447302 < 0.02528178856107105. Total: 2
Armijo: th(3.4598161130791205E-10)=3.374246021447302; dx=-4.301619200978758E11 evalInputDelta=42.08757139762193
Non-optimal measurement 3.8684581313172943 < 0.02528178856107105. Total: 2
Armijo: th(2.4712972236279432E-11)=3.8684581313172943; dx=-2.5600000043421883E20 evalInputDelta=41.59335928775194
Non-optimal measurement 24.614339223391447 < 0.02528178856107105. Total: 2
Armijo: th(1.6475314824186289E-12)=24.614339223391447; dx=-1.9319104000107023E23 evalInputDelta=20.847478195677787
Non-optimal measurement 45.46181741905916 < 0.02528178856107105. Total: 2
Armijo: th(1.029707176511643E-13)=45.46181741905916; dx=-4.3016192E23 evalInputDelta=1.007549599307822E-11
Non-optimal measurement 45.461817419068645 < 0.02528178856107105. Total: 2
Armijo: th(6.057101038303783E-15)=45.461817419068645; dx=-4.3016192E23 evalInputDelta=5.897504706808832E-13
Non-optimal measurement 0.02528178856107105 < 0.02528178856107105. Total: 2
MIN ALPHA (3.3650561323909904E-16): th(2.154434690031884)=0.02528178856107105
Fitness changed from 45.461817419069234 to 0.02528178856107105
Iteration 1 complete. Error: 0.02528178856107105 Total: 0.0805; Orientation: 0.0036; Line Search: 0.0727
Non-optimal measurement 0.02528178856107105 < 0.02528178856107105. Total: 2
LBFGS Accumulation History: 2 points
Non-optimal measurement 0.02528178856107105 < 0.02528178856107105. Total: 2
th(0)=0.02528178856107105;dx=-1.0004008394619943
Adding measurement 3602ab9f to history. Total: 2
New Minimum: 0.02528178856107105 > 0.025281788561071
WOLFE (weak): th(2.154434690031884E-15)=0.025281788561071; dx=-1.0004008394619943 evalInputDelta=4.85722573273506E-17
Adding measurement 3e6880ef to history. Total: 3
New Minimum: 0.025281788561071 > 0.02528178856107095
WOLFE (weak): th(4.308869380063768E-15)=0.02528178856107095; dx=-1.0004008394619943 evalInputDelta=1.0061396160665481E-16
Adding measurement 6ddaa0e7 to history. Total: 4
New Minimum: 0.02528178856107095 > 0.025281788561070752
WOLFE (weak): th(1.2926608140191303E-14)=0.025281788561070752; dx=-1.0004008394619943 evalInputDelta=2.983724378680108E-16
Adding measurement 755f47be to history. Total: 5
New Minimum: 0.025281788561070752 > 0.02528178856106982
WOLFE (weak): th(5.1706432560765214E-14)=0.02528178856106982; dx=-1.000400839461994 evalInputDelta=1.231653667943533E-15
Adding measurement 7c190f40 to history. Total: 6
New Minimum: 0.02528178856106982 > 0.025281788561064934
WOLFE (weak): th(2.5853216280382605E-13)=0.025281788561064934; dx=-1.0004008394619937 evalInputDelta=6.116634976294222E-15
Adding measurement 557a893b to history. Total: 7
New Minimum: 0.025281788561064934 > 0.025281788561034347
WOLFE (weak): th(1.5511929768229563E-12)=0.025281788561034347; dx=-1.00040083946199 evalInputDelta=3.6703279304717285E-14
Adding measurement 6354d270 to history. Total: 8
New Minimum: 0.025281788561034347 > 0.025281788560814106
WOLFE (weak): th(1.0858350837760695E-11)=0.025281788560814106; dx=-1.0004008394619652 evalInputDelta=2.569437718147327E-13
Adding measurement 5792746 to history. Total: 9
New Minimum: 0.025281788560814106 > 0.025281788559015472
WOLFE (weak): th(8.686680670208556E-11)=0.025281788559015472; dx=-1.0004008394617625 evalInputDelta=2.0555779300934773E-12
Adding measurement 5c02c4a3 to history. Total: 10
New Minimum: 0.025281788559015472 > 0.025281788542570856
WOLFE (weak): th(7.8180126031877E-10)=0.025281788542570856; dx=-1.0004008394599087 evalInputDelta=1.8500194431947392E-11
Adding measurement 5a13bb72 to history. Total: 11
New Minimum: 0.025281788542570856 > 0.025281788376069047
WOLFE (weak): th(7.818012603187701E-9)=0.025281788376069047; dx=-1.0004008394411383 evalInputDelta=1.850020033000721E-10
Adding measurement 5f3cb2f2 to history. Total: 12
New Minimum: 0.025281788376069047 > 0.025281786526049
WOLFE (weak): th(8.599813863506471E-8)=0.025281786526049; dx=-1.0004008392325796 evalInputDelta=2.035022050178581E-9
Adding measurement 5e278bff to history. Total: 13
New Minimum: 0.025281786526049 > 0.02528176414080765
WOLFE (weak): th(1.0319776636207765E-6)=0.02528176414080765; dx=-1.0004008367090198 evalInputDelta=2.4420263401714326E-8
Adding measurement 47aaec1d to history. Total: 14
New Minimum: 0.02528176414080765 > 0.025281471097868637
WOLFE (weak): th(1.3415709627070094E-5)=0.025281471097868637; dx=-1.000400803673376 evalInputDelta=3.174632024136037E-7
Adding measurement 766dc615 to history. Total: 15
New Minimum: 0.025281471097868637 > 0.02527734411992837
WOLFE (weak): th(1.878199347789813E-4)=0.02527734411992837; dx=-1.000400338431366 evalInputDelta=4.444441142680694E-6
Adding measurement 3f8a2bfb to history. Total: 16
New Minimum: 0.02527734411992837 > 0.025215131822744485
WOLFE (weak): th(0.0028172990216847197)=0.025215131822744485; dx=-1.0003933262694473 evalInputDelta=6.665673832656482E-5
Adding measurement 4c8bce59 to history. Total: 17
New Minimum: 0.025215131822744485 > 0.02421781232522625
WOLFE (weak): th(0.045076784346955515)=0.02421781232522625; dx=-1.0002812082914072 evalInputDelta=0.0010639762358447998
Adding measurement 35c46250 to history. Total: 18
New Minimum: 0.02421781232522625 > 0.009646549513559297
WOLFE (weak): th(0.7663053338982437)=0.009646549513559297; dx=-0.9987090836183286 evalInputDelta=0.015635239047511754
Adding measurement 267d4374 to history. Total: 19
New Minimum: 0.009646549513559297 > 0.0023365412130451216
WOLFE (weak): th(13.793496010168386)=0.0023365412130451216; dx=-0.9985237927338932 evalInputDelta=0.02294524734802593
Adding measurement 4493c72a to history. Total: 20
New Minimu

...skipping 9592 bytes...

863f00865 = 1.000/1.000e+00, 05ab3c8f-e894-447a-affc-4cf6eac171b1 = 1.000/1.000e+00, 879aaa00-3031-4700-b1b9-bc50cd3886d2 = 1.000/1.000e+00, 91d0025e-9c9b-4347-9b53-20554d490bab = 1.000/1.000e+00, 107505bb-7767-47c7-8cf0-5538a16cf360 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.0, 0.0023365412130451216, 0.009646549513559297, 0.02421781232522625, 0.025215131822744485, 0.02527734411992837, 0.025281471097868637, 0.02528176414080765, 0.025281786526049, 0.025281788376069047, 0.025281788542570856
Rejected: LBFGS Orientation magnitude: 6.605e+02, gradient 9.984e-01, dot -0.960; [879aaa00-3031-4700-b1b9-bc50cd3886d2 = 1.000/1.000e+00, 107505bb-7767-47c7-8cf0-5538a16cf360 = 1.000/1.000e+00, 54e9b22f-6377-48fd-a8df-998863f00865 = 1.000/1.000e+00, 91d0025e-9c9b-4347-9b53-20554d490bab = 1.000/1.000e+00, 05ab3c8f-e894-447a-affc-4cf6eac171b1 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.0, 0.0023365412130451216, 0.009646549513559297, 0.02421781232522625, 0.025215131822744485, 0.02527734411992837, 0.025281471097868637, 0.02528176414080765, 0.025281786526049, 0.025281788376069047
Rejected: LBFGS Orientation magnitude: 6.605e+02, gradient 9.984e-01, dot -0.960; [107505bb-7767-47c7-8cf0-5538a16cf360 = 1.000/1.000e+00, 91d0025e-9c9b-4347-9b53-20554d490bab = 1.000/1.000e+00, 54e9b22f-6377-48fd-a8df-998863f00865 = 1.000/1.000e+00, 05ab3c8f-e894-447a-affc-4cf6eac171b1 = 1.000/1.000e+00, 879aaa00-3031-4700-b1b9-bc50cd3886d2 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.0, 0.0023365412130451216, 0.009646549513559297, 0.02421781232522625, 0.025215131822744485, 0.02527734411992837, 0.025281471097868637, 0.02528176414080765, 0.025281786526049
Rejected: LBFGS Orientation magnitude: 6.605e+02, gradient 9.984e-01, dot -0.960; [107505bb-7767-47c7-8cf0-5538a16cf360 = 1.000/1.000e+00, 05ab3c8f-e894-447a-affc-4cf6eac171b1 = 1.000/1.000e+00, 91d0025e-9c9b-4347-9b53-20554d490bab = 1.000/1.000e+00, 879aaa00-3031-4700-b1b9-bc50cd3886d2 = 1.000/1.000e+00, 54e9b22f-6377-48fd-a8df-998863f00865 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.0, 0.0023365412130451216, 0.009646549513559297, 0.02421781232522625, 0.025215131822744485, 0.02527734411992837, 0.025281471097868637, 0.02528176414080765
Rejected: LBFGS Orientation magnitude: 9.391e+02, gradient 9.984e-01, dot -0.946; [91d0025e-9c9b-4347-9b53-20554d490bab = 1.000/1.000e+00, 879aaa00-3031-4700-b1b9-bc50cd3886d2 = 1.000/1.000e+00, 05ab3c8f-e894-447a-affc-4cf6eac171b1 = 1.000/1.000e+00, 107505bb-7767-47c7-8cf0-5538a16cf360 = 1.000/1.000e+00, 54e9b22f-6377-48fd-a8df-998863f00865 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.0, 0.0023365412130451216, 0.009646549513559297, 0.02421781232522625, 0.025215131822744485, 0.02527734411992837, 0.025281471097868637
Rejected: LBFGS Orientation magnitude: 7.311e+02, gradient 9.984e-01, dot -0.998; [54e9b22f-6377-48fd-a8df-998863f00865 = 1.000/1.000e+00, 05ab3c8f-e894-447a-affc-4cf6eac171b1 = 1.000/1.000e+00, 879aaa00-3031-4700-b1b9-bc50cd3886d2 = 1.000/1.000e+00, 107505bb-7767-47c7-8cf0-5538a16cf360 = 1.000/1.000e+00, 91d0025e-9c9b-4347-9b53-20554d490bab = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.0, 0.0023365412130451216, 0.009646549513559297, 0.02421781232522625, 0.025215131822744485, 0.02527734411992837
Rejected: LBFGS Orientation magnitude: 7.470e+02, gradient 9.984e-01, dot -0.998; [107505bb-7767-47c7-8cf0-5538a16cf360 = 1.000/1.000e+00, 91d0025e-9c9b-4347-9b53-20554d490bab = 1.000/1.000e+00, 54e9b22f-6377-48fd-a8df-998863f00865 = 1.000/1.000e+00, 05ab3c8f-e894-447a-affc-4cf6eac171b1 = 1.000/1.000e+00, 879aaa00-3031-4700-b1b9-bc50cd3886d2 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.0, 0.0023365412130451216, 0.009646549513559297, 0.02421781232522625, 0.025215131822744485
Rejected: LBFGS Orientation magnitude: 9.091e+02, gradient 9.984e-01, dot -0.998; [05ab3c8f-e894-447a-affc-4cf6eac171b1 = 1.000/1.000e+00, 879aaa00-3031-4700-b1b9-bc50cd3886d2 = 1.000/1.000e+00, 91d0025e-9c9b-4347-9b53-20554d490bab = 1.000/1.000e+00, 107505bb-7767-47c7-8cf0-5538a16cf360 = 1.000/1.000e+00, 54e9b22f-6377-48fd-a8df-998863f00865 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.0, 0.0023365412130451216, 0.009646549513559297, 0.02421781232522625
LBFGS Accumulation History: 3 points
Removed measurement 4493c72a to history. Total: 20
Removed measurement 267d4374 to history. Total: 19
Removed measurement 35c46250 to history. Total: 18
Removed measurement 4c8bce59 to history. Total: 17
Removed measurement 3f8a2bfb to history. Total: 16
Removed measurement 766dc615 to history. Total: 15
Removed measurement 47aaec1d to history. Total: 14
Removed measurement 5e278bff to history. Total: 13
Removed measurement 5f3cb2f2 to history. Total: 12
Removed measurement 5a13bb72 to history. Total: 11
Removed measurement 5c02c4a3 to history. Total: 10
Removed measurement 5792746 to history. Total: 9
Removed measurement 6354d270 to history. Total: 8
Removed measurement 557a893b to history. Total: 7
Removed measurement 7c190f40 to history. Total: 6
Removed measurement 755f47be to history. Total: 5
Removed measurement 6ddaa0e7 to history. Total: 4
Removed measurement 3e6880ef to history. Total: 3
Adding measurement 1cd119a8 to history. Total: 3
th(0)=0.0;dx=-0.99676672
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(54301.19299976323)=0.0; dx=-0.9967667200000001 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(27150.596499881616)=0.0; dx=-0.99676672 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(9050.198833293873)=0.0; dx=-0.99676672 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(2262.549708323468)=0.0; dx=-0.9967667200000001 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(452.50994166469366)=0.0; dx=-0.99676672 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(75.41832361078228)=0.0; dx=-0.9967667200000001 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(10.774046230111754)=0.0; dx=-0.99676672 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(1.3467557787639692)=0.0; dx=-0.9967667200000001 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(0.14963953097377436)=0.0; dx=-0.99676672 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(0.014963953097377436)=0.0; dx=-0.99676672 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(0.001360359372488858)=0.0; dx=-0.99676672 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(1.1336328104073816E-4)=0.0; dx=-0.99676672 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(8.720252387749088E-6)=0.0; dx=-0.99676672 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(6.228751705535063E-7)=0.0; dx=-0.99676672 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(4.152501137023376E-8)=0.0; dx=-0.99676672 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(2.59531321063961E-9)=0.0; dx=-0.9967667200000001 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(1.5266548297880059E-10)=0.0; dx=-0.99676672 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(8.481415721044477E-12)=0.0; dx=-0.99676672 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(4.463903011076041E-13)=0.0; dx=-0.99676672 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(2.2319515055380205E-14)=0.0; dx=-0.99676672 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
Armijo: th(1.0628340502562003E-15)=0.0; dx=-0.99676672 evalInputDelta=0.0
Non-optimal measurement 0.0 < 0.0. Total: 4
MIN ALPHA (4.831063864800911E-17): th(0.0)=0.0
Fitness changed from 0.0 to 0.0
Static Iteration Total: 2.4266; Orientation: 2.3355; Line Search: 0.0895
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.590s (< 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, -2.597192205123552], [2.0, -0.5971922051235521]; valueStats=DoubleSummaryStatistics{count=2, sum=0.050564, min=0.025282, average=0.025282, max=0.025282}
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, -2.597192205123552], [0.193, -0.5971922051235521]; valueStats=DoubleSummaryStatistics{count=2, sum=0.050564, min=0.025282, average=0.025282, max=0.025282}
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": "4.133",
      "gc_time": "0.409"
    },
    "created_on": 1586735420819,
    "file_name": "trainingTest",
    "report": {
      "simpleName": "Basic",
      "canonicalName": "com.simiacryptus.mindseye.layers.java.ImgBandSelectLayerTest.Basic",
      "link": "https://github.com/SimiaCryptus/mindseye-java/tree/93db34cedee48c0202777a2b25deddf1dfaf5731/src/test/java/com/simiacryptus/mindseye/layers/java/ImgBandSelectLayerTest.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/ImgBandSelectLayer/Basic/trainingTest/202004125020",
    "id": "20ef2d0a-7080-4f39-a34c-1f897fab75f8",
    "report_type": "Components",
    "display_name": "Comparative Training",
    "target": {
      "simpleName": "ImgBandSelectLayer",
      "canonicalName": "com.simiacryptus.mindseye.layers.java.ImgBandSelectLayer",
      "link": "https://github.com/SimiaCryptus/mindseye-java/tree/93db34cedee48c0202777a2b25deddf1dfaf5731/src/main/java/com/simiacryptus/mindseye/layers/java/ImgBandSelectLayer.java",
      "javaDoc": ""
    }
  }