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

Target Description: The type Img tile subnet layer.

Report Description: The type Overlapping.

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

Test Modules

Using Seed 2310709444211488768

Training Characteristics

Input Learning

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

TrainingTester.java:445 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.176 ], [ 0.028 ], [ -0.068 ], [ 1.032 ], [ -1.616 ], [ 1.556 ] ],
    	[ [ 1.208 ], [ 0.3 ], [ 1.108 ], [ -0.852 ], [ -0.128 ], [ 1.512 ] ],
    	[ [ 0.08 ], [ -1.688 ], [ 1.64 ], [ -0.768 ], [ 0.048 ], [ 0.392 ] ],
    	[ [ 1.524 ], [ -1.72 ], [ 1.356 ], [ -1.028 ], [ -0.712 ], [ 1.612 ] ],
    	[ [ 0.636 ], [ 0.496 ], [ -0.384 ], [ 1.764 ], [ 1.912 ], [ 1.556 ] ],
    	[ [ -0.804 ], [ 0.788 ], [ 1.048 ], [ 0.092 ], [ 0.7 ], [ -0.608 ] ]
    ]
    [
    	[ [ 0.636 ], [ 0.3 ], [ 1.556 ], [ 0.788 ], [ 1.612 ], [ -1.688 ] ],
    	[ [ -0.768 ], [ -0.804 ], [ -0.712 ], [ -1.72 ], [ 1.512 ], [ 1.356 ] ],
    	[ [ 1.556 ], [ 1.048 ], [ 1.032 ], [ -0.128 ], [ 1.108 ], [ 0.048 ] ],
    	[ [ -1.028 ], [ 1.912 ], [ -1.616 ], [ 1.764 ], [ -0.608 ], [ 0.392 ] ],
    	[ [ 0.092 ], [ -0.384 ], [ 1.64 ], [ -0.068 ], [ -0.852 ], [ 0.7 ] ],
    	[ [ 1.524 ], [ 0.028 ], [ 0.496 ], [ 1.208 ], [ -0.176 ], [ 0.08 ] ]
    ]
    [
    	[ [ -0.068 ], [ 1.512 ], [ -0.852 ], [ 0.092 ], [ 1.556 ], [ 1.556 ] ],
    	[ [ 0.392 ], [ 0.028 ], [ -0.804 ], [ 0.788 ], [ 1.356 ], [ 1.764 ] ],
    	[ [ 1.208 ], [ 1.912 ], [ 1.524 ], [ 0.048 ], [ -0.176 ], [ 1.108 ] ],
    	[ [ 0.3 ], [ -0.712 ], [ -1.616 ], [ -1.688 ], [ -0.768 ], [ 1.64 ] ],
    	[ [ 1.048 ], [ 1.612 ], [ 0.08 ], [ -1.028 ], [ 0.496 ], [ 1.032 ] ],
    	[ [ -1.72 ], [ -0.384 ], [ -0.128 ], [ 0.7 ], [ 0.636 ], [ -0.608 ] ]
    ]
    [
    	[ [ -0.608 ], [ -0.128 ], [ -1.72 ], [ 1.556 ], [ 1.524 ], [ 0.028 ] ],
    	[ [ 0.636 ], [ 1.208 ], [ 0.3 ], [ 1.048 ], [ -0.712 ], [ 0.048 ] ],
    	[ [ 1.032 ], [ -0.852 ], [ 1.764 ], [ -1.688 ], [ -0.176 ], [ 1.612 ] ],
    	[ [ 1.912 ], [ 1.356 ], [ 0.788 ], [ 1.64 ], [ 1.512 ], [ -0.768 ] ],
    	[ [ 0.392 ], [ 0.092 ], [ 1.556 ], [ -0.384 ], [ 1.108 ], [ 0.08 ] ],
    	[ [ -1.616 ], [ 0.496 ], [ -0.068 ], [ -0.804 ], [ -1.028 ], [ 0.7 ] ]
    ]
    [
    	[ [ -0.608 ], [ -0.768 ], [ -0.712 ], [ 1.208 ], [ 0.3 ], [ 1.556 ] ],
    	[ [ 0.7 ], [ -1.688 ], [ 0.788 ], [ 0.636 ], [ -0.176 ], [ 1.108 ] ],
    	[ [ 0.496 ], [ -0.804 ], [ 1.612 ], [ 0.048 ], [ 1.556 ], [ 1.64 ] ],
    	[ [ 1.032 ], [ 1.524 ], [ 1.764 ], [ -0.384 ], [ 0.392 ], [ 1.356 ] ],
    	[ [ 0.028 ], [ 1.048 ], [ 1.912 ], [ -1.028 ], [ -1.616 ], [ -0.128 ] ],
    	[ [ -0.068 ], [ -1.72 ], [ -0.852 ], [ 0.08 ], [ 0.092 ], [ 1.512 ] ]
    ]

Gradient Descent

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

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

java.lang.reflect.InvocationTargetException
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.simiacryptus.util.Util.throwException(Util.java:502)
at com.simiacryptus.lang.TimedResult.time(TimedResult.java:57)
at com.simiacryptus.mindseye.eval.BatchedTrainable.measure(BatchedTrainable.java:99)
at com.simiacryptus.mindseye.opt.IterativeTrainer.measure(IterativeTrainer.java:236)
at com.simiacryptus.mindseye.opt.IterativeTrainer.run(IterativeTrainer.java:286)
at com.simiacryptus.mindseye.test.unit.TrainingTester.lambda$trainGD$892d3ca8$1(TrainingTester.java:647)
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:638)
at com.simiacryptus.mindseye.test.unit.TrainingTester.runOpt(TrainingTester.java:833)
at com.simiacryptus.mindseye.test.unit.TrainingTester.train(TrainingTester.java:781)
at com.simiacryptus.mindseye.test.unit.TrainingTester.trainAll(TrainingTester.java:558)
at com.simiacryptus.mindseye.test.unit.TrainingTester.testInputLearning(TrainingTester.java:468)
at com.simiacryptus.mindseye.test.unit.TrainingTester.test(TrainingTester.java:324)
at com.simiacryptus.mindseye.test.unit.TrainingTester.test(TrainingTester.java:61)
at com.simiacryptus.mindseye.test.unit.LayerTests.run(LayerTests.java:541)
at com.simiacryptus.mindseye.test.unit.LayerTests.run(LayerTests.java:598)
at com.simiacryptus.mindseye.test.LayerTestBase.trainingTest(LayerTestBase.java:119)
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)
Caused by: java.lang.reflect.InvocationTargetException
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 com.simiacryptus.ref.lang.RefUtil$RefWrapperHandler.invoke(RefUtil.java:238)
at com.sun.proxy.$Proxy44.get(Unknown Source)
at com.simiacryptus.lang.TimedResult.time(TimedResult.java:54)
... 83 more
Caused by: java.lang.AssertionError
at com.simiacryptus.mindseye.lang.Delta.addInPlace(Delta.java:167)
at com.simiacryptus.mindseye.lang.Delta.addInPlace(Delta.java:157)
at com.simiacryptus.mindseye.lang.MutableResult$MutableAccumulator.accept(MutableResult.java:106)
at com.simiacryptus.mindseye.lang.MutableResult$MutableAccumulator.accept(MutableResult.java:84)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accum(CountingResult.java:158)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:145)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:97)
at com.simiacryptus.mindseye.layers.java.ImgTileSubnetLayer$TileAccumulator.accept(ImgTileSubnetLayer.java:220)
at com.simiacryptus.mindseye.layers.java.ImgTileSubnetLayer$TileAccumulator.accept(ImgTileSubnetLayer.java:181)
at com.simiacryptus.mindseye.layers.java.LinearActivationLayer$Accumulator.accept(LinearActivationLayer.java:268)
at com.simiacryptus.mindseye.layers.java.LinearActivationLayer$Accumulator.accept(LinearActivationLayer.java:202)
at com.simiacryptus.mindseye.layers.java.ImgTileAssemblyLayer$Accumulator.accept(ImgTileAssemblyLayer.java:413)
at com.simiacryptus.mindseye.layers.java.ImgTileAssemblyLayer$Accumulator.accept(ImgTileAssemblyLayer.java:351)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accum(CountingResult.java:158)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:145)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:97)
at com.simiacryptus.mindseye.layers.java.EntropyLossLayer$Accumulator.accept(EntropyLossLayer.java:242)
at com.simiacryptus.mindseye.layers.java.EntropyLossLayer$Accumulator.accept(EntropyLossLayer.java:167)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accum(CountingResult.java:158)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:145)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:97)
at com.simiacryptus.mindseye.lang.Result.accumulate(Result.java:236)
at com.simiacryptus.mindseye.lang.Result.accumulate(Result.java:220)
at com.simiacryptus.mindseye.lang.Result.accumulate(Result.java:210)
at com.simiacryptus.mindseye.eval.BasicTrainable.eval(BasicTrainable.java:206)
at com.simiacryptus.mindseye.eval.BasicTrainable.lambda$measure$3f677$1(BasicTrainable.java:145)
at com.simiacryptus.lang.TimedResult.time(TimedResult.java:54)
at com.simiacryptus.mindseye.eval.BasicTrainable.measure(BasicTrainable.java:145)
at com.simiacryptus.mindseye.eval.TrainableWrapper.measure(TrainableWrapper.java:85)
at com.simiacryptus.mindseye.eval.BatchedTrainable.lambda$measure$8766d393$1(BatchedTrainable.java:129)
... 90 more


This training apply resulted in the following configuration:

TrainingTester.java:785 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:797 executed in 0.00 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

    [
    	[ [ 1.032 ], [ 0.496 ], [ 1.524 ], [ 0.3 ], [ -1.688 ], [ 0.08 ] ],
    	[ [ 1.64 ], [ -1.72 ], [ 0.636 ], [ 1.556 ], [ 1.912 ], [ 1.764 ] ],
    	[ [ -0.852 ], [ -0.608 ], [ -1.616 ], [ -0.768 ], [ 0.092 ], [ -0.176 ] ],
    	[ [ -0.384 ], [ 1.556 ], [ 0.048 ], [ 0.028 ], [ 1.208 ], [ 1.356 ] ],
    	[ [ 0.392 ], [ -0.712 ], [ 1.048 ], [ -0.068 ], [ 1.108 ], [ -0.128 ] ],
    	[ [ 0.7 ], [ -0.804 ], [ -1.028 ], [ 1.612 ], [ 1.512 ], [ 0.788 ] ]
    ]

To produce the following output:

TrainingTester.java:808 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.032 ], [ 0.496 ], [ 1.524 ], [ 1.524 ], [ 0.3 ], [ -1.688 ], [ -1.688 ], [ 0.08 ] ],
    	[ [ 1.64 ], [ -1.72 ], [ 0.636 ], [ 0.636 ], [ 1.556 ], [ 1.912 ], [ 1.912 ], [ 1.764 ] ],
    	[ [ -0.852 ], [ -0.608 ], [ -1.616 ], [ -1.616 ], [ -0.768 ], [ 0.092 ], [ 0.092 ], [ -0.176 ] ],
    	[ [ -0.852 ], [ -0.608 ], [ -1.616 ], [ -1.616 ], [ -0.768 ], [ 0.092 ], [ 0.092 ], [ -0.176 ] ],
    	[ [ -0.384 ], [ 1.556 ], [ 0.048 ], [ 0.048 ], [ 0.028 ], [ 1.208 ], [ 1.208 ], [ 1.356 ] ],
    	[ [ 0.392 ], [ -0.712 ], [ 1.048 ], [ 1.048 ], [ -0.068 ], [ 1.108 ], [ 1.108 ], [ -0.128 ] ],
    	[ [ 0.392 ], [ -0.712 ], [ 1.048 ], [ 1.048 ], [ -0.068 ], [ 1.108 ], [ 1.108 ], [ -0.128 ] ],
    	[ [ 0.7 ], [ -0.804 ], [ -1.028 ], [ -1.028 ], [ 1.612 ], [ 1.512 ], [ 1.512 ], [ 0.788 ] ]
    ]

Conjugate Gradient Descent

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

TrainingTester.java:603 executed in 0.02 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: 3481877780115

java.lang.reflect.InvocationTargetException
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.simiacryptus.util.Util.throwException(Util.java:502)
at com.simiacryptus.lang.TimedResult.time(TimedResult.java:57)
at com.simiacryptus.mindseye.eval.BatchedTrainable.measure(BatchedTrainable.java:99)
at com.simiacryptus.mindseye.opt.IterativeTrainer.measure(IterativeTrainer.java:236)
at com.simiacryptus.mindseye.opt.IterativeTrainer.run(IterativeTrainer.java:286)
at com.simiacryptus.mindseye.test.unit.TrainingTester.lambda$trainCjGD$892d3ca8$1(TrainingTester.java:612)
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:603)
at com.simiacryptus.mindseye.test.unit.TrainingTester.runOpt(TrainingTester.java:833)
at com.simiacryptus.mindseye.test.unit.TrainingTester.train(TrainingTester.java:781)
at com.simiacryptus.mindseye.test.unit.TrainingTester.trainAll(TrainingTester.java:560)
at com.simiacryptus.mindseye.test.unit.TrainingTester.testInputLearning(TrainingTester.java:468)
at com.simiacryptus.mindseye.test.unit.TrainingTester.test(TrainingTester.java:324)
at com.simiacryptus.mindseye.test.unit.TrainingTester.test(TrainingTester.java:61)
at com.simiacryptus.mindseye.test.unit.LayerTests.run(LayerTests.java:541)
at com.simiacryptus.mindseye.test.unit.LayerTests.run(LayerTests.java:598)
at com.simiacryptus.mindseye.test.LayerTestBase.trainingTest(LayerTestBase.java:119)
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)
Caused by: java.lang.reflect.InvocationTargetException
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 com.simiacryptus.ref.lang.RefUtil$RefWrapperHandler.invoke(RefUtil.java:238)
at com.sun.proxy.$Proxy44.get(Unknown Source)
at com.simiacryptus.lang.TimedResult.time(TimedResult.java:54)
... 83 more
Caused by: java.lang.AssertionError
at com.simiacryptus.mindseye.lang.Delta.addInPlace(Delta.java:167)
at com.simiacryptus.mindseye.lang.Delta.addInPlace(Delta.java:157)
at com.simiacryptus.mindseye.lang.MutableResult$MutableAccumulator.accept(MutableResult.java:106)
at com.simiacryptus.mindseye.lang.MutableResult$MutableAccumulator.accept(MutableResult.java:84)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accum(CountingResult.java:158)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:145)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:97)
at com.simiacryptus.mindseye.layers.java.ImgTileSubnetLayer$TileAccumulator.accept(ImgTileSubnetLayer.java:220)
at com.simiacryptus.mindseye.layers.java.ImgTileSubnetLayer$TileAccumulator.accept(ImgTileSubnetLayer.java:181)
at com.simiacryptus.mindseye.layers.java.LinearActivationLayer$Accumulator.accept(LinearActivationLayer.java:268)
at com.simiacryptus.mindseye.layers.java.LinearActivationLayer$Accumulator.accept(LinearActivationLayer.java:202)
at com.simiacryptus.mindseye.layers.java.ImgTileAssemblyLayer$Accumulator.accept(ImgTileAssemblyLayer.java:413)
at com.simiacryptus.mindseye.layers.java.ImgTileAssemblyLayer$Accumulator.accept(ImgTileAssemblyLayer.java:351)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accum(CountingResult.java:158)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:145)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:97)
at com.simiacryptus.mindseye.layers.java.EntropyLossLayer$Accumulator.accept(EntropyLossLayer.java:242)
at com.simiacryptus.mindseye.layers.java.EntropyLossLayer$Accumulator.accept(EntropyLossLayer.java:167)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accum(CountingResult.java:158)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:145)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:97)
at com.simiacryptus.mindseye.lang.Result.accumulate(Result.java:236)
at com.simiacryptus.mindseye.lang.Result.accumulate(Result.java:220)
at com.simiacryptus.mindseye.lang.Result.accumulate(Result.java:210)
at com.simiacryptus.mindseye.eval.BasicTrainable.eval(BasicTrainable.java:206)
at com.simiacryptus.mindseye.eval.BasicTrainable.lambda$measure$3f677$1(BasicTrainable.java:145)
at com.simiacryptus.lang.TimedResult.time(TimedResult.java:54)
at com.simiacryptus.mindseye.eval.BasicTrainable.measure(BasicTrainable.java:145)
at com.simiacryptus.mindseye.eval.TrainableWrapper.measure(TrainableWrapper.java:85)
at com.simiacryptus.mindseye.eval.BatchedTrainable.lambda$measure$8766d393$1(BatchedTrainable.java:129)
... 90 more


This training apply resulted in the following configuration:

TrainingTester.java:785 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:797 executed in 0.00 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

    [
    	[ [ 1.032 ], [ 0.496 ], [ 1.524 ], [ 0.3 ], [ -1.688 ], [ 0.08 ] ],
    	[ [ 1.64 ], [ -1.72 ], [ 0.636 ], [ 1.556 ], [ 1.912 ], [ 1.764 ] ],
    	[ [ -0.852 ], [ -0.608 ], [ -1.616 ], [ -0.768 ], [ 0.092 ], [ -0.176 ] ],
    	[ [ -0.384 ], [ 1.556 ], [ 0.048 ], [ 0.028 ], [ 1.208 ], [ 1.356 ] ],
    	[ [ 0.392 ], [ -0.712 ], [ 1.048 ], [ -0.068 ], [ 1.108 ], [ -0.128 ] ],
    	[ [ 0.7 ], [ -0.804 ], [ -1.028 ], [ 1.612 ], [ 1.512 ], [ 0.788 ] ]
    ]

To produce the following output:

TrainingTester.java:808 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.032 ], [ 0.496 ], [ 1.524 ], [ 1.524 ], [ 0.3 ], [ -1.688 ], [ -1.688 ], [ 0.08 ] ],
    	[ [ 1.64 ], [ -1.72 ], [ 0.636 ], [ 0.636 ], [ 1.556 ], [ 1.912 ], [ 1.912 ], [ 1.764 ] ],
    	[ [ -0.852 ], [ -0.608 ], [ -1.616 ], [ -1.616 ], [ -0.768 ], [ 0.092 ], [ 0.092 ], [ -0.176 ] ],
    	[ [ -0.852 ], [ -0.608 ], [ -1.616 ], [ -1.616 ], [ -0.768 ], [ 0.092 ], [ 0.092 ], [ -0.176 ] ],
    	[ [ -0.384 ], [ 1.556 ], [ 0.048 ], [ 0.048 ], [ 0.028 ], [ 1.208 ], [ 1.208 ], [ 1.356 ] ],
    	[ [ 0.392 ], [ -0.712 ], [ 1.048 ], [ 1.048 ], [ -0.068 ], [ 1.108 ], [ 1.108 ], [ -0.128 ] ],
    	[ [ 0.392 ], [ -0.712 ], [ 1.048 ], [ 1.048 ], [ -0.068 ], [ 1.108 ], [ 1.108 ], [ -0.128 ] ],
    	[ [ 0.7 ], [ -0.804 ], [ -1.028 ], [ -1.028 ], [ 1.612 ], [ 1.512 ], [ 1.512 ], [ 0.788 ] ]
    ]

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:674 executed in 0.02 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: 3481918399205

java.lang.reflect.InvocationTargetException
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.simiacryptus.util.Util.throwException(Util.java:502)
at com.simiacryptus.lang.TimedResult.time(TimedResult.java:57)
at com.simiacryptus.mindseye.eval.BatchedTrainable.measure(BatchedTrainable.java:99)
at com.simiacryptus.mindseye.opt.IterativeTrainer.measure(IterativeTrainer.java:236)
at com.simiacryptus.mindseye.opt.IterativeTrainer.run(IterativeTrainer.java:286)
at com.simiacryptus.mindseye.test.unit.TrainingTester.lambda$trainLBFGS$892d3ca8$1(TrainingTester.java:684)
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:674)
at com.simiacryptus.mindseye.test.unit.TrainingTester.runOpt(TrainingTester.java:833)
at com.simiacryptus.mindseye.test.unit.TrainingTester.train(TrainingTester.java:781)
at com.simiacryptus.mindseye.test.unit.TrainingTester.trainAll(TrainingTester.java:562)
at com.simiacryptus.mindseye.test.unit.TrainingTester.testInputLearning(TrainingTester.java:468)
at com.simiacryptus.mindseye.test.unit.TrainingTester.test(TrainingTester.java:324)
at com.simiacryptus.mindseye.test.unit.TrainingTester.test(TrainingTester.java:61)
at com.simiacryptus.mindseye.test.unit.LayerTests.run(LayerTests.java:541)
at com.simiacryptus.mindseye.test.unit.LayerTests.run(LayerTests.java:598)
at com.simiacryptus.mindseye.test.LayerTestBase.trainingTest(LayerTestBase.java:119)
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)
Caused by: java.lang.reflect.InvocationTargetException
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 com.simiacryptus.ref.lang.RefUtil$RefWrapperHandler.invoke(RefUtil.java:238)
at com.sun.proxy.$Proxy44.get(Unknown Source)
at com.simiacryptus.lang.TimedResult.time(TimedResult.java:54)
... 83 more
Caused by: java.lang.AssertionError
at com.simiacryptus.mindseye.lang.Delta.addInPlace(Delta.java:167)
at com.simiacryptus.mindseye.lang.Delta.addInPlace(Delta.java:157)
at com.simiacryptus.mindseye.lang.MutableResult$MutableAccumulator.accept(MutableResult.java:106)
at com.simiacryptus.mindseye.lang.MutableResult$MutableAccumulator.accept(MutableResult.java:84)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accum(CountingResult.java:158)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:145)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:97)
at com.simiacryptus.mindseye.layers.java.ImgTileSubnetLayer$TileAccumulator.accept(ImgTileSubnetLayer.java:220)
at com.simiacryptus.mindseye.layers.java.ImgTileSubnetLayer$TileAccumulator.accept(ImgTileSubnetLayer.java:181)
at com.simiacryptus.mindseye.layers.java.LinearActivationLayer$Accumulator.accept(LinearActivationLayer.java:268)
at com.simiacryptus.mindseye.layers.java.LinearActivationLayer$Accumulator.accept(LinearActivationLayer.java:202)
at com.simiacryptus.mindseye.layers.java.ImgTileAssemblyLayer$Accumulator.accept(ImgTileAssemblyLayer.java:413)
at com.simiacryptus.mindseye.layers.java.ImgTileAssemblyLayer$Accumulator.accept(ImgTileAssemblyLayer.java:351)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accum(CountingResult.java:158)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:145)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:97)
at com.simiacryptus.mindseye.layers.java.EntropyLossLayer$Accumulator.accept(EntropyLossLayer.java:242)
at com.simiacryptus.mindseye.layers.java.EntropyLossLayer$Accumulator.accept(EntropyLossLayer.java:167)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accum(CountingResult.java:158)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:145)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:97)
at com.simiacryptus.mindseye.lang.Result.accumulate(Result.java:236)
at com.simiacryptus.mindseye.lang.Result.accumulate(Result.java:220)
at com.simiacryptus.mindseye.lang.Result.accumulate(Result.java:210)
at com.simiacryptus.mindseye.eval.BasicTrainable.eval(BasicTrainable.java:206)
at com.simiacryptus.mindseye.eval.BasicTrainable.lambda$measure$3f677$1(BasicTrainable.java:145)
at com.simiacryptus.lang.TimedResult.time(TimedResult.java:54)
at com.simiacryptus.mindseye.eval.BasicTrainable.measure(BasicTrainable.java:145)
at com.simiacryptus.mindseye.eval.TrainableWrapper.measure(TrainableWrapper.java:85)
at com.simiacryptus.mindseye.eval.BatchedTrainable.lambda$measure$8766d393$1(BatchedTrainable.java:129)
... 90 more


This training apply resulted in the following configuration:

TrainingTester.java:785 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:797 executed in 0.00 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

    [
    	[ [ 1.032 ], [ 0.496 ], [ 1.524 ], [ 0.3 ], [ -1.688 ], [ 0.08 ] ],
    	[ [ 1.64 ], [ -1.72 ], [ 0.636 ], [ 1.556 ], [ 1.912 ], [ 1.764 ] ],
    	[ [ -0.852 ], [ -0.608 ], [ -1.616 ], [ -0.768 ], [ 0.092 ], [ -0.176 ] ],
    	[ [ -0.384 ], [ 1.556 ], [ 0.048 ], [ 0.028 ], [ 1.208 ], [ 1.356 ] ],
    	[ [ 0.392 ], [ -0.712 ], [ 1.048 ], [ -0.068 ], [ 1.108 ], [ -0.128 ] ],
    	[ [ 0.7 ], [ -0.804 ], [ -1.028 ], [ 1.612 ], [ 1.512 ], [ 0.788 ] ]
    ]

To produce the following output:

TrainingTester.java:808 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.032 ], [ 0.496 ], [ 1.524 ], [ 1.524 ], [ 0.3 ], [ -1.688 ], [ -1.688 ], [ 0.08 ] ],
    	[ [ 1.64 ], [ -1.72 ], [ 0.636 ], [ 0.636 ], [ 1.556 ], [ 1.912 ], [ 1.912 ], [ 1.764 ] ],
    	[ [ -0.852 ], [ -0.608 ], [ -1.616 ], [ -1.616 ], [ -0.768 ], [ 0.092 ], [ 0.092 ], [ -0.176 ] ],
    	[ [ -0.852 ], [ -0.608 ], [ -1.616 ], [ -1.616 ], [ -0.768 ], [ 0.092 ], [ 0.092 ], [ -0.176 ] ],
    	[ [ -0.384 ], [ 1.556 ], [ 0.048 ], [ 0.048 ], [ 0.028 ], [ 1.208 ], [ 1.208 ], [ 1.356 ] ],
    	[ [ 0.392 ], [ -0.712 ], [ 1.048 ], [ 1.048 ], [ -0.068 ], [ 1.108 ], [ 1.108 ], [ -0.128 ] ],
    	[ [ 0.392 ], [ -0.712 ], [ 1.048 ], [ 1.048 ], [ -0.068 ], [ 1.108 ], [ 1.108 ], [ -0.128 ] ],
    	[ [ 0.7 ], [ -0.804 ], [ -1.028 ], [ -1.028 ], [ 1.612 ], [ 1.512 ], [ 1.512 ], [ 0.788 ] ]
    ]

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

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

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

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

Results

TrainingTester.java:350 executed in 0.03 seconds (0.000 gc):

    return grid(inputLearning, modelLearning, completeLearning);

Returns

Result

TrainingTester.java:353 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:605 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.540",
      "gc_time": "0.189"
    },
    "created_on": 1587005501098,
    "file_name": "trainingTest",
    "report": {
      "simpleName": "Overlapping",
      "canonicalName": "com.simiacryptus.mindseye.layers.java.ImgTileSubnetLayerTest.Overlapping",
      "link": "https://github.com/SimiaCryptus/mindseye-java/tree/c9a1867488dc7e77a975f095285b5882c0486db6/src/test/java/com/simiacryptus/mindseye/layers/java/ImgTileSubnetLayerTest.java",
      "javaDoc": "The type Overlapping."
    },
    "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/ImgTileSubnetLayer/Overlapping/trainingTest/202004165141",
    "id": "2db685a1-6050-4e58-87b6-7709a73a2e31",
    "report_type": "Components",
    "display_name": "Comparative Training",
    "target": {
      "simpleName": "ImgTileSubnetLayer",
      "canonicalName": "com.simiacryptus.mindseye.layers.java.ImgTileSubnetLayer",
      "link": "https://github.com/SimiaCryptus/mindseye-java/tree/c9a1867488dc7e77a975f095285b5882c0486db6/src/main/java/com/simiacryptus/mindseye/layers/java/ImgTileSubnetLayer.java",
      "javaDoc": "The type Img tile subnet layer."
    }
  }