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 6876446815735105536

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.03 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.04526736803588083 ], [ 0.015054098972616448 ], [ 0.06724312134945021 ], [ -0.9756578922882067 ], [ -0.8946870819003689 ], [ 0.11472801405393684 ], [ -0.22840378016358187 ], [ -0.7807789569661503 ], ... ],
    	[ [ -0.6444463715068853 ], [ 0.5548179711305634 ], [ 0.47169235987721314 ], [ -0.5986317792409988 ], [ -0.4483795557657846 ], [ 0.7937950573106021 ], [ -0.6408734746827005 ], [ -0.014183263223845 ], ... ],
    	[ [ -0.30464491840592767 ], [ -0.3067171227987884 ], [ 0.5175828964915155 ], [ -0.27432337850762956 ], [ -0.23439377400618677 ], [ -0.2670396819951528 ], [ 0.43135974867128457 ], [ -0.28687261887955007 ], ... ],
    	[ [ 0.2791247440630462 ], [ 0.48363999020750326 ], [ 0.9476194991018134 ], [ -0.7573987868034573 ], [ -0.7313858243424518 ], [ -0.16398391545278512 ], [ -0.7645851253186207 ], [ 0.4973971253806573 ], ... ],
    	[ [ -0.6150471499794266 ], [ 0.8933937100400924 ], [ -0.11650495398883698 ], [ 0.9915288782798257 ], [ 0.82577835345642 ], [ -0.062225886134023245 ], [ -0.9604959659671077 ], [ -0.44642803314826685 ], ... ],
    	[ [ 0.06783345732698964 ], [ 0.9953954877011011 ], [ -0.2906294262286946 ], [ -0.4823692583489283 ], [ 0.14948362243674618 ], [ -0.5246184798540472 ], [ 0.7462396290810598 ], [ -0.8590005735214927 ], ... ],
    	[ [ 0.7979645640026376 ], [ 0.48248241134717573 ], [ -0.2675056190966223 ], [ 0.4736566543457781 ], [ -0.012001642660176559 ], [ -0.6866490765275373 ], [ -0.5980347805233319 ], [ -0.2487321717627442 ], ... ],
    	[ [ -0.07792143586381184 ], [ 0.3172188095739845 ], [ -0.5072507709813261 ], [ -0.3412397754121357 ], [ -0.041595354925765715 ], [ -0.6778018774492129 ], [ -0.4424649470081299 ], [ 0.6895956117905255 ], ... ],
    	...
    ]
    [
    	[ [ -0.7353562017565736 ], [ -0.44630274395978287 ], [ 0.9608558696570999 ], [ 0.2678558285554462 ], [ 0.7587700700799391 ], [ 0.18604706283742067 ], [ -0.35664932329898447 ], [ 0.5474110760372204 ], ... ],
    	[ [ -0.73987078500099 ], [ -0.6295175246483824 ], [ 0.6268604888469331 ], [ -0.6844384853448588 ], [ -0.4129790826325148 ], [ -0.6758840144617684 ], [ 0.6357320128703343 ], [ 0.8638343553276089 ], ... ],
    	[ [ 0.3463880726609143 ], [ 0.1778644898556947 ], [ -0.12519913584539077 ], [ -0.9086836403371559 ], [ 0.762449653876873 ], [ -0.48857770213073115 ], [ 0.3782838172466054 ], [ 0.04187578611817622 ], ... ],
    	[ [ 0.9775383251195857 ], [ -0.6071446996776073 ], [ 0.9530228799888278 ], [ -0.3996638650365827 ], [ -0.7473656302857934 ], [ -0.46617255963881 ], [ -0.011154720404294105 ], [ 0.9925431901345518 ], ... ],
    	[ [ -0.05675946725226755 ], [ 0.5751814005221225 ], [ 0.2059117318890149 ], [ 0.08627778914097006 ], [ 0.33539086410964725 ], [ -0.8312320253254513 ], [ -0.8870748097121384 ], [ 0.613710044055467 ], ... ],
    	[ [ 0.3912630973245288 ], [ 0.4443287030154519 ], [ -0.7652147637410798 ], [ -0.6672147213336388 ], [ -0.2536413166828939 ], [ -0.7081141163074838 ], [ 0.8594250928284553 ], [ -0.005659571918467554 ], ... ],
    	[ [ 0.954905562712175 ], [ -0.30186544773200774 ], [ -0.6513396834612324 ], [ -0.8932113949477472 ], [ 0.8460185108659426 ], [ 0.799771952499672 ], [ 0.03294549159317106 ], [ -0.14345081942986004 ], ... ],
    	[ [ -0.41200678947717795 ], [ -0.9416841875023663 ], [ 0.47631761041407894 ], [ -0.8349375942376693 ], [ 0.2069974902329763 ], [ -0.04695359604424154 ], [ -0.9164314685989408 ], [ 0.9951717509574545 ], ... ],
    	...
    ]
    [
    	[ [ 0.6901101511228434 ], [ -0.024854795322876377 ], [ 0.27600593433196297 ], [ -0.965220095295992 ], [ -0.7448681153335335 ], [ -0.03183257490744773 ], [ 0.9940131032412671 ], [ 0.271636386917981 ], ... ],
    	[ [ 0.4193162775715942 ], [ -0.020737807677006836 ], [ 0.30327403969644706 ], [ -0.5641446295977204 ], [ -0.33820848077409327 ], [ -0.5931893937424515 ], [ -0.7753124447078772 ], [ 0.1418483386075895 ], ... ],
    	[ [ -0.9955813835381826 ], [ -0.2903425910960251 ], [ 0.36152688904716634 ], [ 0.02815103854428136 ], [ 0.9840595247619655 ], [ -0.6531107181119797 ], [ 0.08454100329317349 ], [ 0.760038925686642 ], ... ],
    	[ [ 0.12726055360682764 ], [ 0.33536992892224493 ], [ -0.08807808335707468 ], [ -0.20561778956396637 ], [ -0.18445078115484703 ], [ -0.11156600329376332 ], [ 0.4531507843093574 ], [ 0.9031638917409435 ], ... ],
    	[ [ 0.014126784382083146 ], [ -0.953699611195302 ], [ 0.5998317400129867 ], [ 0.6020930274232776 ], [ 0.5853377305602518 ], [ 0.766472806016272 ], [ 0.38501125899436484 ], [ -0.9731944243872033 ], ... ],
    	[ [ -0.6073390100006273 ], [ -0.4302277968435888 ], [ -0.881483333333656 ], [ 0.9724409014621598 ], [ -0.9143970492810405 ], [ 0.4000990317049491 ], [ -0.13506137274273478 ], [ 0.5605268813765618 ], ... ],
    	[ [ -0.8480495241115482 ], [ 0.18344720712653362 ], [ 0.05149909855285806 ], [ -0.3019422145222044 ], [ 0.9584392641974011 ], [ -0.6042946732037806 ], [ 0.9767517184445689 ], [ -0.8063193632629562 ], ... ],
    	[ [ -0.4197960414928352 ], [ -0.006326342845514699 ], [ -0.720736524149699 ], [ 0.41786479675130606 ], [ 0.40603551569166685 ], [ 0.256799876483504 ], [ -0.8497851885136183 ], [ -0.734496787844519 ], ... ],
    	...
    ]
    [
    	[ [ -0.6999483344768616 ], [ 0.392510337682036 ], [ -0.7465934709178721 ], [ -0.10683043641789158 ], [ -0.158973526169766 ], [ -0.9508338867619504 ], [ -0.9872127284464594 ], [ 0.44886344074201445 ], ... ],
    	[ [ -0.5343326899908734 ], [ -0.46345543717461335 ], [ -0.5375766444100396 ], [ -0.15942314333361285 ], [ -0.9992982332914526 ], [ 0.9779751292995345 ], [ 0.8149849321388534 ], [ 0.8464055003127013 ], ... ],
    	[ [ -0.6795224498095045 ], [ 0.04469319804640626 ], [ 0.7479459930542156 ], [ -0.5739165190307394 ], [ -0.6603121511332475 ], [ 0.5843176509812682 ], [ -0.8884729439086367 ], [ 0.7632230542612581 ], ... ],
    	[ [ -0.9384971803016833 ], [ -0.7789653986773106 ], [ -0.7964893395888926 ], [ -0.9983503857525884 ], [ 0.4499334136505726 ], [ 0.29450448003303076 ], [ -0.4160886027196573 ], [ -0.3941381816419567 ], ... ],
    	[ [ 0.8794986560917835 ], [ -0.9176421276294557 ], [ 0.3907690961041186 ], [ -0.4716786730642357 ], [ 0.5606200273143167 ], [ -0.4535829810647498 ], [ 0.24989927789518163 ], [ 0.9620497077653178 ], ... ],
    	[ [ 0.011736437217122475 ], [ 0.8256984388922173 ], [ 0.06629220483821907 ], [ 0.006693583520146484 ], [ 0.905822881522288 ], [ 0.6442145506957102 ], [ 0.3489784212527598 ], [ -0.3050740688841951 ], ... ],
    	[ [ 0.3626877344904593 ], [ -0.8263705920940669 ], [ 0.7529749741357448 ], [ -0.5483647097344302 ], [ 0.3600640076485371 ], [ 0.2756420885039239 ], [ -0.40009604062590465 ], [ -0.7855046454867225 ], ... ],
    	[ [ 0.5978424045652317 ], [ -0.20856838710732672 ], [ -0.12801054771174436 ], [ 0.8689142976828683 ], [ 0.3924224818601463 ], [ 0.0879689903916685 ], [ 0.11958533960410844 ], [ -0.02825333871883795 ], ... ],
    	...
    ]
    [
    	[ [ -0.9322381053250401 ], [ -0.09687214219092555 ], [ 0.354581188000092 ], [ 0.29084145443711806 ], [ -0.5102178384060616 ], [ 0.044372843344307356 ], [ -0.5640797687397321 ], [ -0.31224411112870754 ], ... ],
    	[ [ 0.1875009930651499 ], [ 0.15171612714024985 ], [ 0.5255503955510328 ], [ 0.1717015706924072 ], [ -0.5151634703716961 ], [ 0.6020823627849266 ], [ -0.03392696762457503 ], [ -0.7227650709954079 ], ... ],
    	[ [ 0.06201317448453669 ], [ 0.346451583751882 ], [ 0.04227325209541721 ], [ 0.29880390498125053 ], [ 0.8189322504161032 ], [ 0.19199336540910972 ], [ -0.21099783928156102 ], [ 0.9781094338683847 ], ... ],
    	[ [ -0.634131123719869 ], [ -0.19060230490819263 ], [ -0.4431820109641791 ], [ -0.7075220375955118 ], [ -0.2305326355029942 ], [ -0.6798033293153634 ], [ -0.9720882977319936 ], [ 0.29211650429998914 ], ... ],
    	[ [ -0.5532987462463279 ], [ -0.09696206997783263 ], [ -0.7857031713369025 ], [ -0.15666110796870658 ], [ -0.007148215033726535 ], [ 0.6725639674779822 ], [ -0.8381535976037979 ], [ 0.235927177885338 ], ... ],
    	[ [ 0.034409660359426386 ], [ -0.8686752095351853 ], [ 0.09126245376841324 ], [ -0.23098977252065933 ], [ 0.669338472216884 ], [ -0.552498599858267 ], [ -0.8821756078910841 ], [ -0.7097375143796731 ], ... ],
    	[ [ -0.2870949702635388 ], [ 0.781202506216512 ], [ -0.3523470681615324 ], [ -0.04461753474759811 ], [ 0.7819017005637652 ], [ -0.1501550893936352 ], [ 0.7869358921944312 ], [ 0.9293824380182154 ], ... ],
    	[ [ -0.048909701883590895 ], [ 0.15669756951140146 ], [ -0.6437575559739845 ], [ -0.4952402192860246 ], [ -0.6089713500523162 ], [ -0.36747227242218417 ], [ 0.8597086927771482 ], [ 0.13701153638666308 ], ... ],
    	...
    ]

Gradient Descent

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

TrainingTester.java:480 executed in 0.05 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: 3154820981803
BACKPROP_AGG_SIZE = 3
THREADS = 64
SINGLE_THREADED = false
Initialized CoreSettings = {
"backpropAggregationSize" : 3,
"jvmThreads" : 64,
"singleThreaded" : false
}

Nothing to optimize
java.lang.AssertionError: Nothing to optimize
at com.simiacryptus.mindseye.opt.IterativeTrainer.measure(IterativeTrainer.java:147)
at com.simiacryptus.mindseye.opt.IterativeTrainer.run(IterativeTrainer.java:185)
at com.simiacryptus.mindseye.test.unit.TrainingTester.lambda$trainGD$892d3ca8$1(TrainingTester.java:489)
at com.simiacryptus.notebook.MarkdownNotebookOutput.lambda$eval$dc58be99$1(MarkdownNotebookOutput.java:657)
at com.simiacryptus.util.test.SysOutInterceptor.withOutput(SysOutInterceptor.java:102)
at com.simiacryptus.notebook.MarkdownNotebookOutput.eval(MarkdownNotebookOutput.java:649)
at com.simiacryptus.notebook.NotebookOutput.eval(NotebookOutput.java:125)
at com.simiacryptus.mindseye.test.unit.TrainingTester.trainGD(TrainingTester.java:480)
at com.simiacryptus.mindseye.test.unit.TrainingTester.runOpt(TrainingTester.java:658)
at com.simiacryptus.mindseye.test.unit.TrainingTester.train(TrainingTester.java:606)
at com.simiacryptus.mindseye.test.unit.TrainingTester.trainAll(TrainingTester.java:414)
at com.simiacryptus.mindseye.test.unit.TrainingTester.testInputLearning(TrainingTester.java:355)
at com.simiacryptus.mindseye.test.unit.TrainingTester.test(TrainingTester.java:229)
at com.simiacryptus.mindseye.test.unit.TrainingTester.test(TrainingTester.java:58)
at com.simiacryptus.mindseye.test.unit.LayerTests.run(LayerTests.java:369)
at com.simiacryptus.mindseye.test.unit.LayerTests.run(LayerTests.java:418)
at com.simiacryptus.mindseye.test.LayerTestBase.trainingTest(LayerTestBase.java:95)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:686)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutInvocation.proceed(TimeoutInvocation.java:46)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:205)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:201)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:137)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:71)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at java.util.ArrayList.forEach(Unknown Source)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at java.util.ArrayList.forEach(Unknown Source)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:248)
at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$5(DefaultLauncher.java:211)
at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:226)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:199)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:141)
at org.junit.platform.runner.JUnitPlatform.run(JUnitPlatform.java:139)
at com.simiacryptus.util.test.MacroTestRunner.runTest(MacroTestRunner.java:94)
at com.simiacryptus.util.test.MacroTestRunner.lambda$null$8bb7732f$1(MacroTestRunner.java:177)
at com.simiacryptus.aws.TendrilControl.lambda$null$0(TendrilControl.java:86)
at java.lang.Thread.run(Unknown Source)


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.7728245061020542 ], [ 0.008050579060562724 ], [ -0.23856334199220797 ], [ 0.6975241001512362 ], [ 0.24865666215827797 ], [ 0.7111769905562602 ], [ 0.9915877025370536 ], [ -0.5138618639690633 ], ... ],
    	[ [ 0.13638472923535772 ], [ 0.8413484185113136 ], [ -0.2649621205033419 ], [ 0.4669462556343471 ], [ 0.01689144699177958 ], [ -0.5670199999342806 ], [ -0.2729404692747479 ], [ 0.3471530361729267 ], ... ],
    	[ [ 0.054846685973131803 ], [ 0.426644393862015 ], [ -0.40713457412155685 ], [ -0.6902701396585889 ], [ 0.00400414105312441 ], [ 0.8226283350399608 ], [ 0.3875152267088502 ], [ -0.791293230648435 ], ... ],
    	[ [ -0.8100608067608737 ], [ 0.39824263124108006 ], [ -0.8213014018012335 ], [ 0.2605798881118644 ], [ -0.296665925917204 ], [ -0.4714924901949513 ], [ -0.3660560416278895 ], [ -0.7689590921573031 ], ... ],
    	[ [ 0.6211577015290117 ], [ 0.12479949465345697 ], [ 0.11132295559432936 ], [ -0.6850946568649092 ], [ -0.5718078324906299 ], [ 0.5553221538261399 ], [ -0.07418164820561524 ], [ -0.44211723196295294 ], ... ],
    	[ [ -0.8758771644206365 ], [ 0.8106274148335413 ], [ -0.5757817510375718 ], [ 0.2996492157592596 ], [ -0.3986934911762172 ], [ -0.9903694109329406 ], [ 0.6158680922631927 ], [ -0.022147783237455698 ], ... ],
    	[ [ 0.9244980302862345 ], [ -0.1987632917129134 ], [ -0.05823621081309849 ], [ -0.6037558797718101 ], [ 0.9153881095709901 ], [ 0.639897439838718 ], [ -0.010227958106844959 ], [ 0.6929927870298784 ], ... ],
    	[ [ 0.5778421080358762 ], [ 0.787663883751264 ], [ -0.07681748204552075 ], [ 0.8692741602691305 ], [ -0.8358339060046855 ], [ 0.7468414373557317 ], [ -0.6645882897182669 ], [ 0.24169456168982362 ], ... ],
    	...
    ]

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

    [
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	...
    ]

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.01 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: 3154889362369

Nothing to optimize
java.lang.AssertionError: Nothing to optimize
at com.simiacryptus.mindseye.opt.IterativeTrainer.measure(IterativeTrainer.java:147)
at com.simiacryptus.mindseye.opt.IterativeTrainer.run(IterativeTrainer.java:185)
at com.simiacryptus.mindseye.test.unit.TrainingTester.lambda$trainCjGD$892d3ca8$1(TrainingTester.java:461)
at com.simiacryptus.notebook.MarkdownNotebookOutput.lambda$eval$dc58be99$1(MarkdownNotebookOutput.java:657)
at com.simiacryptus.util.test.SysOutInterceptor.withOutput(SysOutInterceptor.java:102)
at com.simiacryptus.notebook.MarkdownNotebookOutput.eval(MarkdownNotebookOutput.java:649)
at com.simiacryptus.notebook.NotebookOutput.eval(NotebookOutput.java:125)
at com.simiacryptus.mindseye.test.unit.TrainingTester.trainCjGD(TrainingTester.java:452)
at com.simiacryptus.mindseye.test.unit.TrainingTester.runOpt(TrainingTester.java:658)
at com.simiacryptus.mindseye.test.unit.TrainingTester.train(TrainingTester.java:606)
at com.simiacryptus.mindseye.test.unit.TrainingTester.trainAll(TrainingTester.java:416)
at com.simiacryptus.mindseye.test.unit.TrainingTester.testInputLearning(TrainingTester.java:355)
at com.simiacryptus.mindseye.test.unit.TrainingTester.test(TrainingTester.java:229)
at com.simiacryptus.mindseye.test.unit.TrainingTester.test(TrainingTester.java:58)
at com.simiacryptus.mindseye.test.unit.LayerTests.run(LayerTests.java:369)
at com.simiacryptus.mindseye.test.unit.LayerTests.run(LayerTests.java:418)
at com.simiacryptus.mindseye.test.LayerTestBase.trainingTest(LayerTestBase.java:95)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:686)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutInvocation.proceed(TimeoutInvocation.java:46)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:205)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:201)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:137)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:71)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at java.util.ArrayList.forEach(Unknown Source)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at java.util.ArrayList.forEach(Unknown Source)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:248)
at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$5(DefaultLauncher.java:211)
at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:226)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:199)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:141)
at org.junit.platform.runner.JUnitPlatform.run(JUnitPlatform.java:139)
at com.simiacryptus.util.test.MacroTestRunner.runTest(MacroTestRunner.java:94)
at com.simiacryptus.util.test.MacroTestRunner.lambda$null$8bb7732f$1(MacroTestRunner.java:177)
at com.simiacryptus.aws.TendrilControl.lambda$null$0(TendrilControl.java:86)
at java.lang.Thread.run(Unknown Source)


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.7728245061020542 ], [ 0.008050579060562724 ], [ -0.23856334199220797 ], [ 0.6975241001512362 ], [ 0.24865666215827797 ], [ 0.7111769905562602 ], [ 0.9915877025370536 ], [ -0.5138618639690633 ], ... ],
    	[ [ 0.13638472923535772 ], [ 0.8413484185113136 ], [ -0.2649621205033419 ], [ 0.4669462556343471 ], [ 0.01689144699177958 ], [ -0.5670199999342806 ], [ -0.2729404692747479 ], [ 0.3471530361729267 ], ... ],
    	[ [ 0.054846685973131803 ], [ 0.426644393862015 ], [ -0.40713457412155685 ], [ -0.6902701396585889 ], [ 0.00400414105312441 ], [ 0.8226283350399608 ], [ 0.3875152267088502 ], [ -0.791293230648435 ], ... ],
    	[ [ -0.8100608067608737 ], [ 0.39824263124108006 ], [ -0.8213014018012335 ], [ 0.2605798881118644 ], [ -0.296665925917204 ], [ -0.4714924901949513 ], [ -0.3660560416278895 ], [ -0.7689590921573031 ], ... ],
    	[ [ 0.6211577015290117 ], [ 0.12479949465345697 ], [ 0.11132295559432936 ], [ -0.6850946568649092 ], [ -0.5718078324906299 ], [ 0.5553221538261399 ], [ -0.07418164820561524 ], [ -0.44211723196295294 ], ... ],
    	[ [ -0.8758771644206365 ], [ 0.8106274148335413 ], [ -0.5757817510375718 ], [ 0.2996492157592596 ], [ -0.3986934911762172 ], [ -0.9903694109329406 ], [ 0.6158680922631927 ], [ -0.022147783237455698 ], ... ],
    	[ [ 0.9244980302862345 ], [ -0.1987632917129134 ], [ -0.05823621081309849 ], [ -0.6037558797718101 ], [ 0.9153881095709901 ], [ 0.639897439838718 ], [ -0.010227958106844959 ], [ 0.6929927870298784 ], ... ],
    	[ [ 0.5778421080358762 ], [ 0.787663883751264 ], [ -0.07681748204552075 ], [ 0.8692741602691305 ], [ -0.8358339060046855 ], [ 0.7468414373557317 ], [ -0.6645882897182669 ], [ 0.24169456168982362 ], ... ],
    	...
    ]

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

    [
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	...
    ]

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 0.01 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: 3154918388985

Nothing to optimize
java.lang.AssertionError: Nothing to optimize
at com.simiacryptus.mindseye.opt.IterativeTrainer.measure(IterativeTrainer.java:147)
at com.simiacryptus.mindseye.opt.IterativeTrainer.run(IterativeTrainer.java:185)
at com.simiacryptus.mindseye.test.unit.TrainingTester.lambda$trainLBFGS$892d3ca8$1(TrainingTester.java:519)
at com.simiacryptus.notebook.MarkdownNotebookOutput.lambda$eval$dc58be99$1(MarkdownNotebookOutput.java:657)
at com.simiacryptus.util.test.SysOutInterceptor.withOutput(SysOutInterceptor.java:102)
at com.simiacryptus.notebook.MarkdownNotebookOutput.eval(MarkdownNotebookOutput.java:649)
at com.simiacryptus.notebook.NotebookOutput.eval(NotebookOutput.java:125)
at com.simiacryptus.mindseye.test.unit.TrainingTester.trainLBFGS(TrainingTester.java:509)
at com.simiacryptus.mindseye.test.unit.TrainingTester.runOpt(TrainingTester.java:658)
at com.simiacryptus.mindseye.test.unit.TrainingTester.train(TrainingTester.java:606)
at com.simiacryptus.mindseye.test.unit.TrainingTester.trainAll(TrainingTester.java:418)
at com.simiacryptus.mindseye.test.unit.TrainingTester.testInputLearning(TrainingTester.java:355)
at com.simiacryptus.mindseye.test.unit.TrainingTester.test(TrainingTester.java:229)
at com.simiacryptus.mindseye.test.unit.TrainingTester.test(TrainingTester.java:58)
at com.simiacryptus.mindseye.test.unit.LayerTests.run(LayerTests.java:369)
at com.simiacryptus.mindseye.test.unit.LayerTests.run(LayerTests.java:418)
at com.simiacryptus.mindseye.test.LayerTestBase.trainingTest(LayerTestBase.java:95)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:686)
at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
at org.junit.jupiter.engine.extension.TimeoutInvocation.proceed(TimeoutInvocation.java:46)
at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84)
at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:205)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:201)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:137)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:71)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:135)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at java.util.ArrayList.forEach(Unknown Source)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at java.util.ArrayList.forEach(Unknown Source)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:248)
at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$5(DefaultLauncher.java:211)
at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:226)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:199)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:141)
at org.junit.platform.runner.JUnitPlatform.run(JUnitPlatform.java:139)
at com.simiacryptus.util.test.MacroTestRunner.runTest(MacroTestRunner.java:94)
at com.simiacryptus.util.test.MacroTestRunner.lambda$null$8bb7732f$1(MacroTestRunner.java:177)
at com.simiacryptus.aws.TendrilControl.lambda$null$0(TendrilControl.java:86)
at java.lang.Thread.run(Unknown Source)


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.7728245061020542 ], [ 0.008050579060562724 ], [ -0.23856334199220797 ], [ 0.6975241001512362 ], [ 0.24865666215827797 ], [ 0.7111769905562602 ], [ 0.9915877025370536 ], [ -0.5138618639690633 ], ... ],
    	[ [ 0.13638472923535772 ], [ 0.8413484185113136 ], [ -0.2649621205033419 ], [ 0.4669462556343471 ], [ 0.01689144699177958 ], [ -0.5670199999342806 ], [ -0.2729404692747479 ], [ 0.3471530361729267 ], ... ],
    	[ [ 0.054846685973131803 ], [ 0.426644393862015 ], [ -0.40713457412155685 ], [ -0.6902701396585889 ], [ 0.00400414105312441 ], [ 0.8226283350399608 ], [ 0.3875152267088502 ], [ -0.791293230648435 ], ... ],
    	[ [ -0.8100608067608737 ], [ 0.39824263124108006 ], [ -0.8213014018012335 ], [ 0.2605798881118644 ], [ -0.296665925917204 ], [ -0.4714924901949513 ], [ -0.3660560416278895 ], [ -0.7689590921573031 ], ... ],
    	[ [ 0.6211577015290117 ], [ 0.12479949465345697 ], [ 0.11132295559432936 ], [ -0.6850946568649092 ], [ -0.5718078324906299 ], [ 0.5553221538261399 ], [ -0.07418164820561524 ], [ -0.44211723196295294 ], ... ],
    	[ [ -0.8758771644206365 ], [ 0.8106274148335413 ], [ -0.5757817510375718 ], [ 0.2996492157592596 ], [ -0.3986934911762172 ], [ -0.9903694109329406 ], [ 0.6158680922631927 ], [ -0.022147783237455698 ], ... ],
    	[ [ 0.9244980302862345 ], [ -0.1987632917129134 ], [ -0.05823621081309849 ], [ -0.6037558797718101 ], [ 0.9153881095709901 ], [ 0.639897439838718 ], [ -0.010227958106844959 ], [ 0.6929927870298784 ], ... ],
    	[ [ 0.5778421080358762 ], [ 0.787663883751264 ], [ -0.07681748204552075 ], [ 0.8692741602691305 ], [ -0.8358339060046855 ], [ 0.7468414373557317 ], [ -0.6645882897182669 ], [ 0.24169456168982362 ], ... ],
    	...
    ]

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

    [
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	[ [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], [ 1.0 ], ... ],
    	...
    ]

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

    return TestUtil.compare(title + " vs Iteration", runs);
Logging
No Data

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

    return TestUtil.compareTime(title + " vs Time", runs);
Logging
No Data

Results

TrainingTester.java:255 executed in 0.03 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": NaN }, "CjGD": { "type": "NonConverged", "value": NaN }, "GD": { "type": "NonConverged", "value": NaN } }, "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": NaN }, "CjGD": { "type": "NonConverged", "value": NaN }, "GD": { "type": "NonConverged", "value": NaN } }, "model":null, "complete":null}OK
  {
    "result": "OK",
    "performance": {
      "execution_time": "0.526",
      "gc_time": "0.176"
    },
    "created_on": 1586737742586,
    "file_name": "trainingTest",
    "report": {
      "simpleName": "ZeroPowerTest",
      "canonicalName": "com.simiacryptus.mindseye.layers.java.NthPowerActivationLayerTest.ZeroPowerTest",
      "link": "https://github.com/SimiaCryptus/mindseye-java/tree/93db34cedee48c0202777a2b25deddf1dfaf5731/src/test/java/com/simiacryptus/mindseye/layers/java/NthPowerActivationLayerTest.java",
      "javaDoc": ""
    },
    "training_analysis": {
      "input": {
        "LBFGS": {
          "type": "NonConverged",
          "value": "NaN"
        },
        "CjGD": {
          "type": "NonConverged",
          "value": "NaN"
        },
        "GD": {
          "type": "NonConverged",
          "value": "NaN"
        }
      }
    },
    "archive": "s3://code.simiacrypt.us/tests/com/simiacryptus/mindseye/layers/java/NthPowerActivationLayer/ZeroPowerTest/trainingTest/202004132902",
    "id": "b0ec67ed-d819-4bfc-9108-09c08a5543f1",
    "report_type": "Components",
    "display_name": "Comparative Training",
    "target": {
      "simpleName": "NthPowerActivationLayer",
      "canonicalName": "com.simiacryptus.mindseye.layers.java.NthPowerActivationLayer",
      "link": "https://github.com/SimiaCryptus/mindseye-java/tree/93db34cedee48c0202777a2b25deddf1dfaf5731/src/main/java/com/simiacryptus/mindseye/layers/java/NthPowerActivationLayer.java",
      "javaDoc": ""
    }
  }