1. Test Modules
  2. Network Diagram
  3. Differential 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
  7. Differential Validation
    1. Feedback Validation
    2. Learning Validation
    3. Total Accuracy
    4. Frozen and Alive Status
  8. Differential Validation
    1. Feedback Validation
    2. Learning Validation
    3. Total Accuracy
    4. Frozen and Alive Status
  9. 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.07 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/DotEngine1545734464234827155/dotfile.dot -ooutfile.svg]

Returns

Result

Using Seed 5759257157705867264

Differential Validation

SubTests: PipelineNetwork

[[1, 1, 3]]

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": "007d8fea-c898-4dd4-a221-89ebdbdbe110",
      "isFrozen": false,
      "name": "ImgTileSubnetLayer",
      "inner": {
        "class": "com.simiacryptus.mindseye.network.PipelineNetwork",
        "id": "e9e14ecb-ae9f-4e8d-979a-d23b8a989a64",
        "isFrozen": false,
        "name": "PipelineNetwork",
        "inputs": [
          "733656a9-a066-458c-95a1-97693cc6a993"
        ],
        "nodes": {
          "508fb733-61d5-44c2-b11f-9346049fc516": "c36400d7-5567-44aa-b062-a6c07ee1dec5"
        },
        "layers": {
          "c36400d7-5567-44aa-b062-a6c07ee1dec5": {
            "class": "com.simiacryptus.mindseye.layers.cudnn.conv.SimpleConvolutionLayer",
            "id": "3e1980bb-02a2-476b-9aa5-a0aa21c92a98",
            "isFrozen": false,
            "name": "SimpleConvolutionLayer",
            "filter": [
              [
                [
                  -0.804
                ]
              ],
              [
                [
                  -0.852
                ]
              ],
              [
                [
                  0.7
                ]
              ],
              [
                [
                  1.108
                ]
              ],
              [
                [
                  1.912
                ]
              ],
              [
                [
                  1.524
                ]
              ],
              [
                [
                  -1.72
                ]
              ],
              [
                [
                  -1.688
                ]
              ],
              [
                [
                  1.764
                ]
              ]
            ],
            "strideX": 1,
            "strideY": 1,
            "paddingX": 0,
            "paddingY": 0,
            "precision": "Double"
          }
        },
        "links": {
          "508fb733-61d5-44c2-b11f-9346049fc516": [
            "733656a9-a066-458c-95a1-97693cc6a993"
          ]
        },
        "labels": {},
        "head": "508fb733-61d5-44c2-b11f-9346049fc516"
      },
      "height": 16384,
      "width": 16384,
      "strideX": 16384,
      "strideY": 16384,
      "precision": "Double",
      "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.496, -0.608, 1.764 ] ]
]
Inputs Statistics: {meanExponent=-0.09137205448042225, negative=1, min=-0.608, max=1.764, mean=0.5506666666666667, count=3, sum=1.6520000000000001, positive=2, stdDev=0.9691361560115735, zeros=0}
Output: [
[ [ 1.354032, 2.075408, 3.28488 ] ]
]
Outputs Statistics: {meanExponent=0.3217506412105428, negative=0, min=1.354032, max=3.28488, mean=2.2381066666666665, count=3, sum=6.714319999999999, positive=3, stdDev=0.7966164455065909, 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.04 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.496, -0.608, 1.764 ] ]
]
Value Statistics: {meanExponent=-0.09137205448042225, negative=1, min=-0.608, max=1.764, mean=0.5506666666666667, count=3, sum=1.6520000000000001, positive=2, stdDev=0.9691361560115735, zeros=0}
Implemented Feedback: [ [ -0.804, 1.108, -1.72 ], [ -0.852, 1.912, -1.688 ], [ 0.7, 1.524, 1.764 ] ]
Implemented Statistics: {meanExponent=0.09991175209538534, negative=4, min=-1.72, max=1.912, mean=0.21600000000000003, count=9, sum=1.9440000000000002, positive=5, stdDev=1.3971335735076378, zeros=0}
Measured Feedback: [ [ -0.8040000000009151, 1.1080000000029955, -1.719999999996169 ], [ -0.8520000000000749, 1.9120000000016901, -1.6879999999996897 ], [ 0.700000000000145, 1.5240000000016352, 1.7639999999996547 ] ]
Measured Statistics: {meanExponent=0.09991175209555361, negative=4, min=-1.719999999996169, max=1.9120000000016901, mean=0.21600000000103017, count=9, sum=1.9440000000092716, positive=5, stdDev=1.3971335735076553, zeros=0}
Feedback Error: [ [ -9.15045816896054E-13, 2.9953817204386723E-12, 3.830935568771565E-12 ], [ -7.494005416219807E-14, 1.6902035326893383E-12, 3.1019631308026874E-13 ], [ 1.4499512701604544E-13, 1.6351364706679306E-12, -3.452793606584237E-13 ] ]
Error Statistics: {meanExponent=-12.163492496318133, negative=3, min=-9.15045816896054E-13, max=3.830935568771565E-12, mean=1.0301759445496828E-12, count=9, sum=9.271583500947145E-12, positive=6, stdDev=1.516826511262619E-12, zeros=0}

Returns

    {
      "absoluteTol" : {
        "count" : 9,
        "sum" : 1.1942113964380496E-11,
        "min" : 7.494005416219807E-14,
        "max" : 3.830935568771565E-12,
        "sumOfSquare" : 3.025822627798163E-23,
        "standardDeviation" : 1.2654475154526254E-12,
        "average" : 1.3269015515978329E-12
      },
      "relativeTol" : {
        "count" : 9,
        "sum" : 4.3501678320780025E-12,
        "min" : 4.397890502476219E-14,
        "max" : 1.3517065525427E-12,
        "sumOfSquare" : 3.904976761072112E-24,
        "standardDeviation" : 4.4750102672346216E-13,
        "average" : 4.833519813420003E-13
      }
    }

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" : 9,
        "sum" : 1.1942113964380496E-11,
        "min" : 7.494005416219807E-14,
        "max" : 3.830935568771565E-12,
        "sumOfSquare" : 3.025822627798163E-23,
        "standardDeviation" : 1.2654475154526254E-12,
        "average" : 1.3269015515978329E-12
      },
      "relativeTol" : {
        "count" : 9,
        "sum" : 4.3501678320780025E-12,
        "min" : 4.397890502476219E-14,
        "max" : 1.3517065525427E-12,
        "sumOfSquare" : 3.904976761072112E-24,
        "standardDeviation" : 4.4750102672346216E-13,
        "average" : 4.833519813420003E-13
      }
    }

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: 1.3269e-12 +- 1.2654e-12 [7.4940e-14 - 3.8309e-12] (9#)
relativeTol: 4.8335e-13 +- 4.4750e-13 [4.3979e-14 - 1.3517e-12] (9#)

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));

[[1, 1, 3]]

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": "212771cf-bedf-4bda-8232-4e772b57022f",
      "isFrozen": false,
      "name": "SimpleConvolutionLayer",
      "filter": [
        [
          [
            -0.384
          ]
        ],
        [
          [
            0.524
          ]
        ],
        [
          [
            -0.128
          ]
        ],
        [
          [
            0.048
          ]
        ],
        [
          [
            0.028
          ]
        ],
        [
          [
            -1.028
          ]
        ],
        [
          [
            -0.608
          ]
        ],
        [
          [
            0.08
          ]
        ],
        [
          [
            1.208
          ]
        ]
      ],
      "strideX": 1,
      "strideY": 1,
      "paddingX": 0,
      "paddingY": 0,
      "precision": "Double"
    }

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.048, 1.524, 1.208 ] ]
]
Inputs Statistics: {meanExponent=-0.35123562044523937, negative=0, min=0.048, max=1.524, mean=0.9266666666666667, count=3, sum=2.7800000000000002, positive=3, stdDev=0.6345630167463451, zeros=0}
Output: [
[ [ 0.6255200000000001, -1.196848, 1.5519999999999998 ] ]
]
Outputs Statistics: {meanExponent=0.021723971814320776, negative=1, min=-1.196848, max=1.5519999999999998, mean=0.32689066666666666, count=3, sum=0.980672, positive=2, stdDev=1.1419065755193032, 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.03 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.048, 1.524, 1.208 ] ]
]
Value Statistics: {meanExponent=-0.35123562044523937, negative=0, min=0.048, max=1.524, mean=0.9266666666666667, count=3, sum=2.7800000000000002, positive=3, stdDev=0.6345630167463451, zeros=0}
Implemented Feedback: [ [ -0.384, 0.048, -0.608 ], [ 0.524, 0.028, 0.08 ], [ -0.128, -1.028, 1.208 ] ]
Implemented Statistics: {meanExponent=-0.6310749594526688, negative=4, min=-1.028, max=1.208, mean=-0.02888888888888889, count=9, sum=-0.26, positive=5, stdDev=0.6079203976480335, zeros=0}
Measured Feedback: [ [ -0.38399999999993994, 0.047999999999159826, -0.6079999999997199 ], [ 0.5239999999995248, 0.027999999998584713, 0.08000000000008001 ], [ -0.12800000000035006, -1.028000000000695, 1.2080000000014302 ] ]
Measured Statistics: {meanExponent=-0.6310749594557561, negative=4, min=-1.028000000000695, max=1.2080000000014302, mean=-0.028888888889102817, count=9, sum=-0.26000000000192536, positive=5, stdDev=0.6079203976483837, zeros=0}
Feedback Error: [ [ 6.006306563222097E-14, -8.40175151672895E-13, 2.80109269112927E-13 ], [ -4.75175454539567E-13, -1.4152880256634859E-12, 8.000544671205034E-14 ], [ -3.5005331966431186E-13, -6.94999613415348E-13, 1.4301893003221267E-12 ] ]
Error Statistics: {meanExponent=-12.397484946442125, negative=5, min=-1.4152880256634859E-12, max=1.4301893003221267E-12, mean=-2.1392494257514252E-13, count=9, sum=-1.9253244831762828E-12, positive=4, stdDev=7.646585392027388E-13, zeros=0}

Returns

    {
      "absoluteTol" : {
        "count" : 9,
        "sum" : 5.626058646734933E-12,
        "min" : 6.006306563222097E-14,
        "max" : 1.4301893003221267E-12,
        "sumOfSquare" : 5.674199063683E-24,
        "standardDeviation" : 4.895860644733416E-13,
        "average" : 6.251176274149925E-13
      },
      "relativeTol" : {
        "count" : 9,
        "sum" : 3.758422720623397E-11,
        "min" : 7.820711670862717E-14,
        "max" : 2.5273000458915258E-11,
        "sumOfSquare" : 7.181682415283391E-22,
        "standardDeviation" : 7.896662866863706E-12,
        "average" : 4.176025245137108E-12
      }
    }

Learning Validation

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

SingleDerivativeTester.java:133 executed in 0.04 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.384, 0.524, -0.128, 0.048, 0.028, -1.028, -0.608, 0.08, 1.208 ]
Implemented Gradient: [ [ 0.048, 0.0, 0.0 ], [ 1.524, 0.0, 0.0 ], [ 1.208, 0.0, 0.0 ], [ 0.0, 0.048, 0.0 ], [ 0.0, 1.524, 0.0 ], [ 0.0, 1.208, 0.0 ], [ 0.0, 0.0, 0.048 ], [ 0.0, 0.0, 1.524 ], [ 0.0, 0.0, 1.208 ] ]
Implemented Statistics: {meanExponent=-0.35123562044523937, negative=0, min=0.0, max=1.524, mean=0.3088888888888889, count=27, sum=8.34, positive=9, stdDev=0.5701298963968054, zeros=18}
Measured Gradient: [ [ 0.04800000000027005, 0.0, 0.0 ], [ 1.5239999999994147, 0.0, 0.0 ], [ 1.2079999999992097, 0.0, 0.0 ], [ 0.0, 0.047999999999159826, 0.0 ], [ 0.0, 1.5239999999994147, 0.0 ], [ 0.0, 1.2079999999992097, 0.0 ], [ 0.0, 0.0, 0.04800000000138027 ], [ 0.0, 0.0, 1.5240000000016352 ], [ 0.0, 0.0, 1.2080000000014302 ] ]
Measured Statistics: {meanExponent=-0.35123562044441625, negative=0, min=0.0, max=1.5240000000016352, mean=0.3088888888889305, count=27, sum=8.340000000001124, positive=9, stdDev=0.5701298963968197, zeros=18}
Gradient Error: [ [ 2.700478729522615E-13, 0.0, 0.0 ], [ -5.853095785823825E-13, 0.0, 0.0 ], [ -7.902567489281864E-13, 0.0, 0.0 ], [ 0.0, -8.40175151672895E-13, 0.0 ], [ 0.0, -5.853095785823825E-13, 0.0 ], [ 0.0, -7.902567489281864E-13, 0.0 ], [ 0.0, 0.0, 1.380270897577418E-12 ], [ 0.0, 0.0, 1.6351364706679306E-12 ], [ 0.0, 0.0, 1.4301893003221267E-12 ] ]
Error Statistics: {meanExponent=-12.089441095023746, negative=5, min=-8.40175151672895E-13, max=1.6351364706679306E-12, mean=4.164210128984088E-14, count=27, sum=1.1243367348257038E-12, positive=4, stdDev=5.865923855170016E-13, zeros=18}

Returns

    {
      "absoluteTol" : {
        "count" : 36,
        "sum" : 1.3933010994948702E-11,
        "min" : 0.0,
        "max" : 1.6351364706679306E-12,
        "sumOfSquare" : 1.501146573003472E-23,
        "standardDeviation" : 5.169085238101305E-13,
        "average" : 3.870280831930195E-13
      },
      "relativeTol" : {
        "count" : 18,
        "sum" : 6.56935475494223E-11,
        "min" : 7.820711670862717E-14,
        "max" : 2.5273000458915258E-11,
        "sumOfSquare" : 1.0103233425699542E-21,
        "standardDeviation" : 6.5428733203309114E-12,
        "average" : 3.649641530523461E-12
      }
    }

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.8703e-13 +- 5.1691e-13 [0.0000e+00 - 1.6351e-12] (36#)
relativeTol: 3.6496e-12 +- 6.5429e-12 [7.8207e-14 - 2.5273e-11] (18#)

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));

[[1, 1, 3]]

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": "c30028a1-7ed2-4a75-a1c3-5c83992c373c",
      "isFrozen": false,
      "name": "ImgTileSubnetLayer",
      "inner": {
        "class": "com.simiacryptus.mindseye.network.PipelineNetwork",
        "id": "c6b2fff7-ab64-4051-98bf-4b2c90cd6df8",
        "isFrozen": false,
        "name": "PipelineNetwork",
        "inputs": [
          "5e4f9a39-c210-43f8-bb78-78ad520a856c"
        ],
        "nodes": {
          "cca21f26-5da6-427d-9fd9-6be82e56a1bf": "7f3419e9-107e-4635-b00b-186d25029aea"
        },
        "layers": {
          "7f3419e9-107e-4635-b00b-186d25029aea": {
            "class": "com.simiacryptus.mindseye.layers.cudnn.conv.SimpleConvolutionLayer",
            "id": "212771cf-bedf-4bda-8232-4e772b57022f",
            "isFrozen": false,
            "name": "SimpleConvolutionLayer",
            "filter": [
              [
                [
                  -0.384
                ]
              ],
              [
                [
                  0.524
                ]
              ],
              [
                [
                  -0.128
                ]
              ],
              [
                [
                  0.048
                ]
              ],
              [
                [
                  0.028
                ]
              ],
              [
                [
                  -1.028
                ]
              ],
              [
                [
                  -0.608
                ]
              ],
              [
                [
                  0.08
                ]
              ],
              [
                [
                  1.208
                ]
              ]
            ],
            "strideX": 1,
            "strideY": 1,
            "paddingX": 0,
            "paddingY": 0,
            "precision": "Double"
          }
        },
        "links": {
          "cca21f26-5da6-427d-9fd9-6be82e56a1bf": [
            "5e4f9a39-c210-43f8-bb78-78ad520a856c"
          ]
        },
        "labels": {},
        "head": "cca21f26-5da6-427d-9fd9-6be82e56a1bf"
      },
      "height": 16384,
      "width": 16384,
      "strideX": 16384,
      "strideY": 16384,
      "precision": "Double",
      "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: [
[ [ -1.72, -1.028, -0.384 ] ]
]
Inputs Statistics: {meanExponent=-0.056049071355221115, negative=3, min=-1.72, max=-0.384, mean=-1.044, count=3, sum=-3.132, positive=0, stdDev=0.5455370442661676, zeros=0}
Output: [
[ [ 0.17095999999999992, 0.283408, 0.49964800000000004 ] ]
]
Outputs Statistics: {meanExponent=-0.5386764107363906, negative=0, min=0.17095999999999992, max=0.49964800000000004, mean=0.3180053333333333, count=3, sum=0.954016, positive=3, stdDev=0.13639814744913356, 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.03 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: [
[ [ -1.72, -1.028, -0.384 ] ]
]
Value Statistics: {meanExponent=-0.056049071355221115, negative=3, min=-1.72, max=-0.384, mean=-1.044, count=3, sum=-3.132, positive=0, stdDev=0.5455370442661676, zeros=0}
Implemented Feedback: [ [ -0.384, 0.048, -0.608 ], [ 0.524, 0.028, 0.08 ], [ -0.128, -1.028, 1.208 ] ]
Implemented Statistics: {meanExponent=-0.6310749594526688, negative=4, min=-1.028, max=1.208, mean=-0.02888888888888889, count=9, sum=-0.26, positive=5, stdDev=0.6079203976480335, zeros=0}
Measured Feedback: [ [ -0.38399999999993994, 0.04800000000027005, -0.6079999999997199 ], [ 0.52400000000008, 0.028000000000250047, 0.08000000000008001 ], [ -0.1280000000000725, -1.0279999999995848, 1.2079999999997648 ] ]
Measured Statistics: {meanExponent=-0.631074959451942, negative=4, min=-1.0279999999995848, max=1.2079999999997648, mean=-0.02888888888876358, count=9, sum=-0.25999999999887224, positive=5, stdDev=0.6079203976478884, zeros=0}
Feedback Error: [ [ 6.006306563222097E-14, 2.700478729522615E-13, 2.80109269112927E-13 ], [ 7.993605777301127E-14, 2.5004651127424893E-13, 8.000544671205034E-14 ], [ -7.249756350802272E-14, 4.1522341120980855E-13, -2.3514523661560816E-13 ] ]
Error Statistics: {meanExponent=-12.809866639443877, negative=2, min=-2.3514523661560816E-13, max=4.1522341120980855E-13, mean=1.253098705047664E-13, count=9, sum=1.1277888345428977E-12, positive=7, stdDev=1.891340260354767E-13, zeros=0}

Returns

    {
      "absoluteTol" : {
        "count" : 9,
        "sum" : 1.7430744347901594E-12,
        "min" : 6.006306563222097E-14,
        "max" : 4.1522341120980855E-13,
        "sumOfSquare" : 4.632681910527873E-25,
        "standardDeviation" : 1.1817047918710191E-13,
        "average" : 1.936749371989066E-13
      },
      "relativeTol" : {
        "count" : 9,
        "sum" : 8.745462835555176E-12,
        "min" : 7.627486428721867E-14,
        "max" : 4.465116272734508E-12,
        "sumOfSquare" : 2.8295713663968297E-23,
        "standardDeviation" : 1.4831493967007508E-12,
        "average" : 9.717180928394641E-13
      }
    }

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" : 9,
        "sum" : 1.7430744347901594E-12,
        "min" : 6.006306563222097E-14,
        "max" : 4.1522341120980855E-13,
        "sumOfSquare" : 4.632681910527873E-25,
        "standardDeviation" : 1.1817047918710191E-13,
        "average" : 1.936749371989066E-13
      },
      "relativeTol" : {
        "count" : 9,
        "sum" : 8.745462835555176E-12,
        "min" : 7.627486428721867E-14,
        "max" : 4.465116272734508E-12,
        "sumOfSquare" : 2.8295713663968297E-23,
        "standardDeviation" : 1.4831493967007508E-12,
        "average" : 9.717180928394641E-13
      }
    }

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: 1.9367e-13 +- 1.1817e-13 [6.0063e-14 - 4.1522e-13] (9#)
relativeTol: 9.7172e-13 +- 1.4831e-12 [7.6275e-14 - 4.4651e-12] (9#)

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));

[[1, 1, 3]]

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": "3e1980bb-02a2-476b-9aa5-a0aa21c92a98",
      "isFrozen": false,
      "name": "SimpleConvolutionLayer",
      "filter": [
        [
          [
            -0.804
          ]
        ],
        [
          [
            -0.852
          ]
        ],
        [
          [
            0.7
          ]
        ],
        [
          [
            1.108
          ]
        ],
        [
          [
            1.912
          ]
        ],
        [
          [
            1.524
          ]
        ],
        [
          [
            -1.72
          ]
        ],
        [
          [
            -1.688
          ]
        ],
        [
          [
            1.764
          ]
        ]
      ],
      "strideX": 1,
      "strideY": 1,
      "paddingX": 0,
      "paddingY": 0,
      "precision": "Double"
    }

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.852, 1.912, -1.688 ] ]
]
Inputs Statistics: {meanExponent=0.1464333083321392, negative=2, min=-1.688, max=1.912, mean=-0.2093333333333333, count=3, sum=-0.6279999999999999, positive=1, stdDev=1.5383465871585058, zeros=0}
Output: [
[ [ -2.125616, 0.1392159999999995, -4.739648 ] ]
]
Outputs Statistics: {meanExponent=0.04897335027754579, negative=2, min=-4.739648, max=0.1392159999999995, mean=-2.242016, count=3, sum=-6.7260480000000005, positive=1, stdDev=1.993487764802182, 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.02 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.852, 1.912, -1.688 ] ]
]
Value Statistics: {meanExponent=0.1464333083321392, negative=2, min=-1.688, max=1.912, mean=-0.2093333333333333, count=3, sum=-0.6279999999999999, positive=1, stdDev=1.5383465871585058, zeros=0}
Implemented Feedback: [ [ -0.804, 1.108, -1.72 ], [ -0.852, 1.912, -1.688 ], [ 0.7, 1.524, 1.764 ] ]
Implemented Statistics: {meanExponent=0.09991175209538534, negative=4, min=-1.72, max=1.912, mean=0.21600000000000003, count=9, sum=1.9440000000000002, positive=5, stdDev=1.3971335735076378, zeros=0}
Measured Feedback: [ [ -0.8039999999986946, 1.1080000000029955, -1.72000000000061 ], [ -0.8520000000000749, 1.9120000000016901, -1.6879999999996897 ], [ 0.700000000000145, 1.5239999999999698, 1.7639999999996547 ] ]
Measured Statistics: {meanExponent=0.09991175209549219, negative=4, min=-1.72000000000061, max=1.9120000000016901, mean=0.21600000000059844, count=9, sum=1.9440000000053859, positive=5, stdDev=1.3971335735079857, zeros=0}
Feedback Error: [ [ 1.305400232354259E-12, 2.9953817204386723E-12, -6.09956529729061E-13 ], [ -7.494005416219807E-14, 1.6902035326893383E-12, 3.1019631308026874E-13 ], [ 1.4499512701604544E-13, -3.019806626980426E-14, -3.452793606584237E-13 ] ]
Error Statistics: {meanExponent=-12.427634717284143, negative=4, min=-6.09956529729061E-13, max=2.9953817204386723E-12, mean=5.984225460843441E-13, count=9, sum=5.385802914759097E-12, positive=5, stdDev=1.1017774319612763E-12, zeros=0}

Returns

    {
      "absoluteTol" : {
        "count" : 9,
        "sum" : 7.506550936398071E-12,
        "min" : 3.019806626980426E-14,
        "max" : 2.9953817204386723E-12,
        "sumOfSquare" : 1.4148207479171282E-23,
        "standardDeviation" : 9.361436549028408E-13,
        "average" : 8.340612151553412E-13
      },
      "relativeTol" : {
        "count" : 9,
        "sum" : 3.1300398425145637E-12,
        "min" : 9.907502057022492E-15,
        "max" : 1.3517065525427E-12,
        "sumOfSquare" : 2.7437380494735083E-24,
        "standardDeviation" : 4.288441690780685E-13,
        "average" : 3.4778220472384043E-13
      }
    }

Learning Validation

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

SingleDerivativeTester.java:133 executed in 0.03 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.804, -0.852, 0.7, 1.108, 1.912, 1.524, -1.72, -1.688, 1.764 ]
Implemented Gradient: [ [ -0.852, 0.0, 0.0 ], [ 1.912, 0.0, 0.0 ], [ -1.688, 0.0, 0.0 ], [ 0.0, -0.852, 0.0 ], [ 0.0, 1.912, 0.0 ], [ 0.0, -1.688, 0.0 ], [ 0.0, 0.0, -0.852 ], [ 0.0, 0.0, 1.912 ], [ 0.0, 0.0, -1.688 ] ]
Implemented Statistics: {meanExponent=0.1464333083321392, negative=6, min=-1.688, max=1.912, mean=-0.06977777777777779, count=27, sum=-1.8840000000000001, positive=3, stdDev=0.8936300225954534, zeros=18}
Measured Gradient: [ [ -0.8520000000000749, 0.0, 0.0 ], [ 1.9120000000016901, 0.0, 0.0 ], [ -1.6879999999996897, 0.0, 0.0 ], [ 0.0, -0.8520000000000749, 0.0 ], [ 0.0, 1.9120000000016901, 0.0 ], [ 0.0, -1.6879999999996897, 0.0 ], [ 0.0, 0.0, -0.8520000000000749 ], [ 0.0, 0.0, 1.9119999999972492 ], [ 0.0, 0.0, -1.6879999999996897 ] ]
Measured Statistics: {meanExponent=0.14643330833214122, negative=6, min=-1.6879999999996897, max=1.9120000000016901, mean=-0.06977777777772831, count=27, sum=-1.8839999999986645, positive=3, stdDev=0.89363002259545, zeros=18}
Gradient Error: [ [ -7.494005416219807E-14, 0.0, 0.0 ], [ 1.6902035326893383E-12, 0.0, 0.0 ], [ 3.1019631308026874E-13, 0.0, 0.0 ], [ 0.0, -7.494005416219807E-14, 0.0 ], [ 0.0, 1.6902035326893383E-12, 0.0 ], [ 0.0, 3.1019631308026874E-13, 0.0 ], [ 0.0, 0.0, -7.494005416219807E-14 ], [ 0.0, 0.0, -2.750688565811288E-12 ], [ 0.0, 0.0, 3.1019631308026874E-13 ] ]
Error Statistics: {meanExponent=-12.445069851664979, negative=4, min=-2.750688565811288E-12, max=1.6902035326893383E-12, mean=4.9462491715614846E-14, count=27, sum=1.3354872763216008E-12, positive=5, stdDev=7.076125827104438E-13, zeros=18}

Returns

    {
      "absoluteTol" : {
        "count" : 36,
        "sum" : 1.4793055669315436E-11,
        "min" : 0.0,
        "max" : 2.9953817204386723E-12,
        "sumOfSquare" : 2.7733584322186556E-23,
        "standardDeviation" : 7.755795023579573E-13,
        "average" : 4.109182130365399E-13
      },
      "relativeTol" : {
        "count" : 18,
        "sum" : 5.140944927301413E-12,
        "min" : 9.907502057022492E-15,
        "max" : 1.3517065525427E-12,
        "sumOfSquare" : 3.68301836526182E-24,
        "standardDeviation" : 3.507708259137904E-13,
        "average" : 2.856080515167452E-13
      }
    }

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: 4.1092e-13 +- 7.7558e-13 [0.0000e+00 - 2.9954e-12] (36#)
relativeTol: 2.8561e-13 +- 3.5077e-13 [9.9075e-15 - 1.3517e-12] (18#)

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));

[[1, 1, 3], [1, 1, 3]]

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.ImgConcatLayer",
      "id": "c5a25024-2f2d-47cb-86a9-2321bb9c7ac3",
      "isFrozen": false,
      "name": "ImgConcatLayer",
      "maxBands": 6,
      "precision": "Double",
      "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.804, 1.108, 0.028 ] ]
],
[
[ [ -0.712, 1.048, -1.616 ] ]
]
Inputs Statistics: {meanExponent=-0.5343487198389728, negative=1, min=-0.804, max=1.108, mean=0.11066666666666669, count=3, sum=0.3320000000000001, positive=2, stdDev=0.7827563832735928, zeros=0},
{meanExponent=0.027094210907710525, negative=2, min=-1.616, max=1.048, mean=-0.4266666666666667, count=3, sum=-1.28, positive=1, stdDev=1.1061299903517468, zeros=0}
Output: [
[ [ -0.804, 1.108, 0.028, -0.712, 1.048, -1.616 ] ]
]
Outputs Statistics: {meanExponent=-0.25362725446563117, negative=3, min=-1.616, max=1.108, mean=-0.158, count=6, sum=-0.948, positive=3, stdDev=0.9951368415114242, 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.08 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.804, 1.108, 0.028 ] ]
]
Value Statistics: {meanExponent=-0.5343487198389728, negative=1, min=-0.804, max=1.108, mean=0.11066666666666669, count=3, sum=0.3320000000000001, positive=2, stdDev=0.7827563832735928, zeros=0}
Implemented Feedback: [ [ 1.0, 0.0, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, 1.0, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 1.0, 0.0, 0.0, 0.0 ] ]
Implemented Statistics: {meanExponent=0.0, negative=0, min=0.0, max=1.0, mean=0.16666666666666666, count=18, sum=3.0, positive=3, stdDev=0.37267799624996495, zeros=15}
Measured Feedback: [ [ 0.9999999999998899, 0.0, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, 0.9999999999998899, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.999999999999994, 0.0, 0.0, 0.0 ] ]
Measured Statistics: {meanExponent=-3.275498961392841E-14, negative=0, min=0.0, max=0.999999999999994, mean=0.16666666666665408, count=18, sum=2.9999999999997735, positive=3, stdDev=0.37267799624993686, zeros=15}
Feedback Error: [ [ -1.1013412404281553E-13, 0.0, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, -1.1013412404281553E-13, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, 0.0, -5.995204332975845E-15, 0.0, 0.0, 0.0 ] ]
Error Statistics: {meanExponent=-13.379450735480562, negative=3, min=-1.1013412404281553E-13, max=0.0, mean=-1.2570191801033718E-14, count=18, sum=-2.262634524186069E-13, positive=0, stdDev=3.45211835430916E-14, zeros=15}
Feedback for input 1
Inputs Values: [
[ [ -0.712, 1.048, -1.616 ] ]
]
Value Statistics: {meanExponent=0.027094210907710525, negative=2, min=-1.616, max=1.048, mean=-0.4266666666666667, count=3, sum=-1.28, positive=1, stdDev=1.1061299903517468, zeros=0}
Implemented Feedback: [ [ 0.0, 0.0, 0.0, 1.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0, 0.0, 1.0, 0.0 ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] ]
Implemented Statistics: {meanExponent=0.0, negative=0, min=0.0, max=1.0, mean=0.16666666666666666, count=18, sum=3.0, positive=3, stdDev=0.37267799624996495, zeros=15}
Measured Feedback: [ [ 0.0, 0.0, 0.0, 0.9999999999998899, 0.0, 0.0 ], [ 0.0, 0.0, 0.0, 0.0, 0.9999999999998899, 0.0 ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.9999999999998899 ] ]
Measured Statistics: {meanExponent=-4.7830642341045674E-14, negative=0, min=0.0, max=0.9999999999998899, mean=0.1666666666666483, count=18, sum=2.9999999999996696, positive=3, stdDev=0.3726779962499239, zeros=15}
Feedback Error: [ [ 0.0, 0.0, 0.0, -1.1013412404281553E-13, 0.0, 0.0 ], [ 0.0, 0.0, 0.0, 0.0, -1.1013412404281553E-13, 0.0 ], [ 0.0, 0.0, 0.0, 0.0, 0.0, -1.1013412404281553E-13 ] ]
Error Statistics: {meanExponent=-12.958078098036827, negative=3, min=-1.1013412404281553E-13, max=0.0, mean=-1.8355687340469256E-14, count=18, sum=-3.304023721284466E-13, positive=0, stdDev=4.104456466702158E-14, zeros=15}

Returns

    {
      "absoluteTol" : {
        "count" : 36,
        "sum" : 5.566658245470535E-13,
        "min" : 0.0,
        "max" : 1.1013412404281553E-13,
        "sumOfSquare" : 6.068356886838552E-26,
        "standardDeviation" : 3.8033566630277717E-14,
        "average" : 1.5462939570751485E-14
      },
      "relativeTol" : {
        "count" : 6,
        "sum" : 2.7833291227354194E-13,
        "min" : 2.9976021664879317E-15,
        "max" : 5.50670620214108E-14,
        "sumOfSquare" : 1.517089221709805E-26,
        "standardDeviation" : 1.9405141964550633E-14,
        "average" : 4.638881871225699E-14
      }
    }

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" : 36,
        "sum" : 5.566658245470535E-13,
        "min" : 0.0,
        "max" : 1.1013412404281553E-13,
        "sumOfSquare" : 6.068356886838552E-26,
        "standardDeviation" : 3.8033566630277717E-14,
        "average" : 1.5462939570751485E-14
      },
      "relativeTol" : {
        "count" : 6,
        "sum" : 2.7833291227354194E-13,
        "min" : 2.9976021664879317E-15,
        "max" : 5.50670620214108E-14,
        "sumOfSquare" : 1.517089221709805E-26,
        "standardDeviation" : 1.9405141964550633E-14,
        "average" : 4.638881871225699E-14
      }
    }

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: 1.5463e-14 +- 3.8034e-14 [0.0000e+00 - 1.1013e-13] (36#)
relativeTol: 4.6389e-14 +- 1.9405e-14 [2.9976e-15 - 5.5067e-14] (6#)

Frozen and Alive Status

SingleDerivativeTester.java:156 executed in 0.00 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.055 gc):

    throwException(exceptions.addRef());
Logging
LayerBase: Conv [1/1 x 1/1, 18]+
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.GeneratedMethodAccessor29.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, 18]+
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.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy54.accept(Unknown Source)
at java.util.stream.Streams$RangeIntSpliterator.forEachRe

...skipping 258 bytes...

Layer.java:302)
at com.simiacryptus.mindseye.layers.cudnn.ImgConcatLayer$Accumulator.accept(ImgConcatLayer.java:266)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accum(CountingResult.java:115)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:108)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:76)
at com.simiacryptus.mindseye.lang.Result.accumulate(Result.java:136)
at com.simiacryptus.mindseye.test.SimpleEval.checkedFeedback(SimpleEval.java:171)
at com.simiacryptus.mindseye.test.SimpleEval.setResult(SimpleEval.java:87)
at com.simiacryptus.mindseye.test.SimpleEval.eval(SimpleEval.java:121)
at com.simiacryptus.mindseye.test.SimpleEval.run(SimpleEval.java:109)
at com.simiacryptus.mindseye.test.SimpleEval.run(SimpleEval.java:102)
at com.simiacryptus.mindseye.test.unit.SingleDerivativeTester.test(SingleDerivativeTester.java:95)
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.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)
... 85 more
Caused by: java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy51.run(Unknown Source)
at com.simiacryptus.util.Util.lambda$runAllParallel$4(Util.java:399)
at com.simiacryptus.ref.wrappers.RefStream.lambda$forEach$25(RefStream.java:354)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401)
at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734)
at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:159)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:173)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:650)
at com.simiacryptus.ref.wrappers.StreamWrapper.forEach(StreamWrapper.java:129)
at com.simiacryptus.ref.wrappers.RefStream.forEach(RefStream.java:354)
at com.simiacryptus.util.Util.runAllParallel(Util.java:397)
at com.simiacryptus.mindseye.layers.cudnn.conv.SimpleConvolutionLayer$Accumulator.accept(SimpleConvolutionLayer.java:749)
at com.simiacryptus.mindseye.layers.cudnn.conv.SimpleConvolutionLayer$Accumulator.accept(SimpleConvolutionLayer.java:616)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accum(CountingResult.java:115)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:108)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:76)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accum(CountingResult.java:115)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:108)
at com.simiacryptus.mindseye.network.CountingResult$CountingAccumulator.accept(CountingResult.java:76)
at com.simiacryptus.mindseye.layers.cudnn.ImgConcatLayer$Accumulator.lambda$accept$2(ImgConcatLayer.java:381)
... 89 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor29.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)
... 117 more
Caused by: java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy56.apply(Unknown Source)
at com.simiacryptus.lang.ResourcePool.apply(ResourcePool.java:91)
at com.simiacryptus.mindseye.lang.cudnn.CudaSystem.run(CudaSystem.java:655)
at com.simiacryptus.mindseye.layers.cudnn.conv.SimpleConvolutionLayer$Accumulator.lambda$accept$3(SimpleConvolutionLayer.java:732)
... 121 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor25.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)
... 125 more
Caused by: java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy56.apply(Unknown Source)
at com.simiacryptus.mindseye.lang.cudnn.CudnnHandle.lambda$call$3(CudnnHandle.java:131)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
... 1 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor25.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)
... 6 more
Caused by: java.lang.IllegalStateException: Object com.simiacryptus.mindseye.lang.cudnn.CudaTensor (0 refs; 1 adds, 0 frees) apply current stack 
at com.simiacryptus.ref.lang.ReferenceCountingBase.getStackTrace(ReferenceCountingBase.java:85)
at com.simiacryptus.ref.lang.ReferenceCountingBase.referenceReport(ReferenceCountingBase.java:325)
at com.simiacryptus.ref.lang.ReferenceCountingBase.addRef(ReferenceCountingBase.java:170)
at com.simiacryptus.mindseye.lang.cudnn.CudaTensor.addRef(CudaTensor.java:266)
at com.simiacryptus.mindseye.layers.cudnn.conv.SimpleConvolutionLayer.fwd(SimpleConvolutionLayer.java:245)
at com.simiacryptus.mindseye.layers.cudnn.conv.SimpleConvolutionLayer.bck2(SimpleConvolutionLayer.java:349)
at com.simiacryptus.mindseye.layers.cudnn.conv.SimpleConvolutionLayer.access$100(SimpleConvolutionLayer.java:44)
at com.simiacryptus.mindseye.layers.cudnn.conv.SimpleConvolutionLayer$Accumulator.lambda$null$2(SimpleConvolutionLayer.java:738)
at sun.reflect.GeneratedMethodAccessor25.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.$Proxy56.apply(Unknown Source)
at com.simiacryptus.mindseye.lang.cudnn.CudnnHandle.lambda$call$3(CudnnHandle.java:131)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
at com.simiacryptus.ref.lang.ReferenceCountingBase.addRef(ReferenceCountingBase.java:170)
at com.simiacryptus.mindseye.lang.cudnn.CudaTensor.addRef(CudaTensor.java:266)
at com.simiacryptus.mindseye.layers.cudnn.conv.SimpleConvolutionLayer.fwd(SimpleConvolutionLayer.java:245)
at com.simiacryptus.mindseye.layers.cudnn.conv.SimpleConvolutionLayer.bck2(SimpleConvolutionLayer.java:349)
at com.simiacryptus.mindseye.layers.cudnn.conv.SimpleConvolutionLayer.access$100(SimpleConvolutionLayer.java:44)
at com.simiacryptus.mindseye.layers.cudnn.conv.SimpleConvolutionLayer$Accumulator.lambda$null$2(SimpleConvolutionLayer.java:738)
... 10 more


  {
    "result": "InvocationTargetException / InvocationTargetException / InvocationTargetException / InvocationTargetException / InvocationTargetException / IllegalStateException",
    "performance": {
      "execution_time": "1.112",
      "gc_time": "0.457"
    },
    "created_on": 1586746033287,
    "file_name": "derivativeTest",
    "report": {
      "simpleName": "BandExpand",
      "canonicalName": "com.simiacryptus.mindseye.layers.cudnn.conv.ConvolutionLayerTest.BandExpand",
      "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/BandExpand/derivativeTest/202004134713",
    "id": "de4ecb7d-d6b6-4118-aac2-df85cd0747d4",
    "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": ""
    }
  }