1. Test Modules
  2. Differential Validation
    1. Feedback Validation
    2. Learning Validation
    3. Total Accuracy
    4. Frozen and Alive Status
  3. Results

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

Test Modules

Using Seed 5853929725856948224

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 ], [ -0.128 ], [ -0.608 ] ],
[ [ 0.7 ], [ 0.496 ], [ 1.764 ] ]
]
Inputs Statistics: {meanExponent=-0.403119694464533, negative=2, min=-0.608, max=1.764, mean=0.38399999999999995, count=6, sum=2.304, positive=4, stdDev=0.747821725636086, zeros=0}
Output: [
[ [ 0.20205829154466046 ], [ -0.26313280192800254 ], [ -0.30252888138570977 ] ],
[ [ 0.2496724607571127 ], [ 0.347784958719576 ], [ -1.0012181011792336 ] ]
]
Outputs Statistics: {meanExponent=-0.4757285603105663, negative=3, min=-1.0012181011792336, max=0.347784958719576, mean=-0.12789401224526611, count=6, sum=-0.7673640734715967, positive=3, stdDev=0.4635330408569963, 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.08 ], [ -0.128 ], [ -0.608 ] ],
[ [ 0.7 ], [ 0.496 ], [ 1.764 ] ]
]
Value Statistics: {meanExponent=-0.403119694464533, negative=2, min=-0.608, max=1.764, mean=0.38399999999999995, count=6, sum=2.304, positive=4, stdDev=0.747821725636086, zeros=0}
Implemented Feedback: [ [ 1.5257286443082556, 0.0, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, -0.6433250560612676, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 1.05572501506252, 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0, -0.2988206477427904, 0.0, 0.0 ], [ 0.0, 0.0, 0.0, 0.0, -0.50241960298403, 0.0 ], [ 0.0, 0.0, 0.0, 0.0, 0.0, -1.5675839575845996 ] ]
Implemented Statistics: {meanExponent=-0.10213890539396715, negative=4, min=-1.5675839575845996, max=1.5257286443082556, mean=-0.011963766805608666, count=36, sum=-0.43069560500191195, positive=2, stdDev=0.4297982824833161, zeros=30}
Measured Feedback: [ [ 1.525666146909299, 0.0, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, -0.6433321988824624, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 1.0557640785779918, 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0, -0.29883072832359575, 0.0, 0.0 ], [ 0.0, 0.0, 0.0, 0.0, -0.5024113792551076, 0.0 ], [ 0.0, 0.0, 0.0, 0.0, 0.0, -1.5675867920617035 ] ]
Measured Statistics: {meanExponent=-0.1021370006911832, negative=4, min=-1.5675867920617035, max=1.525666146909299, mean=-0.011964746473210521, count=36, sum=-0.4307308730355788, positive=2, stdDev=0.4297952698251719, zeros=30}
Feedback Error: [ [ -6.24973989566957E-5, 0.0, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, -7.14282119484988E-6, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 3.906351547189324E-5, 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0, -1.0080580805371664E-5, 0.0, 0.0 ], [ 0.0, 0.0, 0.0, 0.0, 8.223728922396312E-6, 0.0 ], [ 0.0, 0.0, 0.0, 0.0, 0.0, -2.834477103919042E-6 ] ]
Error Statistics: {meanExponent=-4.897911609835301, negative=4, min=-6.24973989566957E-5, max=3.906351547189324E-5, mean=-9.796676018485206E-7, count=36, sum=-3.526803366654674E-5, positive=2, stdDev=1.25007045904178E-5, zeros=30}

Returns

    {
      "absoluteTol" : {
        "count" : 36,
        "sum" : 1.2984252245512584E-4,
        "min" : 0.0,
        "max" : 6.24973989566957E-5,
        "sumOfSquare" : 5.6601850992121545E-9,
        "standardDeviation" : 1.2009113788801508E-5,
        "average" : 3.6067367348646065E-6
      },
      "relativeTol" : {
        "count" : 6,
        "sum" : 7.048877133629287E-5,
        "min" : 9.04090185275815E-7,
        "max" : 2.0481584073150446E-5,
        "sumOfSquare" : 1.1448746743250817E-9,
        "standardDeviation" : 7.2659425507911505E-6,
        "average" : 1.1748128556048812E-5
      }
    }

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" : 1.2984252245512584E-4,
        "min" : 0.0,
        "max" : 6.24973989566957E-5,
        "sumOfSquare" : 5.6601850992121545E-9,
        "standardDeviation" : 1.2009113788801508E-5,
        "average" : 3.6067367348646065E-6
      },
      "relativeTol" : {
        "count" : 6,
        "sum" : 7.048877133629287E-5,
        "min" : 9.04090185275815E-7,
        "max" : 2.0481584073150446E-5,
        "sumOfSquare" : 1.1448746743250817E-9,
        "standardDeviation" : 7.2659425507911505E-6,
        "average" : 1.1748128556048812E-5
      }
    }

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.6067e-06 +- 1.2009e-05 [0.0000e+00 - 6.2497e-05] (36#)
relativeTol: 1.1748e-05 +- 7.2659e-06 [9.0409e-07 - 2.0482e-05] (6#)

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.00 seconds (0.000 gc):

    throwException(exceptions.addRef());

Results

classdetailsresult
com.simiacryptus.mindseye.test.unit.SingleDerivativeTesterToleranceStatistics{absoluteTol=3.6067e-06 +- 1.2009e-05 [0.0000e+00 - 6.2497e-05] (36#), relativeTol=1.1748e-05 +- 7.2659e-06 [9.0409e-07 - 2.0482e-05] (6#)}OK
  {
    "result": "OK",
    "performance": {
      "execution_time": "0.165",
      "gc_time": "0.104"
    },
    "created_on": 1586738975156,
    "file_name": "derivativeTest",
    "report": {
      "simpleName": "Basic",
      "canonicalName": "com.simiacryptus.mindseye.layers.java.EntropyLayerTest.Basic",
      "link": "https://github.com/SimiaCryptus/mindseye-java/tree/93db34cedee48c0202777a2b25deddf1dfaf5731/src/test/java/com/simiacryptus/mindseye/layers/java/EntropyLayerTest.java",
      "javaDoc": ""
    },
    "archive": "s3://code.simiacrypt.us/tests/com/simiacryptus/mindseye/layers/java/EntropyLayer/Basic/derivativeTest/202004134935",
    "id": "f5b63f5e-ab56-4e2c-98d8-d483142228e3",
    "report_type": "Components",
    "display_name": "Derivative Validation",
    "target": {
      "simpleName": "EntropyLayer",
      "canonicalName": "com.simiacryptus.mindseye.layers.java.EntropyLayer",
      "link": "https://github.com/SimiaCryptus/mindseye-java/tree/93db34cedee48c0202777a2b25deddf1dfaf5731/src/main/java/com/simiacryptus/mindseye/layers/java/EntropyLayer.java",
      "javaDoc": ""
    }
  }