1. Test Modules
  2. Network Diagram
  3. Differential Validation
    1. Feedback Validation
    2. Learning Validation
  4. SubTests: PipelineNetwork
  5. Differential Validation
    1. Feedback Validation
    2. Learning Validation
    3. Total Accuracy
    4. Frozen and Alive Status
  6. Differential Validation
    1. Feedback Validation
    2. Learning Validation
    3. Total Accuracy
    4. Frozen and Alive Status

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

Test Modules

Network Diagram

This is a network apply the following layout:

LayerTests.java:203 executed in 0.08 seconds (0.000 gc):

    return Graphviz.fromGraph((Graph) TestUtil.toGraph(((DAGNetwork) layer).addRef())).height(400).width(600)
        .render(Format.PNG).toImage();
Logging
executing command [/bin/sh, -c, dot -Tsvg /tmp/GraphvizJava/DotEngine8634141835450800545/dotfile.dot -ooutfile.svg]

Returns

Result

Using Seed 5436066190168466432

Differential Validation

SingleDerivativeTester.java:101 executed in 0.00 seconds (0.000 gc):

        log.info(RefString.format("Inputs: %s", prettyPrint(inputPrototype)));
        log.info(RefString.format("Inputs Statistics: %s", printStats(inputPrototype)));
        log.info(RefString.format("Output: %s", outputPrototype.prettyPrint()));
        assert outputPrototype != null;
        log.info(RefString.format("Outputs Statistics: %s", outputPrototype.getScalarStatistics()));
      },
      outputPrototype.addRef(),
      RefUtil.addRef(inputPrototype)));
Logging
Inputs: [
[ [ 0.08, -1.72 ], [ 0.496, -0.852 ], [ 0.048, -0.804 ] ],
[ [ 0.7, -1.028 ], [ -0.608, 1.912 ], [ 1.524, 1.108 ] ],
[ [ -0.128, -0.384 ], [ 1.764, -1.688 ], [ 1.208, 0.028 ] ]
]
Inputs Statistics: {meanExponent=-0.2669065820393934, negative=8, min=-1.72, max=1.912, mean=0.09200000000000001, count=18, sum=1.6560000000000001, positive=10, stdDev=1.0837293635097893, zeros=0}
Output: [
[ [ -0.0979200005531311, -1.2142399549484253 ], [ 0.17785599827766418, -0.659887969493866 ], [ -0.040511999279260635, -0.568943977355957 ] ],
[ [ 0.26495999097824097, -0.8091999888420105 ], [ -0.1486079841852188, 1.4162238836288452 ], [ 0.844543993473053, 0.5805280208587646 ] ],
[ [ -0.0942080020904541, -0.2524159848690033 ], [ 0.7399040460586548, -1.4073920249938965 ], [ 0.6014079451560974, -0.13502399623394012 ] ]
]
Outputs Statistics: {meanExponent=-0.43580006780497943, negative=11, min=-1.4073920249938965, max=1.4162238836288452, mean=-0.04460711135632462, count=18, sum=-0.8029280044138432, positive=7, stdDev=0.7080625568086545, zeros=0}

Feedback Validation

We validate the agreement between the implemented derivative of the inputs apply finite difference estimations:

SingleDerivativeTester.java:117 executed in 0.44 seconds (0.000 gc):

        return testFeedback(
            statistics,
            component.addRef(),
            RefUtil.addRef(inputPrototype),
            outputPrototype.addRef());
      },
      outputPrototype.addRef(),
      RefUtil.addRef(inputPrototype),
      component.addRef()));
Logging
Feedback for input 0
Inputs Values: [
[ [ 0.08, -1.72 ], [ 0.496, -0.852 ], [ 0.048, -0.804 ] ],
[ [ 0.7, -1.028 ], [ -0.608, 1.912 ], [ 1.524, 1.108 ] ],
[ [ -0.128, -0.384 ], [ 1.764, -1.688 ], [ 1.208, 0.028 ] ]
]
Value Statistics: {meanExponent=-0.2669065820393934, negative=8, min=-1.72, max=1.912, mean=0.09200000000000001, count=18, sum=1.6560000000000001, positive=10, stdDev=1.0837293635097893, zeros=0}
Implemented Feedback: [ [ 0.4959999918937683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.4959999918937683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.4959999918937683, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.4959999918937683, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.4959999918937683, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.4959999918937683, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4959999918937683, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4959999918937683, ... ], ... ]
Implemented Statistics: {meanExponent=-0.6122800826072117, negative=9, min=-0.12800000607967377, max=0.699999988079071, mean=0.031888888114028506, count=324, sum=10.331999748945236, positive=27, stdDev=0.14163642166106605, zeros=288}
Measured Feedback: [ [ 0.49598515033721924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.49620866775512695, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.49598515033721924, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.4960596561431885, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.49561262130737305, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.4953145980834961, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49598515033721924, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4953145980834961, ... ], ... ]
Measured Statistics: {meanExponent=-0.6122010639494904, negative=9, min=-0.12874603271484375, max=0.7009506225585938, mean=0.03188825499864272, count=324, sum=10.331794619560242, positive=27, stdDev=0.1416466292262896, zeros=288}
Feedback Error: [ [ -1.4841556549072266E-5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 2.0867586135864258E-4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, -1.4841556549072266E-5, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 5.9664249420166016E-5, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, -3.8737058639526367E-4, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, -6.853938102722168E-4, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.4841556549072266E-5, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -6.853938102722168E-4, ... ], ... ]
Error Statistics: {meanExponent=-3.922312965976911, negative=21, min=-7.460266351699829E-4, max=9.506344795227051E-4, mean=-6.331153857855149E-7, count=324, sum=-2.0512938499450684E-4, positive=15, stdDev=1.2308817256247672E-4, zeros=288}

Returns

    {
      "absoluteTol" : {
        "count" : 324,
        "sum" : 0.00928923487663269,
        "min" : 0.0,
        "max" : 9.506344795227051E-4,
        "sumOfSquare" : 4.908956095395212E-6,
        "standardDeviation" : 1.1970423029406018E-4,
        "average" : 2.8670478014298427E-5
      },
      "relativeTol" : {
        "count" : 36,
        "sum" : 0.0202762054003084,
        "min" : 3.7834834648675913E-6,
        "max" : 0.002905733639937712,
        "sumOfSquare" : 2.927091617442802E-5,
        "standardDeviation" : 7.041699412831558E-4,
        "average" : 5.632279277863444E-4
      }
    }

Learning Validation

We validate the agreement between the implemented derivative of the internal weights apply finite difference estimations:

SingleDerivativeTester.java:133 executed in 0.15 seconds (0.000 gc):

        return testLearning(
            statistics,
            component.addRef(),
            RefUtil.addRef(inputPrototype),
            outputPrototype.addRef());
      },
      outputPrototype.addRef(),
      RefUtil.addRef(inputPrototype),
      component.addRef()));
Logging
Learning Gradient for weight setByCoord 0
Implemented Gradient: [ [ 0.07999999821186066, 0.699999988079071, -0.12800000607967377, 0.4959999918937683, -0.6079999804496765, 1.7640000581741333, 0.04800000041723251, 1.5240000486373901, ... ], [ -1.7200000286102295, -1.027999997138977, -0.3840000033378601, -0.8519999980926514, 1.9119999408721924, -1.687999963760376, -0.8040000200271606, 1.1080000400543213, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ] ]
Implemented Statistics: {meanExponent=-0.2669065808993532, negative=16, min=-1.7200000286102295, max=1.9119999408721924, mean=0.04600000039984783, count=72, sum=3.3120000287890434, positive=20, stdDev=0.7676917790751385, zeros=36}
Measured Gradient: [ [ 0.08001923561096191, 0.7003545761108398, -0.1280754804611206, 0.4960596561431885, -0.6082653999328613, 1.7642974853515625, 0.04798173904418945, 1.5240907669067383, ... ], [ -1.720041036605835, -1.0281801223754883, -0.3840029239654541, -0.852048397064209, 1.9121170043945312, -1.6880035400390625, -0.8040294051170349, 1.1080503463745117, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ] ]
Measured Statistics: {meanExponent=-0.26692847170808087, negative=16, min=-1.7201900482177734, max=1.913309097290039, mean=0.04599026093880335, count=72, sum=3.3112987875938416, positive=20, stdDev=0.7677913218964878, zeros=36}
Gradient Error: [ [ 1.9237399101257324E-5, 3.5458803176879883E-4, -7.547438144683838E-5, 5.9664249420166016E-5, -2.6541948318481445E-4, 2.974271774291992E-4, -1.8261373043060303E-5, 9.071826934814453E-5, ... ], [ -4.100799560546875E-5, -1.8012523651123047E-4, -2.9206275939941406E-6, -4.839897155761719E-5, 1.1706352233886719E-4, -3.5762786865234375E-6, -2.9385089874267578E-5, 5.030632019042969E-5, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ] ]
Error Statistics: {meanExponent=-4.088315210248869, negative=21, min=-6.62684440612793E-4, max=0.0013091564178466797, mean=-9.739461044470469E-6, count=72, sum=-7.012411952018738E-4, positive=15, stdDev=2.1421100111622805E-4, zeros=36}

java.lang.reflect.InvocationTargetException
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.simiacryptus.util.Util.throwException(Util.java:502)
at com.simiacryptus.notebook.MarkdownNotebookOutput.lambda$eval$dc58be99$1(MarkdownNotebookOutput.java:659)
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.SingleDerivativeTester.test(SingleDerivativeTester.java:133)
at com.simiacryptus.mindseye.test.unit.SingleDerivativeTester.test(SingleDerivativeTester.java:44)
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.derivativeTest(LayerTestBase.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
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(ArrayList.java:1257)
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(ArrayList.java:1257)
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(Thread.java:748)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor23.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.simiacryptus.ref.lang.RefUtil$RefWrapperHandler.invoke(RefUtil.java:238)
at com.sun.proxy.$Proxy46.get(Unknown Source)
at com.simiacryptus.notebook.MarkdownNotebookOutput.lambda$eval$dc58be99$1(MarkdownNotebookOutput.java:657)
... 73 more
Caused by: java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy53.apply(Unknown Source)
at com.simiacryptus.ref.wrappers.RefIntStream.lambda$mapToObj$10(RefIntStream.java:251)
at java.util.stream.IntPipeline$4$1.accept(IntPipeline.java:250)
at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:110)
at java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:693)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:546)
at com.simiacryptus.ref.wrappers.StreamWrapper.reduce(StreamWrapper.java:211)
at com.simiacryptus.ref.wrappers.RefStream.reduce(RefStream.java:477)
at com.simiacryptus.mindseye.test.unit.SingleDerivativeTester.testLearning(SingleDerivativeTester.java:257)
at com.simiacryptus.mindseye.test.unit.SingleDerivativeTester.lambda$test$fbe4b857$2(SingleDerivativeTester.java:134)
... 79 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.simiacryptus.ref.lang.RefUtil$RefWrapperHandler.invoke(RefUtil.java:238)
... 93 more
Caused by: java.lang.AssertionError: ToleranceStatistics{absoluteTol=9.1136e-05 +- 1.9410e-04 [0.0000e+00 - 1.3092e-03] (72#), relativeTol=2.3939e-04 +- 5.4575e-04 [1.0593e-06 - 3.3055e-03] (36#)}
at com.simiacryptus.mindseye.test.unit.SingleDerivativeTester.lambda$testLearning$7(SingleDerivativeTester.java:217)
... 97 more


SubTests: PipelineNetwork

[[3, 3, 2]]

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

    return new GsonBuilder().setPrettyPrinting().create().toJson(
        subLayer.getJson(new HashMap<>(), SerialPrecision.Double)
    );

Returns

    {
      "class": "com.simiacryptus.mindseye.layers.cudnn.conv.SimpleConvolutionLayer",
      "id": "13d6dd55-3881-4318-b803-0bc13e536164",
      "isFrozen": false,
      "name": "SimpleConvolutionLayer",
      "filter": [
        [
          [
            0.496
          ]
        ],
        [
          [
            0.08
          ]
        ],
        [
          [
            -0.128
          ]
        ],
        [
          [
            0.7
          ]
        ]
      ],
      "strideX": 1,
      "strideY": 1,
      "paddingX": 0,
      "paddingY": 0,
      "precision": "Float"
    }

Differential Validation

SingleDerivativeTester.java:101 executed in 0.00 seconds (0.000 gc):

        log.info(RefString.format("Inputs: %s", prettyPrint(inputPrototype)));
        log.info(RefString.format("Inputs Statistics: %s", printStats(inputPrototype)));
        log.info(RefString.format("Output: %s", outputPrototype.prettyPrint()));
        assert outputPrototype != null;
        log.info(RefString.format("Outputs Statistics: %s", outputPrototype.getScalarStatistics()));
      },
      outputPrototype.addRef(),
      RefUtil.addRef(inputPrototype)));
Logging
Inputs: [
[ [ -0.712, -0.176 ], [ 1.356, -0.768 ], [ 1.032, 1.64 ] ],
[ [ 1.048, 1.556 ], [ 1.512, -0.068 ], [ 0.3, 0.392 ] ],
[ [ -1.616, 0.788 ], [ 1.556, 1.612 ], [ 0.636, 0.092 ] ]
]
Inputs Statistics: {meanExponent=-0.17163537976054397, negative=5, min=-1.616, max=1.64, mean=0.5655555555555556, count=18, sum=10.180000000000001, positive=13, stdDev=0.9334125098691611, zeros=0}
Output: [
[ [ -0.36723199486732483, -0.032063987106084824 ], [ 0.6111359596252441, -0.7111679911613464 ], [ 0.6430720090866089, 1.0159039497375488 ] ],
[ [ 0.6442880034446716, 0.9550559520721436 ], [ 0.7445119619369507, -0.24113599956035614 ], [ 0.18016000092029572, 0.23599998652935028 ] ],
[ [ -0.7384960055351257, 0.7584480047225952 ], [ 0.9007359743118286, 0.9292319416999817 ], [ 0.32281598448753357, -0.01700800284743309 ] ]
]
Outputs Statistics: {meanExponent=-0.4107445982888, negative=6, min=-0.7384960055351257, max=1.0159039497375488, mean=0.32412531930539346, count=18, sum=5.834255747497082, positive=12, stdDev=0.5526431718101275, zeros=0}

Feedback Validation

We validate the agreement between the implemented derivative of the inputs apply finite difference estimations:

SingleDerivativeTester.java:117 executed in 0.26 seconds (0.000 gc):

        return testFeedback(
            statistics,
            component.addRef(),
            RefUtil.addRef(inputPrototype),
            outputPrototype.addRef());
      },
      outputPrototype.addRef(),
      RefUtil.addRef(inputPrototype),
      component.addRef()));
Logging
Feedback for input 0
Inputs Values: [
[ [ -0.712, -0.176 ], [ 1.356, -0.768 ], [ 1.032, 1.64 ] ],
[ [ 1.048, 1.556 ], [ 1.512, -0.068 ], [ 0.3, 0.392 ] ],
[ [ -1.616, 0.788 ], [ 1.556, 1.612 ], [ 0.636, 0.092 ] ]
]
Value Statistics: {meanExponent=-0.17163537976054397, negative=5, min=-1.616, max=1.64, mean=0.5655555555555556, count=18, sum=10.180000000000001, positive=13, stdDev=0.9334125098691611, zeros=0}
Implemented Feedback: [ [ 0.4959999918937683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.4959999918937683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.4959999918937683, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.4959999918937683, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.4959999918937683, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.4959999918937683, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4959999918937683, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4959999918937683, ... ], ... ]
Implemented Statistics: {meanExponent=-0.6122800826072117, negative=9, min=-0.12800000607967377, max=0.699999988079071, mean=0.031888888114028506, count=324, sum=10.331999748945236, positive=27, stdDev=0.14163642166106605, zeros=288}
Measured Feedback: [ [ 0.49620866775512695, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.49591064453125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.49591064453125, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.49591064453125, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.49591064453125, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.4965066909790039, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49591064453125, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49591064453125, ... ], ... ]
Measured Statistics: {meanExponent=-0.6124685951762467, negative=9, min=-0.12814998626708984, max=0.7009506225585938, mean=0.031895268662476245, count=324, sum=10.334067046642303, positive=27, stdDev=0.1416639559359766, zeros=288}
Feedback Error: [ [ 2.0867586135864258E-4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, -8.934736251831055E-5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, -8.934736251831055E-5, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, -8.934736251831055E-5, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, -8.934736251831055E-5, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 5.066990852355957E-4, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -8.934736251831055E-5, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -8.934736251831055E-5, ... ], ... ]
Error Statistics: {meanExponent=-3.9827500741485724, negative=22, min=-2.4145841598510742E-4, max=9.506344795227051E-4, mean=6.380548447738459E-6, count=324, sum=0.0020672976970672607, positive=14, stdDev=8.836737797307061E-5, zeros=288}

Returns

    {
      "absoluteTol" : {
        "count" : 324,
        "sum" : 0.006789356470108032,
        "min" : 0.0,
        "max" : 9.506344795227051E-4,
        "sumOfSquare" : 2.543239583818746E-6,
        "standardDeviation" : 8.60836864975019E-5,
        "average" : 2.095480392008652E-5
      },
      "relativeTol" : {
        "count" : 36,
        "sum" : 0.017099238824929232,
        "min" : 3.7834834648675913E-6,
        "max" : 0.0017454876651135996,
        "sumOfSquare" : 1.6625447654028583E-5,
        "standardDeviation" : 4.8601756810530227E-4,
        "average" : 4.749788562480342E-4
      }
    }

Learning Validation

We validate the agreement between the implemented derivative of the internal weights apply finite difference estimations:

SingleDerivativeTester.java:133 executed in 0.06 seconds (0.000 gc):

        return testLearning(
            statistics,
            component.addRef(),
            RefUtil.addRef(inputPrototype),
            outputPrototype.addRef());
      },
      outputPrototype.addRef(),
      RefUtil.addRef(inputPrototype),
      component.addRef()));
Logging
Learning Gradient for weight setByCoord 0
Weights: [ 0.496, 0.08, -0.128, 0.7 ]
Implemented Gradient: [ [ -0.7120000123977661, 1.0479999780654907, -1.6160000562667847, 1.3559999465942383, 1.5119999647140503, 1.555999994277954, 1.031999945640564, 0.30000001192092896, ... ], [ -0.17599999904632568, 1.555999994277954, 0.7879999876022339, -0.7680000066757202, -0.06800000369548798, 1.6119999885559082, 1.6399999856948853, 0.3919999897480011, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ] ]
Implemented Statistics: {meanExponent=-0.1716353818137057, negative=10, min=-1.6160000562667847, max=1.6399999856948853, mean=0.28277776907715535, count=72, sum=20.359999373555183, positive=26, stdDev=0.7180478557104568, zeros=36}
Measured Gradient: [ [ -0.711977481842041, 1.0478496551513672, -1.6164779663085938, 1.3566017150878906, 1.5121698379516602, 1.5562772750854492, 1.0317564010620117, 0.3001093864440918, ... ], [ -0.1761317253112793, 1.5556812286376953, 0.7879734039306641, -0.7683038711547852, -0.06794929504394531, 1.6117095947265625, 1.639723777770996, 0.39204955101013184, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ] ]
Measured Statistics: {meanExponent=-0.1716271973202337, negative=10, min=-1.6164779663085938, max=1.64031982421875, mean=0.28278989096482593, count=72, sum=20.36087214946747, positive=26, stdDev=0.7181144779140559, zeros=36}
Gradient Error: [ [ 2.2530555725097656E-5, -1.5032291412353516E-4, -4.7791004180908203E-4, 6.017684936523438E-4, 1.6987323760986328E-4, 2.772808074951172E-4, -2.435445785522461E-4, 1.093745231628418E-4, ... ], [ -1.3172626495361328E-4, -3.1876564025878906E-4, -2.658367156982422E-5, -3.038644790649414E-4, 5.0708651542663574E-5, -2.903938293457031E-4, -2.7620792388916016E-4, 4.9561262130737305E-5, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ] ]
Error Statistics: {meanExponent=-3.9522076328455893, negative=16, min=-4.7791004180908203E-4, max=6.017684936523438E-4, mean=1.2121887670622931E-5, count=72, sum=8.727759122848511E-4, positive=20, stdDev=1.6966156889796768E-4, zeros=36}

Returns

    {
      "absoluteTol" : {
        "count" : 396,
        "sum" : 0.01351386308670044,
        "min" : 0.0,
        "max" : 9.506344795227051E-4,
        "sumOfSquare" : 4.626342728575317E-6,
        "standardDeviation" : 1.0255781518117041E-4,
        "average" : 3.412591688560717E-5
      },
      "relativeTol" : {
        "count" : 72,
        "sum" : 0.0224693658608118,
        "min" : 2.1098945615357784E-6,
        "max" : 0.0017454876651135996,
        "sumOfSquare" : 1.877918244890725E-5,
        "standardDeviation" : 4.042665813246354E-4,
        "average" : 3.1207452584460833E-4
      }
    }

Total Accuracy

The overall agreement accuracy between the implemented derivative and the finite difference estimations:

SingleDerivativeTester.java:148 executed in 0.00 seconds (0.000 gc):

    //log.info(String.format("Component: %s\nInputs: %s\noutput=%s", component, Arrays.toStream(inputPrototype), outputPrototype));
    log.info(RefString.format("Finite-Difference Derivative Accuracy:"));
    log.info(RefString.format("absoluteTol: %s", statistics.absoluteTol));
    log.info(RefString.format("relativeTol: %s", statistics.relativeTol));
Logging
Finite-Difference Derivative Accuracy:
absoluteTol: 3.4126e-05 +- 1.0256e-04 [0.0000e+00 - 9.5063e-04] (396#)
relativeTol: 3.1207e-04 +- 4.0427e-04 [2.1099e-06 - 1.7455e-03] (72#)

Frozen and Alive Status

SingleDerivativeTester.java:156 executed in 0.02 seconds (0.000 gc):

    testFrozen(component.addRef(), RefUtil.addRef(inputPrototype));
    testUnFrozen(component.addRef(), RefUtil.addRef(inputPrototype));

[[3, 3, 2]]

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

    return new GsonBuilder().setPrettyPrinting().create().toJson(
        subLayer.getJson(new HashMap<>(), SerialPrecision.Double)
    );

Returns

    {
      "class": "com.simiacryptus.mindseye.layers.cudnn.ImgTileSubnetLayer",
      "id": "16531cb9-e4e4-4ec9-bcb8-0871cf49792f",
      "isFrozen": false,
      "name": "ImgTileSubnetLayer",
      "inner": {
        "class": "com.simiacryptus.mindseye.network.PipelineNetwork",
        "id": "e412e8ed-b4a6-4cb2-b497-1e509373c182",
        "isFrozen": false,
        "name": "PipelineNetwork",
        "inputs": [
          "51e5b4c7-2b30-4406-9e01-c4a9334f1f67"
        ],
        "nodes": {
          "4702b2b8-58c4-4ce9-9c90-97f52c5be567": "62b08dd8-da1f-44ff-9a18-358c43e6f510"
        },
        "layers": {
          "62b08dd8-da1f-44ff-9a18-358c43e6f510": {
            "class": "com.simiacryptus.mindseye.layers.cudnn.conv.SimpleConvolutionLayer",
            "id": "13d6dd55-3881-4318-b803-0bc13e536164",
            "isFrozen": false,
            "name": "SimpleConvolutionLayer",
            "filter": [
              [
                [
                  0.496
                ]
              ],
              [
                [
                  0.08
                ]
              ],
              [
                [
                  -0.128
                ]
              ],
              [
                [
                  0.7
                ]
              ]
            ],
            "strideX": 1,
            "strideY": 1,
            "paddingX": 0,
            "paddingY": 0,
            "precision": "Float"
          }
        },
        "links": {
          "4702b2b8-58c4-4ce9-9c90-97f52c5be567": [
            "51e5b4c7-2b30-4406-9e01-c4a9334f1f67"
          ]
        },
        "labels": {},
        "head": "4702b2b8-58c4-4ce9-9c90-97f52c5be567"
      },
      "height": 16384,
      "width": 16384,
      "strideX": 16384,
      "strideY": 16384,
      "precision": "Float",
      "parallel": false
    }

Differential Validation

SingleDerivativeTester.java:101 executed in 0.00 seconds (0.000 gc):

        log.info(RefString.format("Inputs: %s", prettyPrint(inputPrototype)));
        log.info(RefString.format("Inputs Statistics: %s", printStats(inputPrototype)));
        log.info(RefString.format("Output: %s", outputPrototype.prettyPrint()));
        assert outputPrototype != null;
        log.info(RefString.format("Outputs Statistics: %s", outputPrototype.getScalarStatistics()));
      },
      outputPrototype.addRef(),
      RefUtil.addRef(inputPrototype)));
Logging
Inputs: [
[ [ -0.556, -1.516 ], [ -1.228, -0.804 ], [ -0.408, -0.892 ] ],
[ [ -1.476, -0.636 ], [ 1.552, 0.148 ], [ -0.384, 1.62 ] ],
[ [ 1.704, -1.492 ], [ 1.876, -0.032 ], [ -1.572, -1.856 ] ]
]
Inputs Statistics: {meanExponent=-0.09680842723461468, negative=13, min=-1.856, max=1.876, mean=-0.3306666666666667, count=18, sum=-5.952000000000001, positive=5, stdDev=1.204328489703333, zeros=0}
Output: [
[ [ -0.3970560133457184, -0.9900320172309875 ], [ -0.673408031463623, -0.40561598539352417 ], [ -0.27372798323631287, -0.5721759796142578 ] ],
[ [ -0.782975971698761, -0.25627195835113525 ], [ 0.7816320061683655, -0.09505601972341537 ], [ -0.06086400896310806, 1.1831519603729248 ] ],
[ [ 0.7258239984512329, -1.262511968612671 ], [ 0.9279360175132751, -0.2625280022621155 ], [ -0.9281920194625854, -1.097983956336975 ] ]
]
Outputs Statistics: {meanExponent=-0.2992461070670125, negative=14, min=-1.262511968612671, max=1.1831519603729248, mean=-0.24665866295496622, count=18, sum=-4.439855933189392, positive=4, stdDev=0.7025002678096759, zeros=0}

Feedback Validation

We validate the agreement between the implemented derivative of the inputs apply finite difference estimations:

SingleDerivativeTester.java:117 executed in 0.25 seconds (0.000 gc):

        return testFeedback(
            statistics,
            component.addRef(),
            RefUtil.addRef(inputPrototype),
            outputPrototype.addRef());
      },
      outputPrototype.addRef(),
      RefUtil.addRef(inputPrototype),
      component.addRef()));
Logging
Feedback for input 0
Inputs Values: [
[ [ -0.556, -1.516 ], [ -1.228, -0.804 ], [ -0.408, -0.892 ] ],
[ [ -1.476, -0.636 ], [ 1.552, 0.148 ], [ -0.384, 1.62 ] ],
[ [ 1.704, -1.492 ], [ 1.876, -0.032 ], [ -1.572, -1.856 ] ]
]
Value Statistics: {meanExponent=-0.09680842723461468, negative=13, min=-1.856, max=1.876, mean=-0.3306666666666667, count=18, sum=-5.952000000000001, positive=5, stdDev=1.204328489703333, zeros=0}
Implemented Feedback: [ [ 0.4959999918937683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.4959999918937683, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.4959999918937683, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.4959999918937683, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.4959999918937683, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.4959999918937683, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4959999918937683, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.4959999918937683, ... ], ... ]
Implemented Statistics: {meanExponent=-0.6122800826072117, negative=9, min=-0.12800000607967377, max=0.699999988079071, mean=0.031888888114028506, count=324, sum=10.331999748945236, positive=27, stdDev=0.14163642166106605, zeros=288}
Measured Feedback: [ [ 0.49620866775512695, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.4953145980834961, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.4965066909790039, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.49591064453125, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.4953145980834961, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.4953145980834961, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49591064453125, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.49620866775512695, ... ], ... ]
Measured Statistics: {meanExponent=-0.612324576933639, negative=9, min=-0.12814998626708984, max=0.7009506225585938, mean=0.031891474385320404, count=324, sum=10.332837700843811, positive=27, stdDev=0.14162721931637637, zeros=288}
Feedback Error: [ [ 2.0867586135864258E-4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, -6.853938102722168E-4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 5.066990852355957E-4, 0.0, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, -8.934736251831055E-5, 0.0, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, -6.853938102722168E-4, 0.0, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, -6.853938102722168E-4, 0.0, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -8.934736251831055E-5, 0.0, ... ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0867586135864258E-4, ... ], ... ]
Error Statistics: {meanExponent=-3.6935544744274895, negative=19, min=-6.853938102722168E-4, max=9.506344795227051E-4, mean=2.5862712918976206E-6, count=324, sum=8.379518985748291E-4, positive=17, stdDev=1.2176958660175853E-4, zeros=288}

Returns

    {
      "absoluteTol" : {
        "count" : 324,
        "sum" : 0.010368883609771729,
        "min" : 0.0,
        "max" : 9.506344795227051E-4,
        "sumOfSquare" : 4.806384810596143E-6,
        "standardDeviation" : 1.1751743050594271E-4,
        "average" : 3.200272719065348E-5
      },
      "relativeTol" : {
        "count" : 36,
        "sum" : 0.025401076472938735,
        "min" : 1.281516307124707E-5,
        "max" : 0.002905733639937712,
        "sumOfSquare" : 3.530619565935237E-5,
        "standardDeviation" : 6.948933869692186E-4,
        "average" : 7.055854575816315E-4
      }
    }

Learning Validation

We validate the agreement between the implemented derivative of the internal weights apply finite difference estimations:

SingleDerivativeTester.java:133 executed in 0.00 seconds (0.000 gc):

        return testLearning(
            statistics,
            component.addRef(),
            RefUtil.addRef(inputPrototype),
            outputPrototype.addRef());
      },
      outputPrototype.addRef(),
      RefUtil.addRef(inputPrototype),
      component.addRef()));

Returns

    {
      "absoluteTol" : {
        "count" : 324,
        "sum" : 0.010368883609771729,
        "min" : 0.0,
        "max" : 9.506344795227051E-4,
        "sumOfSquare" : 4.806384810596143E-6,
        "standardDeviation" : 1.1751743050594271E-4,
        "average" : 3.200272719065348E-5
      },
      "relativeTol" : {
        "count" : 36,
        "sum" : 0.025401076472938735,
        "min" : 1.281516307124707E-5,
        "max" : 0.002905733639937712,
        "sumOfSquare" : 3.530619565935237E-5,
        "standardDeviation" : 6.948933869692186E-4,
        "average" : 7.055854575816315E-4
      }
    }

Total Accuracy

The overall agreement accuracy between the implemented derivative and the finite difference estimations:

SingleDerivativeTester.java:148 executed in 0.00 seconds (0.000 gc):

    //log.info(String.format("Component: %s\nInputs: %s\noutput=%s", component, Arrays.toStream(inputPrototype), outputPrototype));
    log.info(RefString.format("Finite-Difference Derivative Accuracy:"));
    log.info(RefString.format("absoluteTol: %s", statistics.absoluteTol));
    log.info(RefString.format("relativeTol: %s", statistics.relativeTol));
Logging
Finite-Difference Derivative Accuracy:
absoluteTol: 3.2003e-05 +- 1.1752e-04 [0.0000e+00 - 9.5063e-04] (324#)
relativeTol: 7.0559e-04 +- 6.9489e-04 [1.2815e-05 - 2.9057e-03] (36#)

Frozen and Alive Status

SingleDerivativeTester.java:156 executed in 0.01 seconds (0.000 gc):

    testFrozen(component.addRef(), RefUtil.addRef(inputPrototype));
    testUnFrozen(component.addRef(), RefUtil.addRef(inputPrototype));

LayerTests.java:425 executed in 0.06 seconds (0.059 gc):

    throwException(exceptions.addRef());
Logging
LayerBase: Conv [1/1 x 1/1, 4]+
Error

null
java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy51.run(Unknown Source)
at com.simiacryptus.notebook.NotebookOutput.lambda$run$6e9b516b$1(NotebookOutput.java:105)
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.run(NotebookOutput.java:104)
at com.simiacryptus.mindseye.test.unit.LayerTests.run(LayerTests.java:425)
at com.simiacryptus.mindseye.test.LayerTestBase.derivativeTest(LayerTestBase.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
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(ArrayList.java:1257)
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(ArrayList.java:1257)
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(Thread.java:748)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.simiacryptus.ref.lang.RefUtil$RefWrapperHandler.invoke(RefUtil.java:238)
... 73 more
Caused by: com.simiacryptus.mindseye.test.unit.TestError: Error in SingleDerivativeTester{probeSize=1.0E-4, tolerance=0.001, testFeedback=true, testLearning=true, verbose=true, verify=true} apply Conv [1/1 x 1/1, 4]+
at com.simiacryptus.mindseye.test.unit.LayerTests.run(LayerTests.java:377)
at com.simiacryptus.mindseye.test.unit.LayerTests.run(LayerTests.java:418)
... 66 more
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at com.simiacryptus.util.Util.throwException(Util.java:502)
at com.simiacryptus.notebook.MarkdownNotebookOutput.lambda$eval$dc58be99$1(MarkdownNotebookOutput.java:659)
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.SingleDerivativeTester.test(SingleDerivativeTester.java:133)
at com.simiacryptus.mindseye.test.unit.SingleDerivativeTester.test(SingleDerivativeTester.java:44)
at com.simiacryptus.mindseye.test.unit.LayerTests.run(LayerTests.java:369)
... 67 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor23.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.simiacryptus.ref.lang.RefUtil$RefWrapperHandler.invoke(RefUtil.java:238)
at com.sun.proxy.$Proxy46.get(Unknown Source)
at com.simiacryptus.notebook.MarkdownNotebookOutput.lambda$eval$dc58be99$1(MarkdownNotebookOutput.java:657)
... 73 more
Caused by: java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy53.apply(Unknown Source)
at com.simiacryptus.ref.wrappers.RefIntStream.lambda$mapToObj$10(RefIntStream.java:251)
at java.util.stream.IntPipeline$4$1.accept(IntPipeline.java:250)
at java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:110)
at java.util.Spliterator$OfInt.forEachRemaining(Spliterator.java:693)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:546)
at com.simiacryptus.ref.wrappers.StreamWrapper.reduce(StreamWrapper.java:211)
at com.simiacryptus.ref.wrappers.RefStream.reduce(RefStream.java:477)
at com.simiacryptus.mindseye.test.unit.SingleDerivativeTester.testLearning(SingleDerivativeTester.java:257)
at com.simiacryptus.mindseye.test.unit.SingleDerivativeTester.lambda$test$fbe4b857$2(SingleDerivativeTester.java:134)
... 79 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.simiacryptus.ref.lang.RefUtil$RefWrapperHandler.invoke(RefUtil.java:238)
... 93 more
Caused by: java.lang.AssertionError: ToleranceStatistics{absoluteTol=9.1136e-05 +- 1.9410e-04 [0.0000e+00 - 1.3092e-03] (72#), relativeTol=2.3939e-04 +- 5.4575e-04 [1.0593e-06 - 3.3055e-03] (36#)}
at com.simiacryptus.mindseye.test.unit.SingleDerivativeTester.lambda$testLearning$7(SingleDerivativeTester.java:217)
... 97 more


  {
    "result": "InvocationTargetException / InvocationTargetException / InvocationTargetException / AssertionError",
    "performance": {
      "execution_time": "1.850",
      "gc_time": "0.409"
    },
    "created_on": 1586746989945,
    "file_name": "derivativeTest",
    "report": {
      "simpleName": "Float",
      "canonicalName": "com.simiacryptus.mindseye.layers.cudnn.conv.ConvolutionLayerTest.Float",
      "link": "https://github.com/SimiaCryptus/mindseye-cudnn/tree/59d5b3318556370acb2d83ee6ec123ce0fc6974f/src/test/java/com/simiacryptus/mindseye/layers/cudnn/conv/ConvolutionLayerTest.java",
      "javaDoc": ""
    },
    "archive": "s3://code.simiacrypt.us/tests/com/simiacryptus/mindseye/layers/cudnn/conv/ConvolutionLayer/Float/derivativeTest/202004130309",
    "id": "2608872a-8aac-402a-bb00-695570caa2aa",
    "report_type": "Components",
    "display_name": "Derivative Validation",
    "target": {
      "simpleName": "ConvolutionLayer",
      "canonicalName": "com.simiacryptus.mindseye.layers.cudnn.conv.ConvolutionLayer",
      "link": "https://github.com/SimiaCryptus/mindseye-cudnn/tree/59d5b3318556370acb2d83ee6ec123ce0fc6974f/src/main/java/com/simiacryptus/mindseye/layers/cudnn/conv/ConvolutionLayer.java",
      "javaDoc": ""
    }
  }