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

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

Test Modules

Using Seed 3667193365151295488

Training Characteristics

Input Learning

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

TrainingTester.java:332 executed in 0.04 seconds (0.000 gc):

    return RefArrays.stream(RefUtil.addRef(input_target)).flatMap(RefArrays::stream).map(x -> {
      try {
        return x.prettyPrint();
      } finally {
        x.freeRef();
      }
    }).reduce((a, b) -> a + "\n" + b).orElse("");

Returns

    [
    	[ [ 0.036, -0.828, 1.668 ], [ 1.064, 1.836, -0.876 ], [ -1.704, -1.14, -0.104 ], [ -0.54, 1.34, -0.54 ], [ 1.108, -0.064, -0.936 ], [ -0.904, -0.068, -0.196 ], [ 0.604, 1.916, 0.6 ], [ -0.092, -1.648, -0.916 ], ... ],
    	[ [ 0.388, -1.2, 1.484 ], [ 1.984, -1.688, 1.592 ], [ -0.368, -0.604, 0.348 ], [ 0.852, -0.976, 1.004 ], [ -1.708, 0.352, 0.048 ], [ -0.04, 1.76, 1.608 ], [ 1.092, 1.884, 0.356 ], [ -0.632, -1.156, -0.916 ], ... ],
    	[ [ 0.36, 1.788, 1.924 ], [ -0.4, 1.52, -1.616 ], [ -0.72, -1.5, 0.944 ], [ -1.624, -1.684, -0.644 ], [ 1.144, 1.068, -1.692 ], [ 0.904, 1.408, -1.284 ], [ -1.392, 1.212, -1.8 ], [ 0.772, -1.492, 1.472 ], ... ],
    	[ [ 1.348, 0.936, 0.108 ], [ 0.936, -0.94, 1.908 ], [ -0.472, 1.724, 1.128 ], [ -1.16, 0.776, 1.64 ], [ 1.724, 1.068, -1.804 ], [ 1.288, -0.872, 0.944 ], [ -0.82, 1.544, -0.504 ], [ -0.184, 0.52, 1.516 ], ... ],
    	[ [ 1.912, 0.148, -1.548 ], [ -0.348, -0.932, -1.028 ], [ 0.104, -1.084, -0.352 ], [ 1.72, -0.8, -1.04 ], [ 0.588, 1.78, -1.088 ], [ -0.476, 0.62, 1.672 ], [ -1.836, 0.792, 1.2 ], [ 0.52, -1.104, -1.536 ], ... ],
    	[ [ 0.924, 1.108, 1.264 ], [ -1.74, -0.86, 0.488 ], [ -1.164, 1.28, 0.472 ], [ -0.072, -0.896, 0.572 ], [ -0.044, 1.584, 1.404 ], [ -0.952, 1.328, 1.88 ], [ -1.872, -0.808, 0.708 ], [ -0.636, 0.248, 0.796 ], ... ],
    	[ [ -1.588, -0.632, 0.516 ], [ -1.712, 0.4, -0.644 ], [ -1.872, -0.164, 1.776 ], [ 1.22, -1.34, -0.608 ], [ 1.276, 1.52, 1.084 ], [ -0.3, 1.788, -1.132 ], [ 0.712, -1.036, 0.308 ], [ -0.636, 1.288, 1.932 ], ... ],
    	[ [ -1.656, 1.14, -0.956 ], [ 0.384, -0.116, -0.872 ], [ -1.192, -1.444, -0.876 ], [ 1.408, 0.968, 0.924 ], [ -1.324, 0.6, -1.444 ], [ -1.024, -0.668, -0.864 ], [ -1.836, 0.776, -0.844 ], [ -1.244, 1.216, 1.388 ], ... ],
    	...
    ]
    [
    	[ [ -1.828, -1.756, -1.184 ], [ 0.888, -1.296, 1.572 ], [ -1.964, -1.492, 1.576 ], [ -0.796, -0.196, -1.18 ], [ 0.268, -0.94, 0.78 ], [ 0.416, 1.712, -0.24 ], [ 1.928, -0.808, -0.264 ], [ 0.936, -0.896, 0.46 ], ... ],
    	[ [ -0.6, -0.344, -0.584 ], [ 0.036, -0.292, -1.36 ], [ -0.848, -1.684, -1.06 ], [ 0.776, 1.236, -1.924 ], [ 1.952, -1.416, 0.936 ], [ -1.816, -1.556, 1.94 ], [ 1.32, -1.952, 0.552 ], [ -0.648, 1.728, 0.4 ], ... ],
    	[ [ 1.724, -0.324, 0.648 ], [ 1.94, -1.036, 0.836 ], [ -1.072, -0.156, -0.288 ], [ -0.056, -0.248, -1.764 ], [ 0.12, -1.828, 1.684 ], [ 0.152, -0.88, -0.392 ], [ 1.968, -1.368, -0.824 ], [ 1.844, -0.376, 1.764 ], ... ],
    	[ [ 0.676, 0.292, -0.16 ], [ -1.372, 1.612, -0.84 ], [ -1.612, -1.04, -0.02 ], [ 0.08, 1.34, 0.252 ], [ -1.412, -0.156, 0.232 ], [ 0.104, 0.344, -0.924 ], [ -1.516, -0.792, -0.188 ], [ 1.74, -0.38, 0.54 ], ... ],
    	[ [ -0.184, 0.444, -0.3 ], [ -1.76, -1.792, 1.224 ], [ 0.184, -0.288, -0.544 ], [ -1.804, 0.356, -1.724 ], [ 1.504, -1.028, 1.052 ], [ -0.12, 0.456, -0.192 ], [ 0.948, -1.38, -1.292 ], [ -0.468, -0.188, -1.792 ], ... ],
    	[ [ -1.36, -0.576, 1.716 ], [ 0.636, -1.236, -1.14 ], [ -0.964, -0.088, 0.232 ], [ 1.644, 1.052, 0.2 ], [ 1.248, -0.024, 0.928 ], [ -0.08, -0.32, 0.004 ], [ -0.328, 1.996, 0.072 ], [ 0.644, 0.932, -0.304 ], ... ],
    	[ [ 0.476, -0.868, 1.724 ], [ -1.4, -0.324, -1.332 ], [ -2.0, -0.892, 0.14 ], [ 1.384, 0.148, -0.604 ], [ -1.152, 1.848, 0.232 ], [ 1.128, -1.104, 1.204 ], [ 0.456, 0.644, 1.652 ], [ 0.04, -0.592, -1.02 ], ... ],
    	[ [ 1.848, 1.784, -0.356 ], [ -1.888, 0.68, -0.408 ], [ -0.504, -1.524, 1.812 ], [ -0.648, -1.804, 0.448 ], [ 0.676, -1.192, -1.716 ], [ 1.464, 1.588, 0.456 ], [ 1.38, 1.048, -1.088 ], [ 0.152, -1.208, 0.82 ], ... ],
    	...
    ]
    [
    	[ [ -1.572, 1.452, -0.352 ], [ 1.32, -1.72, 1.768 ], [ -0.908, 0.644, 0.996 ], [ -1.572, -0.468, -1.656 ], [ -0.948, -1.28, -0.164 ], [ -1.644, 1.22, -0.392 ], [ -1.776, 0.884, -0.3 ], [ 1.96, 1.448, 0.16 ], ... ],
    	[ [ -1.856, 0.04, 1.516 ], [ 0.888, 0.868, -0.532 ], [ 1.924, -1.232, 1.22 ], [ -1.624, -1.616, -0.304 ], [ -0.832, 0.32, -0.676 ], [ 0.536, 1.508, 0.532 ], [ -1.768, 1.556, -1.36 ], [ 1.708, -0.608, 1.228 ], ... ],
    	[ [ 1.052, 1.416, 1.768 ], [ -1.94, -1.296, 0.484 ], [ 0.596, 0.66, 0.008 ], [ -0.672, 1.108, 0.92 ], [ 0.308, -1.488, -0.6 ], [ 1.448, -0.468, 0.612 ], [ 1.996, -1.02, 0.528 ], [ 0.504, -0.552, 0.824 ], ... ],
    	[ [ 1.864, 1.04, 1.304 ], [ -0.016, 0.928, -0.78 ], [ -0.58, 1.724, 1.256 ], [ 1.168, -0.184, 0.22 ], [ 1.884, -1.352, 0.864 ], [ 0.496, -0.556, -1.452 ], [ -0.916, 1.352, 1.468 ], [ 1.324, -1.368, 0.416 ], ... ],
    	[ [ -0.052, 0.788, -0.692 ], [ -0.708, 0.928, -0.168 ], [ 0.708, -1.108, 0.468 ], [ 0.96, 0.86, -0.648 ], [ -1.356, -1.552, -1.876 ], [ -1.944, 1.74, -1.496 ], [ 0.564, -1.024, 0.724 ], [ -1.176, 1.2, -0.856 ], ... ],
    	[ [ 1.544, -0.96, 1.22 ], [ 0.128, -0.26, -0.064 ], [ 1.968, 1.708, -1.904 ], [ -1.056, -1.152, 1.912 ], [ 0.384, -1.2, -0.48 ], [ 0.292, 1.504, -1.684 ], [ -0.656, -1.104, 0.896 ], [ -1.644, 1.156, -0.656 ], ... ],
    	[ [ -1.092, 1.708, 1.588 ], [ -1.096, 0.18, -1.688 ], [ 1.752, -1.66, 1.784 ], [ 0.552, 1.32, 1.944 ], [ 1.748, 0.776, 1.748 ], [ 0.616, 0.208, -1.884 ], [ -1.656, -1.436, -0.828 ], [ 0.676, 1.98, -1.62 ], ... ],
    	[ [ -0.568, 1.004, 1.56 ], [ 0.776, 0.856, 0.144 ], [ -0.112, -0.76, -1.04 ], [ -1.844, -1.108, -1.756 ], [ 1.384, -0.904, 1.032 ], [ 1.288, -1.728, -0.02 ], [ 1.2, 1.6, -0.048 ], [ -0.416, 1.72, -0.764 ], ... ],
    	...
    ]
    [
    	[ [ 0.552, 0.344, 1.236 ], [ -1.136, 1.888, -0.012 ], [ -1.172, -0.86, 0.888 ], [ 1.684, 0.096, 0.84 ], [ -1.572, -0.076, 0.212 ], [ 0.24, -1.504, -1.44 ], [ 1.78, 1.14, 0.584 ], [ -0.048, -0.136, 1.768 ], ... ],
    	[ [ 1.14, 1.716, -0.212 ], [ 0.364, 0.548, 0.052 ], [ -0.424, -1.02, 0.152 ], [ 0.604, 1.284, 1.26 ], [ -1.768, -1.452, 0.96 ], [ 1.576, -0.528, 0.072 ], [ 1.4, 1.36, -0.936 ], [ 1.372, 1.888, -1.24 ], ... ],
    	[ [ 1.3, -1.412, 1.42 ], [ 1.956, 1.808, 1.408 ], [ -0.264, -0.38, -0.736 ], [ -1.28, -0.34, -1.524 ], [ 0.04, -1.652, 1.252 ], [ 0.04, 0.112, 0.436 ], [ 1.788, 0.076, -0.736 ], [ 0.028, 1.84, -1.116 ], ... ],
    	[ [ 1.888, -0.848, -1.132 ], [ 1.052, 1.608, 1.536 ], [ 1.648, 1.776, -0.876 ], [ -0.172, -0.28, -0.364 ], [ 0.228, -0.696, -0.88 ], [ 0.524, -0.06, 0.748 ], [ 1.204, 1.844, 0.668 ], [ -1.632, -1.136, -1.86 ], ... ],
    	[ [ -0.832, -0.164, -0.412 ], [ 0.608, 0.212, -0.844 ], [ -0.348, 0.028, -1.104 ], [ 1.436, -1.936, -1.232 ], [ -0.504, 1.164, 0.992 ], [ 1.796, -1.492, 0.54 ], [ 1.48, 0.556, 1.988 ], [ -0.704, 1.772, 1.428 ], ... ],
    	[ [ -0.62, 0.332, 0.644 ], [ 1.096, 1.844, -0.396 ], [ -1.648, 0.812, -1.056 ], [ -1.128, -0.544, -1.96 ], [ 1.056, -1.576, 1.88 ], [ 1.92, -1.096, 1.48 ], [ 0.684, -0.092, -1.464 ], [ 1.596, 1.556, -1.276 ], ... ],
    	[ [ 1.164, 0.296, -1.772 ], [ -0.856, 1.672, 1.04 ], [ -1.732, -0.636, -0.472 ], [ 0.988, 0.752, 0.86 ], [ 1.868, 1.84, 1.996 ], [ 1.04, -0.592, 1.336 ], [ 1.18, -0.548, -1.836 ], [ 0.232, -0.312, -1.536 ], ... ],
    	[ [ -0.788, -0.06, -1.3 ], [ 1.052, 0.432, 0.664 ], [ 0.772, -1.792, 0.868 ], [ 1.296, -1.02, -1.132 ], [ 1.392, 0.292, -1.092 ], [ -0.324, -1.6, 1.764 ], [ -1.916, 0.516, -1.184 ], [ -1.784, 1.008, 1.26 ], ... ],
    	...
    ]
    [
    	[ [ -1.788, 1.164, -0.332 ], [ -1.476, 1.496, 1.136 ], [ 1.464, -1.572, -0.764 ], [ -0.34, 1.872, 0.604 ], [ 0.732, -0.78, -0.428 ], [ 1.788, -0.064, 0.16 ], [ 1.844, 0.076, 0.992 ], [ 1.836, -1.416, 1.528 ], ... ],
    	[ [ -1.372, -0.844, -1.372 ], [ 0.188, -0.704, -1.28 ], [ -0.236, -1.664, -0.428 ], [ 0.352, -0.868, -1.768 ], [ 1.604, 1.048, -1.648 ], [ -1.304, 1.988, -0.568 ], [ -0.672, 1.632, -0.752 ], [ 0.26, -0.464, 1.444 ], ... ],
    	[ [ 1.464, -0.316, 1.152 ], [ 0.728, -0.22, 0.516 ], [ -1.648, 0.292, -0.744 ], [ 1.248, 1.928, -1.656 ], [ -1.156, 1.948, -0.428 ], [ 0.844, -0.5, -0.856 ], [ 1.724, 1.664, 1.284 ], [ 1.884, -1.896, -0.388 ], ... ],
    	[ [ 0.368, -0.684, 1.696 ], [ -1.264, 1.552, 1.308 ], [ -0.688, 0.108, -1.96 ], [ -1.8, -0.18, 1.416 ], [ 1.396, 1.472, 0.388 ], [ 0.236, 0.688, -0.028 ], [ -1.488, -0.912, 0.26 ], [ 1.496, 1.296, 0.012 ], ... ],
    	[ [ 0.876, -1.02, 0.304 ], [ -1.528, -0.048, 0.8 ], [ -0.336, 1.832, -0.632 ], [ -1.96, 1.04, -0.344 ], [ -0.216, -1.308, -0.276 ], [ 1.744, 1.644, -1.256 ], [ -1.196, -1.916, 0.248 ], [ 0.536, 1.536, -1.964 ], ... ],
    	[ [ -1.884, -1.612, 0.032 ], [ 1.648, -1.124, 1.648 ], [ -0.084, -1.892, -0.972 ], [ 0.708, -1.508, -0.896 ], [ -0.94, 0.708, 1.664 ], [ 1.348, -1.352, 

...skipping 1021 bytes...

     -1.376 ], [ -0.244, 1.94, 0.328 ], [ 1.716, -0.928, 0.144 ], [ -0.9, 1.34, -0.448 ], [ -0.56, 1.528, -0.056 ], [ -1.072, -0.852, -1.824 ], ... ],
    	[ [ 0.872, -1.516, -0.936 ], [ -1.312, 1.548, -0.532 ], [ -1.66, 1.044, 0.016 ], [ -1.228, 1.608, -1.104 ], [ 1.456, -1.4, 1.06 ], [ -0.184, -0.952, -0.324 ], [ 0.084, 1.656, -1.752 ], [ 1.704, 0.968, -1.984 ], ... ],
    	[ [ -1.488, 0.704, 1.976 ], [ -0.856, 0.188, -0.048 ], [ -1.932, 0.756, 1.408 ], [ -0.496, 1.252, 1.184 ], [ 1.496, 1.984, -1.528 ], [ -1.084, 1.192, 0.872 ], [ -0.548, -0.236, -0.376 ], [ 0.768, 1.272, 1.764 ], ... ],
    	[ [ 1.216, -0.736, 1.148 ], [ -1.88, -0.056, -0.132 ], [ 1.952, 0.104, 0.212 ], [ 0.7, 0.112, -1.808 ], [ -1.152, -0.612, 1.248 ], [ 1.244, 0.124, -0.188 ], [ 0.28, -1.62, 0.808 ], [ -1.452, -1.976, 1.452 ], ... ],
    	[ [ -0.684, -0.46, 1.084 ], [ 0.0, -1.44, -0.304 ], [ -1.972, 1.156, -1.084 ], [ 0.24, -1.064, 0.696 ], [ -0.952, -0.6, -1.168 ], [ -0.788, 0.888, 0.92 ], [ -0.4, -0.828, -1.544 ], [ 1.708, -1.084, -0.664 ], ... ],
    	[ [ 1.22, -0.844, 0.184 ], [ 0.204, 1.012, -1.476 ], [ -1.316, 1.692, 1.316 ], [ 0.664, 1.816, -1.148 ], [ -0.98, 0.868, 0.3 ], [ -0.66, 1.02, 1.712 ], [ -1.72, 0.528, -0.508 ], [ 0.064, -1.672, 0.264 ], ... ],
    	...
    ]
    [
    	[ [ 0.856, 0.544, 0.52 ], [ -0.088, -0.92, 0.796 ], [ 0.532, 0.052, -1.272 ], [ 0.296, 0.116, 1.16 ], [ -0.64, 0.032, 0.804 ], [ -1.696, -1.524, 0.08 ], [ -1.876, -0.492, 1.632 ], [ -1.0, -1.028, 0.424 ], ... ],
    	[ [ -0.644, 1.84, 1.224 ], [ -1.096, 1.488, -0.076 ], [ -1.992, 1.552, -0.252 ], [ -1.96, -1.508, -1.924 ], [ -1.784, 1.264, 0.624 ], [ 1.144, 1.764, 1.548 ], [ -1.86, 0.084, 0.98 ], [ 1.632, 1.36, -0.944 ], ... ],
    	[ [ -0.808, 0.568, 0.968 ], [ 0.072, -0.868, -1.212 ], [ 0.868, -0.404, -0.844 ], [ -0.96, -1.788, 1.484 ], [ 0.5, -0.808, 0.608 ], [ -1.924, 0.776, -1.396 ], [ -1.9, 0.452, 1.284 ], [ -0.312, 1.2, 1.26 ], ... ],
    	[ [ 0.36, -1.996, 0.412 ], [ -0.96, -1.788, 1.256 ], [ 1.096, -1.692, -0.204 ], [ -1.82, -0.148, 0.22 ], [ 0.068, -0.568, -0.54 ], [ -0.308, 2.0, 0.408 ], [ -1.528, 1.156, -0.6 ], [ 1.872, -0.272, 1.304 ], ... ],
    	[ [ 0.448, 1.784, -0.756 ], [ -1.212, 1.328, -0.288 ], [ 1.992, -0.672, -1.24 ], [ 0.028, -0.076, 0.34 ], [ -1.056, 1.92, 0.472 ], [ -0.508, 1.088, -0.384 ], [ -0.04, 1.264, 0.472 ], [ 1.32, -0.032, 0.428 ], ... ],
    	[ [ 0.556, 0.144, 1.08 ], [ 1.004, 0.828, 1.304 ], [ 0.16, -1.416, 0.62 ], [ 1.688, 1.596, -1.832 ], [ 1.62, -1.932, -1.656 ], [ -1.08, -1.108, -1.736 ], [ -1.036, 0.448, -0.648 ], [ 1.936, -1.772, -1.024 ], ... ],
    	[ [ 0.424, 0.58, 1.328 ], [ -0.084, -1.092, -1.964 ], [ -0.68, 1.272, 0.244 ], [ 0.252, -0.076, 0.632 ], [ 1.108, -0.232, 1.164 ], [ 0.176, 0.12, -1.772 ], [ 0.7, -1.68, -1.912 ], [ 1.372, -0.12, 1.348 ], ... ],
    	[ [ 0.312, -0.68, 0.692 ], [ -1.98, -1.392, -1.944 ], [ 0.012, 0.856, 1.904 ], [ -1.608, -1.844, 1.332 ], [ -1.628, 1.92, 1.988 ], [ -0.652, -0.108, -1.316 ], [ 0.888, -0.44, -1.344 ], [ -0.744, 1.712, -0.532 ], ... ],
    	...
    ]
    [
    	[ [ -0.192, -0.54, -0.292 ], [ -0.932, -1.9, 1.116 ], [ 0.736, -1.216, 1.656 ], [ -1.296, -1.564, -1.848 ], [ 0.776, 1.284, -1.92 ], [ -0.048, 0.068, 1.944 ], [ 0.112, -0.944, -0.868 ], [ -0.88, -1.964, 1.888 ], ... ],
    	[ [ 1.884, -1.292, 1.34 ], [ -1.496, 1.976, -0.504 ], [ -1.964, -0.98, 1.616 ], [ 0.452, 0.86, -0.972 ], [ -1.216, 1.784, 1.664 ], [ 0.668, -1.936, 0.804 ], [ -0.128, -0.028, -1.508 ], [ -0.62, -0.024, 1.62 ], ... ],
    	[ [ 0.632, 0.4, 1.32 ], [ 1.892, 0.088, -0.024 ], [ -1.252, 0.696, -0.1 ], [ 1.28, -0.34, 0.864 ], [ -1.696, -1.776, -0.128 ], [ -0.544, 1.932, -1.568 ], [ -0.408, 0.16, 0.336 ], [ -0.152, 1.444, 1.844 ], ... ],
    	[ [ -1.444, -0.724, -1.096 ], [ -0.536, -1.736, -0.26 ], [ 1.884, -0.828, 1.572 ], [ -0.98, -0.584, -1.9 ], [ 0.804, -2.0, -0.396 ], [ -0.428, 0.884, 1.596 ], [ 1.936, -0.472, 1.76 ], [ 1.344, -1.508, 1.488 ], ... ],
    	[ [ 0.468, -1.612, -0.388 ], [ -1.704, 1.744, -0.128 ], [ -0.068, 1.028, 1.368 ], [ 0.192, -0.736, 0.328 ], [ -0.396, -1.904, 0.508 ], [ -0.1, -1.944, -1.06 ], [ 1.764, 0.184, 1.948 ], [ 1.832, 1.568, 1.484 ], ... ],
    	[ [ -0.9, -0.452, 0.332 ], [ -1.188, 0.812, 0.444 ], [ -0.248, 1.336, -1.008 ], [ -1.812, -1.072, 0.34 ], [ 0.992, -1.856, -1.732 ], [ 0.952, 1.884, 1.472 ], [ 1.316, -1.564, -1.472 ], [ -1.66, 0.404, -1.652 ], ... ],
    	[ [ 0.848, 1.084, 1.52 ], [ 0.9, 0.9, 1.156 ], [ 0.392, 1.684, 0.636 ], [ 1.892, -0.508, -1.42 ], [ 0.288, 0.984, -1.78 ], [ -0.796, -0.824, -0.756 ], [ 1.224, -0.448, 0.472 ], [ -1.08, -0.068, 1.432 ], ... ],
    	[ [ -1.62, 0.936, -0.312 ], [ -0.564, -1.856, 1.52 ], [ -1.088, 1.696, -0.396 ], [ 1.196, -0.72, 0.836 ], [ 0.388, 0.968, -0.144 ], [ 0.068, 0.516, 1.184 ], [ -0.224, -1.7, -1.756 ], [ 0.528, -1.664, 1.448 ], ... ],
    	...
    ]
    [
    	[ [ 0.404, -1.236, 0.008 ], [ 1.272, 1.736, 0.316 ], [ -1.668, 1.796, -0.296 ], [ -0.804, 0.092, -0.176 ], [ 0.56, -1.72, -1.548 ], [ 1.196, 1.568, 0.268 ], [ 0.14, -1.86, 1.636 ], [ -1.628, -1.344, 0.488 ], ... ],
    	[ [ 1.868, -1.116, -1.936 ], [ -1.836, -0.768, 0.344 ], [ -0.716, -0.02, 0.212 ], [ 1.544, -0.308, 0.232 ], [ -1.536, -1.244, -1.88 ], [ -0.504, -0.224, 1.312 ], [ 1.852, 0.064, -0.588 ], [ 1.432, 0.632, -1.82 ], ... ],
    	[ [ 1.676, 0.372, -0.2 ], [ -0.288, -1.264, -0.492 ], [ 0.628, 1.148, -1.272 ], [ -0.196, 1.944, -0.444 ], [ 0.968, -0.972, -1.956 ], [ -0.86, 0.404, -0.804 ], [ -1.92, 0.72, 1.272 ], [ -0.232, 1.784, -0.876 ], ... ],
    	[ [ -1.932, 1.508, -1.692 ], [ -0.768, 1.684, 0.548 ], [ -1.648, 1.964, -1.424 ], [ 1.444, 1.636, 0.976 ], [ -1.82, 1.904, 0.412 ], [ 0.048, -0.884, -1.128 ], [ -1.664, 0.628, -1.112 ], [ 1.404, -0.872, 1.108 ], ... ],
    	[ [ 0.524, -1.98, -0.876 ], [ -0.484, -0.02, 1.696 ], [ 0.988, -1.308, 0.244 ], [ -0.364, -0.144, -0.76 ], [ -0.988, 0.232, 0.536 ], [ -0.68, -0.676, -1.064 ], [ -1.04, -1.92, 0.804 ], [ -0.04, 1.784, 0.148 ], ... ],
    	[ [ -0.92, -0.116, 0.872 ], [ -0.432, 1.248, 1.612 ], [ -1.484, -1.528, -1.04 ], [ -0.772, -0.268, -0.78 ], [ 0.756, 1.364, 0.36 ], [ 1.032, -1.084, -1.304 ], [ 1.088, -0.988, -1.272 ], [ -0.12, -1.5, 1.788 ], ... ],
    	[ [ 1.076, 1.94, -1.748 ], [ 0.536, 1.716, 1.944 ], [ 1.604, -0.632, 1.968 ], [ -1.416, 0.74, 0.828 ], [ -1.464, -1.796, 1.984 ], [ 0.668, -0.496, 0.316 ], [ -1.168, -1.944, -0.168 ], [ 1.176, -1.356, -1.972 ], ... ],
    	[ [ 1.548, -0.292, 0.448 ], [ -0.848, 1.044, -1.92 ], [ 1.36, 1.032, -1.208 ], [ 1.32, -1.88, 0.028 ], [ -1.364, -1.224, 1.068 ], [ -0.52, -0.608, 1.984 ], [ 1.908, 0.536, 1.86 ], [ 1.976, 0.268, -1.276 ], ... ],
    	...
    ]
    [
    	[ [ 1.488, -1.772, 1.956 ], [ -1.976, 1.232, 0.9 ], [ 0.704, 1.232, 1.94 ], [ 1.804, -0.164, 1.1 ], [ -1.856, -1.98, 1.176 ], [ 0.28, 0.024, -1.816 ], [ 0.14, 1.8, -1.504 ], [ 0.388, 0.316, 1.888 ], ... ],
    	[ [ -0.06, 1.488, -0.268 ], [ 1.0, 0.44, -1.556 ], [ -1.284, 0.936, -1.052 ], [ 0.568, 0.08, -1.376 ], [ -0.836, -0.484, 0.124 ], [ -1.732, -0.66, 0.016 ], [ 0.476, -1.172, -1.744 ], [ -0.2, -1.756, -0.472 ], ... ],
    	[ [ 1.844, -0.896, -0.968 ], [ 0.156, 0.876, -1.896 ], [ 1.076, 0.5, -0.196 ], [ 0.788, -1.476, -0.064 ], [ -0.276, 0.408, 1.9 ], [ -0.696, -0.944, 1.024 ], [ 1.324, 0.624, -1.444 ], [ -1.256, 1.528, 0.688 ], ... ],
    	[ [ -0.316, -0.86, -1.236 ], [ -1.76, -0.844, 0.328 ], [ -1.532, 1.68, 1.196 ], [ 1.972, -1.66, -0.48 ], [ -0.84, 0.588, -0.528 ], [ -1.62, 0.888, 0.976 ], [ -0.428, -0.616, -1.532 ], [ -1.616, 0.928, -1.076 ], ... ],
    	[ [ -0.288, 0.88, 0.424 ], [ 0.032, -1.748, 0.54 ], [ 1.764, 0.124, 0.344 ], [ 0.776, -1.524, 0.712 ], [ 0.708, 0.264, -1.72 ], [ 1.376, 0.12, 0.94 ], [ -0.156, -0.536, -0.968 ], [ -1.328, 1.876, 1.424 ], ... ],
    	[ [ -0.928, 0.024, -1.548 ], [ 0.904, 0.844, -1.256 ], [ 1.228, -0.176, 0.54 ], [ 0.9, -1.484, 1.14 ], [ 0.3, -0.76, -0.512 ], [ 1.812, -1.564, 1.236 ], [ 1.34, -0.108, -1.612 ], [ 0.012, -0.548, 0.904 ], ... ],
    	[ [ 0.236, 0.908, 1.788 ], [ -0.708, -0.736, -0.912 ], [ 1.464, -0.568, 0.4 ], [ -0.06, -0.176, -0.656 ], [ -0.892, 1.18, -0.376 ], [ -1.036, -0.556, -1.328 ], [ -0.78, 0.912, -1.7 ], [ -1.536, -0.008, 1.248 ], ... ],
    	[ [ 0.292, -1.744, -1.836 ], [ 0.6, 1.648, 1.344 ], [ -1.568, 1.424, 0.932 ], [ -0.176, -1.04, -0.64 ], [ 1.404, 1.756, 0.22 ], [ 0.784, 1.968, -1.768 ], [ -1.768, -1.52, 1.984 ], [ -0.492, 0.816, 0.132 ], ... ],
    	...
    ]

Gradient Descent

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

TrainingTester.java:480 executed in 9.34 seconds (0.086 gc):

    IterativeTrainer iterativeTrainer = new IterativeTrainer(trainable.addRef());
    try {
      iterativeTrainer.setLineSearchFactory(label -> new ArmijoWolfeSearch());
      iterativeTrainer.setOrientation(new GradientDescent());
      iterativeTrainer.setMonitor(TrainingTester.getMonitor(history));
      iterativeTrainer.setTimeout(30, TimeUnit.SECONDS);
      iterativeTrainer.setMaxIterations(250);
      iterativeTrainer.setTerminateThreshold(0);
      return iterativeTrainer.run();
    } finally {
      iterativeTrainer.freeRef();
    }
Logging
Reset training subject: 11051829124047
Reset training subject: 11052026583535
Constructing line search parameters: GD
th(0)=2.5145065945600003;dx=-1.6121304887680004E-4
New Minimum: 2.5145065945600003 > 2.514159288406907
WOLFE (weak): th(2.154434690031884)=2.514159288406907; dx=-1.611974235318132E-4 evalInputDelta=3.4730615309319646E-4
New Minimum: 2.514159288406907 > 2.5138120159175985
WOLFE (weak): th(4.308869380063768)=2.5138120159175985; dx=-1.6118179818682638E-4 evalInputDelta=6.945786424017442E-4
New Minimum: 2.5138120159175985 > 2.5124232625982192
WOLFE (weak): th(12.926608140191302)=2.5124232625982192; dx=-1.6111929680687914E-4 evalInputDelta=0.0020833319617810098
New Minimum: 2.5124232625982192 > 2.506180538090498
WOLFE (weak): th(51.70643256076521)=2.506180538090498; dx=-1.6083804059711641E-4 evalInputDelta=0.008326056469502241
New Minimum: 2.506180538090498 > 2.4730819631077168
WOLFE (weak): th(258.53216280382605)=2.4730819631077168; dx=-1.5921127899896283E-4 evalInputDelta=0.04142463145228348
New Minimum: 2.4730819631077168 > 2.2738760755926237
WOLFE (weak): th(1551.1929768229563)=2.2738760755926237; dx=-1.4901324258730038E-4 evalInputDelta=0.24063051896737653
New Minimum: 2.2738760755926237 > 1.2160062051175147
END: th(10858.350837760694)=1.2160062051175147; dx=-7.964759407490454E-5 evalInputDelta=1.2985003894424856
Fitness changed from 2.5145065945600003 to 1.2160062051175147
Iteration 1 complete. Error: 1.2160062051175147 Total: 1.4923; Orientation: 0.0471; Line Search: 1.1495
th(0)=1.2160062051175147;dx=-4.592805282536093E-5
New Minimum: 1.2160062051175147 > 0.5759367778570614
END: th(23393.607721408407)=0.5759367778570614; dx=-1.0759387194592242E-5 evalInputDelta=0.6400694272604532
Fitness changed from 1.2160062051175147 to 0.5759367778570614
Iteration 2 complete. Error: 0.5759367778570614 Total: 0.1723; Orientation: 0.0225; Line Search: 0.1115
th(0)=0.5759367778570614;dx=-5.796251460421403E-6
New Minimum: 0.5759367778570614 > 0.4464600766246288
WOLF (strong): th(50400.00000000001)=0.4464600766246288; dx=6.479397032584647E-7 evalInputDelta=0.12947670123243266
END: th(25200.000000000004)=0.4705627082846475; dx=-2.567953563013704E-6 evalInputDelta=0.10537406957241391
Fitness changed from 0.5759367778570614 to 0.4464600766246288
Iteration 3 complete. Error: 0.4464600766246288 Total: 0.2244; Orientation: 0.0205; Line Search: 0.1710
th(0)=0.4464600766246288;dx=-1.1313755360060062E-6
Armijo: th(54291.75418880348)=0.47177083053051383; dx=1.5461302572054157E-6 evalInputDelta=-0.025310753905885053
New Minimum: 0.4464600766246288 > 0.43994904529600837
WOLF (strong): th(27145.87709440174)=0.43994904529600837; dx=6.319767459386835E-7 evalInputDelta=0.006511031328620409
New Minimum: 0.43994904529600837 > 0.4389141553215305
END: th(9048.625698133914)=0.4389141553215305; dx=-5.36484657316944E-7 evalInputDelta=0.00754592130309828
Fitness changed from 0.4464600766246288 to 0.4389141553215305
Iteration 4 complete. Error: 0.4389141553215305 Total: 0.4696; Orientation: 0.0210; Line Search: 0.4172
th(0)=0.4389141553215305;dx=-2.5764120131607224E-7
New Minimum: 0.4389141553215305 > 0.43666120059065683
WOLF (strong): th(19494.673101173677)=0.43666120059065683; dx=2.650578097008824E-8 evalInputDelta=0.0022529547308736686
END: th(9747.336550586839)=0.4370952588895494; dx=-1.15567710172992E-7 evalInputDelta=0.0018188964319810763
Fitness changed from 0.4389141553215305 to 0.43666120059065683
Iteration 5 complete. Error: 0.43666120059065683 Total: 0.4571; Orientation: 0.0490; Line Search: 0.3663
th(0)=0.43666120059065683;dx=-8.522210979610565E-9
New Minimum: 0.43666120059065683 > 0.43658333916454894
WOLF (strong): th(21000.000000000007)=0.43658333916454894; dx=1.1068370645802455E-9 evalInputDelta=7.78614261078836E-5
END: th(10500.000000000004)=0.4365969936264869; dx=-3.7076869575151595E-9 evalInputDelta=6.420696416992167E-5
Fitness changed from 0.43666120059065683 to 0.43658333916454894
Iteration 6 complete. Error: 0.43658333916454894 Total: 0.2752; Orientation: 0.0201; Line Search: 0.2244
th(0)=0.43658333916454894;dx=-5.665566321194221E-10
New Minimum: 0.43658333916454894 > 0.436577960890696
WOLF (strong): th(22621.564245334786)=0.436577960890696; dx=9.105690145069198E-11 evalInputDelta=5.3782738529406515E-6
END: th(11310.782122667393)=0.43657879049677273; dx=-2.3774986533436527E-10 evalInputDelta=4.54866777621632E-6
Fitness changed from 0.43658333916454894 to 0.436577960890696
Iteration 7 complete. Error: 0.436577960890696 Total: 0.1982; Orientation: 0.0197; Line Search: 0.1484
Low gradient: 9.093508134110586E-6
th(0)=0.436577960890696;dx=-8.26918901851354E-11
New Minimum: 0.436577960890696 > 0.43657707198051526
WOLF (strong): th(24368.3413764671)=0.43657707198051526; dx=9.735740479305382E-12 evalInputDelta=8.889101807407762E-7
END: th(12184.17068823355)=0.43657723489709854; dx=-3.6478074852915015E-11 evalInputDelta=7.25993597461283E-7
Fitness changed from 0.436577960890696 to 0.43657707198051526
Iteration 8 complete. Error: 0.43657707198051526 Total: 0.2194; Orientation: 0.0272; Line Search: 0.1573
Low gradient: 4.3569543942932855E-6
th(0)=0.43657707198051526;dx=-1.8983051593951567E-11
New Minimum: 0.43657707198051526 > 0.43657686115222916
WOLF (strong): th(26250.00000000001)=0.43657686115222916; dx=2.9199440818129476E-12 evalInputDelta=2.1082828610685667E-7
END: th(13125.000000000005)=0.43657689469716765; dx=-8.031553756069243E-12 evalInputDelta=1.7728334761324405E-7
Fitness changed from 0.43657707198051526 to 0.43657686115222916
Iteration 9 complete. Error: 0.43657686115222916 Total: 0.2045; Orientation: 0.0186; Line Search: 0.1558
Low gradient: 2.3402256625265353E-6
th(0)=0.43657686115222916;dx=-5.47665615154776E-12
New Minimum: 0.43657686115222916 > 0.4365768101869529
WOLF (strong): th(28276.955306668486)=0.4365768101869529; dx=1.871934522280163E-12 evalInputDelta=5.096527627701519E-8
New Minimum: 0.4365768101869529 > 0.4365768096951198
END: th(14138.477653334243)=0.4365768096951198; dx=-1.8023608146338015E-12 evalInputDelta=5.145710935128278E-8
Fitness changed from 0.43657686115222916 to 0.4365768096951198
Iteration 10 complete. Error: 0.4365768096951198 Total: 0.5499; Orientation: 0.0201; Line Search: 0.5005
Low gradient: 9.85019396281904E-7
th(0)=0.4365768096951198;dx=-9.702632110515665E-13
New Minimum: 0.4365768096951198 > 0.436576790747884
END: th(30460.426720583877)=0.436576790747884; dx=-2.7379262086507057E-13 evalInputDelta=1.8947235780331084E-8
Fitness changed from 0.4365768096951198 to 0.436576790747884
Iteration 11 complete. Error: 0.436576790747884 Total: 0.3056; Orientation: 0.0202; Line Search: 0.2530
Low gradient: 4.406918026470908E-7
th(0)=0.436576790747884;dx=-1.942092649203424E-13
Armijo: th(65625.00000000003)=0.43657679146937756; dx=2.1619763906253504E-13 evalInputDelta=-7.214935315857929E-10
New Minimum: 0.436576790747884 > 0.4365767877420117
WOLF (strong): th(32812.500000000015)=0.4365767877420117; dx=1.099418707109943E-14 evalInputDelta=3.005872328820658E-9
END: th(10937.500000000005)=0.43657678899778907; dx=-1.2580811425651934E-13 evalInputDelta=1.7500949578419522E-9
Fitness changed from 0.436576790747884 to 0.4365767877420117
Iteration 12 complete. Error: 0.4365767877420117 Total: 0.4379; Orientation: 0.0198; Line Search: 0.3893
Low gradient: 2.674781606697009E-7
th(0)=0.4365767877420117;dx=-7.154456643524632E-14
New Minimum: 0.4365767877420117 > 0.43657678707080594
WOLF (strong): th(23564.12942222374)=0.43657678707080594; dx=1.4576137786994884E-14 evalInputDelta=6.712057576407915E-10
END: th(11782.06471111187)=0.4365767871527389; dx=-2.8484214324125036E-14 evalInputDelta=5.892727972245382E-10
Fitness changed from 0.4365767877420117 to 0.43657678707080594
Iteration 13 complete. Error: 0.43657678707080594 Total: 0.2235; Orientation: 0.0202; Line Search: 0.1746
Low gradient: 1.1823791567462361E-7
th(0)=0.43657678707080594;dx=-1.3980204703079406E-14
New Minimum: 0.43657678707080594 > 0.43657678692872154
WOLF (strong): th(25383.6889338199)=0.43657678692872154; dx=2.7852685292372672E-15 evalInputDelta=1.4208439980123444E-10
END: th(12691.84446690995)=0.43657678694656754; dx=-5.597468086922169E-15 evalInputDelta=1.2423839734765352E-10
Fitness changed from 0.43657678707080594 to 0.43657678692872154
Iteration 14 complete. Error: 0.43657678692872154 Total: 0.4281; Orientation: 0.0200; Line Search: 0.3745
Low gradient: 6.07071376121097E-8
th(0)=0.43657678692872154;dx=-3.685356557055625E-15
New Minimum: 0.43657678692872154 > 0.4365767868944551
WOLF (strong): th(27343.75000000002)=0.4365767868944551; dx=1.1790096981369159E-15 evalInputDelta=3.426642303239191E-11
END: th(13671.87500000001)=0.43657678689496204; dx=-1.253173429459951E-15 evalInputDelta=3.3759495199348066E-11
Fitness changed from 0.43657678692872154 to 0.4365767868944551
Iteration 15 complete. Error: 0.4365767868944551 Total: 0.3214; Orientation: 0.0185; Line Search: 0.2707
Low gradient: 3.592856001068768E-8
th(0)=0.4365767868944551;dx=-1.2908614244415855E-15
New Minimum: 0.4365767868944551 > 0.43657678688618134
WOLF (strong): th(29455.161777779682)=0.43657678688618134; dx=7.290769204157656E-16 evalInputDelta=8.273770557565285E-12
New Minimum: 0.43657678688618134 > 0.43657678688288104
END: th(14727.580888889841)=0.43657678688288104; dx=-2.808922520124633E-16 evalInputDelta=1.1574075031717257E-11
Fitness changed from 0.4365767868944551 to 0.43657678688288104
Iteration 16 complete. Error: 0.43657678688288104 Total: 0.5041; Orientation: 0.1629; Line Search: 0.3056
Low gradient: 1.1175300622003389E-8
th(0)=0.43657678688288104;dx=-1.2488734399214931E-16
New Minimum: 0.43657678688288104 > 0.4365767868804671
END: th(31729.61116727488)=0.4365767868804671; dx=-2.7269684935571328E-17 evalInputDelta=2.413957922442478E-12
Fitness changed from 0.43657678688288104 to 0.4365767868804671
Iteration 17 complete. Error: 0.4365767868804671 Total: 0.3219; Orientation: 0.0447; Line Search: 0.2484
Low gradient: 5.153884315326873E-9
th(0)=0.4365767868804671;dx=-2.6562523535772346E-17
Armijo: th(68359.37500000006)=0.4365767868809972; dx=4.2071792848093746E-17 evalInputDelta=-5.301314942585122E-13
New Minimum: 0.4365767868804671 > 0.4365767868801457
WOLF (strong): th(34179.68750000003)=0.4365767868801457; dx=7.754634656188909E-18 evalInputDelta=3.214095656289828E-13
END: th(11393.229166666677)=0.4365767868802296; dx=-1.512347080511112E-17 evalInputDelta=2.37476704967321E-13
Fitness changed from 0.4365767868804671 to 0.4365767868801457
Iteration 18 complete. Error: 0.4365767868801457 Total: 0.2325; Orientation: 0.0194; Line Search: 0.1850
Low gradient: 3.811318900959161E-9
th(0)=0.4365767868801457;dx=-1.452615176480854E-17
New Minimum: 0.4365767868801457 > 0.43657678688003393
WOLF (strong): th(24545.96814814974)=0.43657678688003393; dx=5.4181733104446724E-18 evalInputDelta=1.11743947428522E-13
New Minimum: 0.43657678688003393 > 0.4365767868800286
END: th(12272.98407407487)=0.4365767868800286; dx=-4.5539892271122825E-18 evalInputDelta=1.1707301794672276E-13
Fitness changed from 0.4365767868801457 to 0.4365767868800286
Iteration 19 complete. Error: 0.4365767868800286 Total: 0.4124; Orientation: 0.0197; Line Search: 0.3580
Low gradient: 1.3218397332288897E-9
th(0)=0.4365767868800286;dx=-1.7472602803426223E-18
New Minimum: 0.4365767868800286 > 0.4365767868800073
WOLF (strong): th(26441.342639395738)=0.4365767868800073; dx=1.3596026580172972E-19 evalInputDelta=2.1316282072803006E-14
END: th(13220.671319697869)=0.4365767868800117; dx=-8.056500072970094E-19 evalInputDelta=1.687538997430238E-14
Fitness changed from 0.4365767868800286 to 0.4365767868800073
Iteration 20 complete. Error: 0.4365767868800073 Total: 0.2450; Orientation: 0.0192; Line Search: 0.1984
Low gradient: 7.060484807522508E-10
th(0)=0.4365767868800073;dx=-4.985044571725615E-19
New Minimum: 0.4365767868800073 > 0.43657678688000223
WOLF (strong): th(28483.072916666693)=0.43657678688000223; dx=1.4088451722200536E-19 evalInputDelta=5.051514762044462E-15
END: th(14241.536458333347)=0.43657678688000245; dx=-1.7880996997841355E-19 evalInputDelta=4.829470157119431E-15
Fitness changed from 0.4365767868800073 to 0.43657678688000223
Iteration 21 complete. Error: 0.43657678688000223 Total: 0.3768; Orientation: 0.0200; Line Search: 0.3293
Low gradient: 4.3743826953122107E-10
th(0)=0.43657678688000223;dx=-1.913522396504692E-19
New Minimum: 0.43657678688000223 > 0.43657678688000107
WOLF (strong): th(30682.460185187178)=0.43657678688000107; dx=1.185158740997634E-19 evalInputDelta=1.1657341758564144E-15
New Minimum: 0.43657678688000107 > 0.43657678688000046
END: th(15341.230092593589)=0.43657678688000046; dx=-3.6418182773962426E-20 evalInputDelta=1.7763568394002505E-15
Fitness changed from 0.43657678688000223 to 0.43657678688000046
Iteration 22 complete. Error: 0.43657678688000046 Total: 0.3194; Orientation: 0.0190; Line Search: 0.2737
Low gradient: 1.326347636217809E-10
th(0)=0.43657678688000046;dx=-1.7591980521005692E-20
New Minimum: 0.43657678688000046 > 0.43657678688000007
END: th(33051.678299244675)=0.43657678688000007; dx=-4.652007589935759E-21 evalInputDelta=3.885780586188048E-16
Fitness changed from 0.43657678688000046 to 0.43657678688000007
Iteration 23 complete. Error: 0.43657678688000007 Total: 0.1571; Orientation: 0.0270; Line Search: 0.0977
Zero gradient: 5.353317985192701E-11
th(0)=0.43657678688000007;dx=-2.8658013450587636E-21
WOLF (strong): th(71207.68229166674)=0.43657678688000007; dx=3.9455211391531615E-21 evalInputDelta=0.0
New Minimum: 0.43657678688000007 > 0.43657678688
WOLF (strong): th(35603.84114583337)=0.43657678688; dx=5.398598971737343E-22 evalInputDelta=5.551115123125783E-17
END: th(11867.947048611124)=0.43657678688000007; dx=-1.730580931283924E-21 evalInputDelta=0.0
Fitness changed from 0.43657678688000007 to 0.43657678688
Iteration 24 complete. Error: 0.43657678688 Total: 0.3715; Orientation: 0.0192; Line Search: 0.3252
Zero gradient: 3.735646727650598E-11
th(0)=0.43657678688;dx=-1.3955056473806617E-21
WOLF (strong): th(25568.716820989317)=0.43657678688; dx=5.836563410637608E-22 evalInputDelta=0.0
END: th(12784.358410494659)=0.43657678688; dx=-4.0592465326903196E-22 evalInputDelta=0.0
Fitness changed from 0.43657678688 to 0.43657678688
Static Iteration Total: 0.4114; Orientation: 0.0198; Line Search: 0.3637
Iteration 25 failed. Error: 0.43657678688
Previous Error: 0.0 -> 0.43657678688
Optimization terminated 25
Final threshold in iteration 25: 0.43657678688 (> 0.0) after 9.332s (< 30.000s)

Returns

    0.43657678688

This training apply resulted in the following configuration:

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

    RefList<double[]> state = network.state();
    assert state != null;
    String description = state.stream().map(RefArrays::toString).reduce((a, b) -> a + "\n" + b)
        .orElse("");
    state.freeRef();
    return description;

Returns

    

And regressed input:

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

    return RefArrays.stream(RefUtil.addRef(data)).flatMap(x -> {
      return RefArrays.stream(x);
    }).limit(1).map(x -> {
      String temp_18_0015 = x.prettyPrint();
      x.freeRef();
      return temp_18_0015;
    }).reduce((a, b) -> a + "\n" + b).orElse("");

Returns

    [
    	[ [ 1.626, 0.07800000000000014, -0.464 ], [ -1.192, -1.056, 2.9000000020014287 ], [ -1.46, -1.476, -1.728 ], [ 0.4100000000000002, 0.9299999999999999, -0.696 ], [ -0.472, -1.448, 1.1079999992340213 ], [ -1.028, -0.412, -0.004278978574404402 ], [ -0.584, 1.54, 1.58 ], [ -0.005577338482729233, -0.27384997469555183, -1.276 ], ... ],
    	[ [ 1.872000000978476, -1.992, -1.1 ], [ -0.224, 3.576000002352296, -0.804 ], [ -1.088, -1.264, -1.912 ], [ 1.8560000013244018, -1.168, -1.616 ], [ -1.912, 0.39999999838403183, -1.636 ], [ 1.7840000000000003, -1.076, 1.5840000000000003 ], [ 1.176, -0.5, 2.1559999999999997 ], [ -0.94, -0.03800957299819922, -0.006009572998199195 ], ... ],
    	[ [ -1.656, 4.072000004042391, -0.896 ], [ 0.904, 0.616, -0.16865097568130866 ], [ -1.576, 0.48000000000000004, 0.46399999999999997 ], [ -0.4904334830731588, -0.004133143128796091, -7.029348549696668E-4 ], [ 1.128, 1.0839999999999999, -1.856 ], [ -1.076, 0.6399999999999996, 1.6720000000000004 ], [ 1.2119999993436674, -1.648, -0.18669870536657965 ], [ -1.42, -0.2, -0.044 ], ... ],
    	[ [ -0.344, 1.6000000000000003, 0.7919999999999999 ], [ 1.8459999999999999, -0.996, 0.9979999999999999 ], [ 1.3679999999999999, 1.484, -1.784 ], [ 0.5013333390952537, 0.9453333390952539, 0.9693333390952539 ], [ 1.5999999999999999, 1.192, -0.44 ], [ 1.4360000000000004, 0.7959999999999999, -0.88 ], [ -1.576, 0.546, 0.998 ], [ 1.3559999981804454, 0.3239999981804461, 0.35599999818044614 ], ... ],
    	[ [ -1.532, -1.992, 2.0600000023720635 ], [ -1.504, -0.0029992840474797333, -0.532 ], [ 0.10399999783931775, -0.350900630159385, -0.828 ], [ 1.7199999997924444, -1.78, -1.296 ], [ -0.312, 1.188, 1.18 ], [ 0.5279999999999997, -1.24, 1.7640000000000002 ], [ -1.124, 1.9920000018086983, -0.26 ], [ -1.668, 0.5199999983932108, -0.033870609154072195 ], ... ],
    	[ [ -1.548, 3.2960000034444334, -0.212 ], [ -1.712, -1.44, -0.78 ], [ 0.3140000000000002, -1.816, 1.4379999999999997 ], [ 0.5719999988287937, -1.316, -2.0 ], [ 1.07, -1.032, 1.9179999999999997 ], [ -1.256, -0.396, 3.2080000039139045 ], [ 0.13600000130533216, 0.4440000013053321, 0.12800000130533215 ], [ 0.566, 0.4780000000000001, -0.08178807131999094 ], ... ],
    	[ [ 0.5159999995552381, -0.908, -0.916 ], [ 0.3999999991878644, -1.036, -0.18616520729431751 ], [ 1.3819999999999997, 0.3940000000000002, -1.472 ], [ 0.694, 0.526, -1.216 ], [ -0.152, -0.22, -0.092 ], [ 1.1800000000000002, -1.68, 0.6079999999999999 ], [ 0.3919999999999998, -0.08606950827953425, 0.6280000000000002 ], [ -1.056, 2.018, 1.2019999999999997 ], ... ],
    	[ [ -1.3, -0.66, 1.1400000011119045 ], [ 0.3839999993328572, -1.272, -0.788 ], [ -0.005385381134141332, -0.62, -0.52 ], [ 1.516, -0.696, 1.7839999999999998 ], [ -1.936, -1.064, -0.348 ], [ -1.8, -1.968, -0.068 ], [ 0.7760000002767408, -0.868, -1.144 ], [ -1.5, 1.3960000000000001, 1.208 ], ... ],
    	...
    ]

To produce the following output:

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

    Result[] array = ConstantResult.batchResultArray(pop(RefUtil.addRef(data)));
    @Nullable
    Result eval = layer.eval(array);
    assert eval != null;
    TensorList tensorList = Result.getData(eval);
    String temp_18_0016 = tensorList.stream().limit(1).map(x -> {
      String temp_18_0017 = x.prettyPrint();
      x.freeRef();
      return temp_18_0017;
    }).reduce((a, b) -> a + "\n" + b).orElse("");
    tensorList.freeRef();
    return temp_18_0016;

Returns

    [
    	[ [ 1.704 ], [ 2.9000000020014287 ], [ 0.0 ], [ 1.34 ], [ 1.1079999992340213 ], [ 0.0 ], [ 3.12 ], [ 0.0 ], ... ],
    	[ [ 1.872000000978476 ], [ 3.576000002352296 ], [ 0.0 ], [ 1.8560000013244018 ], [ 0.39999999838403183 ], [ 3.3680000000000003 ], [ 3.332 ], [ 0.0 ], ... ],
    	[ [ 4.072000004042391 ], [ 1.52 ], [ 0.944 ], [ 0.0 ], [ 2.2119999999999997 ], [ 2.312 ], [ 1.2119999993436674 ], [ 0.0 ], ... ],
    	[ [ 2.3920000000000003 ], [ 2.844 ], [ 2.852 ], [ 2.4160000172857616 ], [ 2.792 ], [ 2.232 ], [ 1.544 ], [ 2.0359999945413376 ], ... ],
    	[ [ 2.0600000023720635 ], [ 0.0 ], [ 0.10399999783931775 ], [ 1.7199999997924444 ], [ 2.368 ], [ 2.292 ], [ 1.9920000018086983 ], [ 0.5199999983932108 ], ... ],
    	[ [ 3.2960000034444334 ], [ 0.0 ], [ 1.752 ], [ 0.5719999988287937 ], [ 2.9879999999999995 ], [ 3.2080000039139045 ], [ 0.7080000039159965 ], [ 1.044 ], ... ],
    	[ [ 0.5159999995552381 ], [ 0.3999999991878644 ], [ 1.7759999999999998 ], [ 1.22 ], [ 0.0 ], [ 1.788 ], [ 1.02 ], [ 3.2199999999999998 ], ... ],
    	[ [ 1.1400000011119045 ], [ 0.3839999993328572 ], [ 0.0 ], [ 3.3 ], [ 0.0 ], [ 0.0 ], [ 0.7760000002767408 ], [ 2.604 ], ... ],
    	...
    ]

Conjugate Gradient Descent

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

TrainingTester.java:452 executed in 21.33 seconds (0.277 gc):

    IterativeTrainer iterativeTrainer = new IterativeTrainer(trainable.addRef());
    try {
      iterativeTrainer.setLineSearchFactory(label -> new QuadraticSearch());
      iterativeTrainer.setOrientation(new GradientDescent());
      iterativeTrainer.setMonitor(TrainingTester.getMonitor(history));
      iterativeTrainer.setTimeout(30, TimeUnit.SECONDS);
      iterativeTrainer.setMaxIterations(250);
      iterativeTrainer.setTerminateThreshold(0);
      return iterativeTrainer.run();
    } finally {
      iterativeTrainer.freeRef();
    }
Logging
Reset training subject: 11061204968228
Reset training subject: 11061234922034
Constructing line search parameters: GD
F(0.0) = LineSearchPoint{point=PointSample{avg=2.5145065945600003}, derivative=-1.6121304887680004E-4}
New Minimum: 2.5145065945600003 > 2.514506594559984
F(1.0E-10) = LineSearchPoint{point=PointSample{avg=2.514506594559984}, derivative=-1.612130488767993E-4}, evalInputDelta = -1.6431300764452317E-14
New Minimum: 2.514506594559984 > 2.5145065945598875
F(7.000000000000001E-10) = LineSearchPoint{point=PointSample{avg=2.5145065945598875}, derivative=-1.6121304887679495E-4}, evalInputDelta = -1.127986593019159E-13
New Minimum: 2.5145065945598875 > 2.51450659455921
F(4.900000000000001E-9) = LineSearchPoint{point=PointSample{avg=2.51450659455921}, derivative=-1.612130488767645E-4}, evalInputDelta = -7.900347043232614E-13
New Minimum: 2.51450659455921 > 2.5145065945544705
F(3.430000000000001E-8) = LineSearchPoint{point=PointSample{avg=2.5145065945544705}, derivative=-1.6121304887655125E-4}, evalInputDelta = -5.52979884105298E-12
New Minimum: 2.5145065945544705 > 2.5145065945212925
F(2.4010000000000004E-7) = LineSearchPoint{point=PointSample{avg=2.5145065945212925}, derivative=-1.6121304887505868E-4}, evalInputDelta = -3.870770370895116E-11
New Minimum: 2.5145065945212925 > 2.5145065942890494
F(1.6807000000000003E-6) = LineSearchPoint{point=PointSample{avg=2.5145065942890494}, derivative=-1.612130488646105E-4}, evalInputDelta = -2.7095081733818915E-10
New Minimum: 2.5145065942890494 > 2.5145065926633445
F(1.1764900000000001E-5) = LineSearchPoint{point=PointSample{avg=2.5145065926633445}, derivative=-1.6121304879147341E-4}, evalInputDelta = -1.896655721367324E-9
New Minimum: 2.5145065926633445 > 2.5145065812834124
F(8.235430000000001E-5) = LineSearchPoint{point=PointSample{avg=2.5145065812834124}, derivative=-1.6121304827951372E-4}, evalInputDelta = -1.327658782912522E-8
New Minimum: 2.5145065812834124 > 2.514506501623887
F(5.764801000000001E-4) = LineSearchPoint{point=PointSample{avg=2.514506501623887}, derivative=-1.6121304469579584E-4}, evalInputDelta = -9.29361134716089E-8
New Minimum: 2.514506501623887 > 2.514505944007257
F(0.004035360700000001) = LineSearchPoint{point=PointSample{avg=2.514505944007257}, derivative=-1.612130196097708E-4}, evalInputDelta = -6.505527432310032E-7
New Minimum: 2.514505944007257 > 2.514502040693281
F(0.028247524900000005) = LineSearchPoint{point=PointSample{avg=2.514502040693281}, derivative=-1.612128440075953E-4}, evalInputDelta = -4.553866719270161E-6
New Minimum: 2.514502040693281 > 2.514474717614496
F(0.19773267430000002) = LineSearchPoint{point=PointSample{avg=2.514474717614496}, derivative=-1.6121161479236694E-4}, evalInputDelta = -3.187694550410569E-5
New Minimum: 2.514474717614496 > 2.514283461896346
F(1.3841287201) = LineSearchPoint{point=PointSample{avg=2.514283461896346}, derivative=-1.6120301028576834E-4}, evalInputDelta = -2.2313266365436846E-4
New Minimum: 2.514283461896346 > 2.512944957703166
F(9.688901040700001) = LineSearchPoint{point=PointSample{avg=2.512944957703166}, derivative=-1.6114277873957816E-4}, evalInputDelta = -0.001561636856834081
New Minimum: 2.512944957703166 > 2.503589521710791
F(67.8223072849) = LineSearchPoint{point=PointSample{avg=2.503589521710791}, derivative=-1.6071183140518283E-4}, evalInputDelta = -0.010917072849209397
New Minimum: 2.503589521710791 > 2.43884262598838
F(474.7561509943) = LineSearchPoint{point=PointSample{avg=2.43884262598838}, derivative=-1.5749570430411601E-4}, evalInputDelta = -0.07566396857162028
New Minimum: 2.43884262598838 > 2.02194627721301
F(3323.2930569601003) = LineSearchPoint{point=PointSample{avg=2.02194627721301}, derivative=-1.3530370358370077E-4}, evalInputDelta = -0.49256031734699013
New Minimum: 2.02194627721301 > 0.6760539879034384
F(23263.0513987207) = LineSearchPoint{point=PointSample{avg=0.6760539879034384}, derivative=-1.504166618186553E-5}, evalInputDelta = -1.8384526066565618
F(162841.3597910449) = LineSearchPoint{point=PointSample{avg=12.807662343041144}, derivative=1.8046158502842206E-4}, evalInputDelta = 10.293155748481144
F(12526.258445464993) = LineSearchPoint{point=PointSample{avg=1.0925701012078854}, derivative=-6.845610366190642E-5}, evalInputDelta = -1.4219364933521148
F(87683.80911825495) = LineSearchPoint{point=PointSample{avg=3.0649123352550958}, derivative=7.932968633746883E-5}, evalInputDelta = 0.5504057406950955
F(6744.908393711919) = LineSearchPoint{point=PointSample{avg=1.6038647093030995}, derivative=-1.0925358267098587E-4}, evalInputDelta = -0.9106418852569007
F(47214.358755983434) = LineSearchPoint{point=PointSample{avg=0.9071375372833674}, derivative=2.7788933269513776E-5}, evalInputDelta = -1.6073690572766328
0.9071375372833674 <= 2.5145065945600003
F(40272.4386240707) = LineSearchPoint{point=PointSample{avg=0.7464921614058839}, derivative=1.8459452922557942E-5}, evalInputDelta = -1.7680144331541163
Right bracket at 40272.4386240707
F(36134.87067453657) = LineSearchPoint{point=PointSample{avg=0.6824443382109131}, derivative=1.2418024610444127E-5}, evalInputDelta = -1.8320622563490871
Right bracket at 36134.87067453657
New Minimum: 0.6760539879034384 > 0.6555985931220063
F(33550.51924296763) = LineSearchPoint{point=PointSample{avg=0.6555985931220063}, derivative=8.313015689973026E-6}, evalInputDelta = -1.858908001437994
Right bracket at 33550.51924296763
New Minimum: 0.6555985931220063 > 0.6442012470250728
F(31905.309147480064) = LineSearchPoint{point=PointSample{avg=0.6442012470250728}, derivative=5.522915695356668E-6}, evalInputDelta = -1.8703053475349276
Right bracket at 31905.309147480064
New Minimum: 0.6442012470250728 > 0.6393818980770261
F(30848.48656509372) = LineSearchPoint{point=PointSample{avg=0.6393818980770261}, derivative=3.5909593329260974E-6}, evalInputDelta = -1.8751246964829742
Right bracket at 30848.48656509372
New Minimum: 0.6393818980770261 > 0.6374034512524734
F(30176.320505900563) = LineSearchPoint{point=PointSample{avg=0.6374034512524734}, derivative=2.292200582865559E-6}, evalInputDelta = -1.8771031433075267
Right bracket at 30176.320505900563
New Minimum: 0.6374034512524734 > 0.6366157159673789
F(29753.274886992607) = LineSearchPoint{point=PointSample{avg=0.6366157159673789}, derivative=1.4338830350866946E-6}, evalInputDelta = -1.8778908785926214
Right bracket at 29753.274886992607
Converged to right
Fitness changed from 2.5145065945600003 to 0.6366157159673789
Iteration 1 complete. Error: 0.6366157159673789 Total: 4.1820; Orientation: 0.0208; Line Search: 3.9975
F(0.0) = LineSearchPoint{point=PointSample{avg=0.6366157159673789}, derivative=-1.0777334938610945E-5}
New Minimum: 0.6366157159673789 > 0.48471822769358425
F(29753.274886992607) = LineSearchPoint{point=PointSample{avg=0.48471822769358425}, derivative=5.668630594161988E-7}, evalInputDelta = -0.15189748827379462
0.48471822769358425 <= 0.6366157159673789
New Minimum: 0.48471822769358425 > 0.48429683471608165
F(28266.52082707361) = LineSearchPoint{point=PointSample{avg=0.48429683471608165}, derivative=-5.360130369343619E-22}, evalInputDelta = -0.15231888125129722
Left bracket at 28266.52082707361
Converged to left
Fitness changed from 0.6366157159673789 to 0.48429683471608165
Iteration 2 complete. Error: 0.48429683471608165 Total: 0.2550; Orientation: 0.0197; Line Search: 0.2077
F(0.0) = LineSearchPoint{point=PointSample{avg=0.48429683471608165}, derivative=-2.4711277423638057E-6}
New Minimum: 0.48429683471608165 > 0.45704085680739387
F(28266.52082707361) = LineSearchPoint{point=PointSample{avg=0.45704085680739387}, derivative=5.426287894553802E-7}, evalInputDelta = -0.02725597790868778
0.45704085680739387 <= 0.48429683471608165
New Minimum: 0.45704085680739387 > 0.4556600279327824
F(23177.11568881194) = LineSearchPoint{point=PointSample{avg=0.4556600279327824}, derivative=2.8496372102451803E-22}, evalInputDelta = -0.028636806783299273
Right bracket at 23177.11568881194
Converged to right
Fitness changed from 0.48429683471608165 to 0.4556600279327824
Iteration 3 complete. Error: 0.4556600279327824 Total: 0.2642; Orientation: 0.0223; Line Search: 0.2115
F(0.0) = LineSearchPoint{point=PointSample{avg=0.4556600279327

...skipping 22103 bytes...

alInputDelta = 1.6924794898898199E-12
F(12496.624856630027) = LineSearchPoint{point=PointSample{avg=0.44652629392004456}, derivative=-2.8754287851841967E-18}, evalInputDelta = -5.134781488891349E-14
F(87476.3739964102) = LineSearchPoint{point=PointSample{avg=0.44652629392037824}, derivative=1.165861162241633E-17}, evalInputDelta = 2.823297151621773E-13
F(6728.9518458777075) = LineSearchPoint{point=PointSample{avg=0.4465262939200644}, derivative=-4.011725771218263E-18}, evalInputDelta = -3.1530333899354446E-14
F(47102.66292114395) = LineSearchPoint{point=PointSample{avg=0.44652629392006293}, derivative=3.942353130952256E-18}, evalInputDelta = -3.297362383136715E-14
0.44652629392006293 <= 0.4465262939200959
New Minimum: 0.446526293920025 > 0.4465262939200235
F(27091.869940078363) = LineSearchPoint{point=PointSample{avg=0.4465262939200235}, derivative=-2.2992649565699754E-29}, evalInputDelta = -7.238654120556021E-14
Left bracket at 27091.869940078363
Converged to left
Fitness changed from 0.4465262939200959 to 0.4465262939200235
Iteration 22 complete. Error: 0.4465262939200235 Total: 0.9539; Orientation: 0.0178; Line Search: 0.9052
Low gradient: 1.2367810203665034E-9
F(0.0) = LineSearchPoint{point=PointSample{avg=0.4465262939200235}, derivative=-1.5296272923388091E-18}
New Minimum: 0.4465262939200235 > 0.44652629392000626
F(27091.869940078363) = LineSearchPoint{point=PointSample{avg=0.44652629392000626}, derivative=2.5598250817914425E-19}, evalInputDelta = -1.7263968032921184E-14
0.44652629392000626 <= 0.4465262939200235
New Minimum: 0.44652629392000626 > 0.4465262939200058
F(23208.017590862557) = LineSearchPoint{point=PointSample{avg=0.4465262939200058}, derivative=-1.6686309700317928E-29}, evalInputDelta = -1.7708057242771247E-14
Left bracket at 23208.017590862557
Converged to left
Fitness changed from 0.4465262939200235 to 0.4465262939200058
Iteration 23 complete. Error: 0.4465262939200058 Total: 0.2421; Orientation: 0.0182; Line Search: 0.1989
Low gradient: 5.671782703200898E-10
F(0.0) = LineSearchPoint{point=PointSample{avg=0.4465262939200058}, derivative=-3.216911903232888E-19}
New Minimum: 0.4465262939200058 > 0.44652629392000154
F(23208.017590862557) = LineSearchPoint{point=PointSample{avg=0.44652629392000154}, derivative=-4.6117196333662004E-20}, evalInputDelta = -4.274358644806853E-15
F(162456.1231360379) = LineSearchPoint{point=PointSample{avg=0.4465262939201078}, derivative=1.5643153625284026E-18}, evalInputDelta = 1.0197398481182063E-13
F(12496.6248566183) = LineSearchPoint{point=PointSample{avg=0.4465262939200027}, derivative=-1.7330519356510186E-19}, evalInputDelta = -3.1086244689504383E-15
F(87476.3739963281) = LineSearchPoint{point=PointSample{avg=0.4465262939200228}, derivative=7.026770943750746E-19}, evalInputDelta = 1.6986412276764895E-14
F(6728.951845871392) = LineSearchPoint{point=PointSample{avg=0.44652629392000387}, derivative=-2.417910382323852E-19}, evalInputDelta = -1.942890293094024E-15
F(47102.66292109974) = LineSearchPoint{point=PointSample{avg=0.44652629392000376}, derivative=2.3760987437426053E-19}, evalInputDelta = -2.0539125955565396E-15
0.44652629392000376 <= 0.4465262939200058
New Minimum: 0.44652629392000154 > 0.4465262939200015
F(27091.869940707464) = LineSearchPoint{point=PointSample{avg=0.4465262939200015}, derivative=-3.794536765697301E-30}, evalInputDelta = -4.3298697960381105E-15
Left bracket at 27091.869940707464
Converged to left
Fitness changed from 0.4465262939200058 to 0.4465262939200015
Iteration 24 complete. Error: 0.4465262939200015 Total: 0.7333; Orientation: 0.0182; Line Search: 0.6889
Low gradient: 3.036318269889731E-10
F(0.0) = LineSearchPoint{point=PointSample{avg=0.4465262939200015}, derivative=-9.219228636066169E-20}
New Minimum: 0.4465262939200015 > 0.4465262939200004
F(27091.869940707464) = LineSearchPoint{point=PointSample{avg=0.4465262939200004}, derivative=1.5428341798411065E-20}, evalInputDelta = -1.0547118733938987E-15
0.4465262939200004 <= 0.4465262939200015
F(23208.017592387045) = LineSearchPoint{point=PointSample{avg=0.4465262939200004}, derivative=2.9969153947872378E-30}, evalInputDelta = -1.0547118733938987E-15
Right bracket at 23208.017592387045
Converged to right
Fitness changed from 0.4465262939200015 to 0.4465262939200004
Iteration 25 complete. Error: 0.4465262939200004 Total: 0.6176; Orientation: 0.0192; Line Search: 0.5723
Low gradient: 1.7030259107402284E-10
F(0.0) = LineSearchPoint{point=PointSample{avg=0.4465262939200004}, derivative=-2.9002972526525846E-20}
New Minimum: 0.4465262939200004 > 0.44652629392000015
F(23208.017592387045) = LineSearchPoint{point=PointSample{avg=0.44652629392000015}, derivative=3.787683939074033E-21}, evalInputDelta = -2.7755575615628914E-16
0.44652629392000015 <= 0.4465262939200004
F(20527.234559432174) = LineSearchPoint{point=PointSample{avg=0.44652629392000015}, derivative=1.4175680461047078E-30}, evalInputDelta = -2.7755575615628914E-16
Right bracket at 20527.234559432174
Converged to right
Fitness changed from 0.4465262939200004 to 0.44652629392000015
Iteration 26 complete. Error: 0.44652629392000015 Total: 0.3511; Orientation: 0.0166; Line Search: 0.3057
Zero gradient: 7.454212575920816E-11
F(0.0) = LineSearchPoint{point=PointSample{avg=0.44652629392000015}, derivative=-5.5565285127016036E-21}
New Minimum: 0.44652629392000015 > 0.44652629392000004
F(20527.234559432174) = LineSearchPoint{point=PointSample{avg=0.44652629392000004}, derivative=-6.418405745143821E-22}, evalInputDelta = -1.1102230246251565E-16
F(143690.64191602523) = LineSearchPoint{point=PointSample{avg=0.44652629392000176}, derivative=2.83929252037379E-20}, evalInputDelta = 1.609823385706477E-15
F(11053.126301232709) = LineSearchPoint{point=PointSample{avg=0.44652629392000004}, derivative=-2.9101580843684768E-21}, evalInputDelta = -1.1102230246251565E-16
F(77371.88410862896) = LineSearchPoint{point=PointSample{avg=0.4465262939200004}, derivative=1.2835614029774708E-20}, evalInputDelta = 2.7755575615628914E-16
F(5951.6833929714585) = LineSearchPoint{point=PointSample{avg=0.44652629392000015}, derivative=-4.131559820621146E-21}, evalInputDelta = 0.0
F(41661.78375080021) = LineSearchPoint{point=PointSample{avg=0.44652629392000004}, derivative=4.418252331588533E-21}, evalInputDelta = -1.1102230246251565E-16
0.44652629392000004 <= 0.44652629392000015
F(23208.01759106761) = LineSearchPoint{point=PointSample{avg=0.44652629392000004}, derivative=-3.4153246626206195E-31}, evalInputDelta = -1.1102230246251565E-16
Left bracket at 23208.01759106761
Converged to left
Fitness changed from 0.44652629392000015 to 0.44652629392000004
Iteration 27 complete. Error: 0.44652629392000004 Total: 1.1690; Orientation: 0.0403; Line Search: 1.1026
Zero gradient: 3.1437892947980345E-11
F(0.0) = LineSearchPoint{point=PointSample{avg=0.44652629392000004}, derivative=-9.883411130086723E-22}
F(23208.01759106761) = LineSearchPoint{point=PointSample{avg=0.44652629392000004}, derivative=-3.698414656488485E-22}, evalInputDelta = 0.0
F(162456.12313747327) = LineSearchPoint{point=PointSample{avg=0.4465262939200002}, derivative=3.152081626774169E-21}, evalInputDelta = 1.6653345369377348E-16
F(12496.624856728713) = LineSearchPoint{point=PointSample{avg=0.44652629392000004}, derivative=-6.553028414356643E-22}, evalInputDelta = 0.0
F(87476.37399710099) = LineSearchPoint{point=PointSample{avg=0.44652629392000004}, derivative=1.2799169905557849E-21}, evalInputDelta = 0.0
0.44652629392000004 <= 0.44652629392000004
F(38115.81085168196) = LineSearchPoint{point=PointSample{avg=0.44652629392000004}, derivative=2.745506532967851E-23}, evalInputDelta = 0.0
Right bracket at 38115.81085168196
F(37085.61197976021) = LineSearchPoint{point=PointSample{avg=0.44652629392000004}, derivative=-4.3080293291118415E-31}, evalInputDelta = 0.0
Left bracket at 37085.61197976021
Converged to left
Fitness changed from 0.44652629392000004 to 0.44652629392000004
Static Iteration Total: 1.2053; Orientation: 0.0184; Line Search: 1.1627
Iteration 28 failed. Error: 0.44652629392000004
Previous Error: 0.0 -> 0.44652629392000004
Optimization terminated 28
Final threshold in iteration 28: 0.44652629392000004 (> 0.0) after 21.333s (< 30.000s)

Returns

    0.44652629392000004

This training apply resulted in the following configuration:

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

    RefList<double[]> state = network.state();
    assert state != null;
    String description = state.stream().map(RefArrays::toString).reduce((a, b) -> a + "\n" + b)
        .orElse("");
    state.freeRef();
    return description;

Returns

    

And regressed input:

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

    return RefArrays.stream(RefUtil.addRef(data)).flatMap(x -> {
      return RefArrays.stream(x);
    }).limit(1).map(x -> {
      String temp_18_0015 = x.prettyPrint();
      x.freeRef();
      return temp_18_0015;
    }).reduce((a, b) -> a + "\n" + b).orElse("");

Returns

    [
    	[ [ 1.6260000000000001, 0.07799999999999993, -0.464 ], [ -1.192, -1.056, 2.899999991934251 ], [ -1.46, -1.476, -1.728 ], [ 0.41000000000000014, 0.9299999999999999, -0.696 ], [ -0.472, -1.448, 1.1080000030868917 ], [ -1.028, -0.412, 6.392853138430551E-9 ], [ -0.584, 1.54, 1.58 ], [ 7.596629561907813E-9, -0.9661599918594092, -1.276 ], ... ],
    	[ [ 1.8719999960567446, -1.992, -1.1 ], [ -0.224, 3.5759999905202555, -0.804 ], [ -1.088, -1.264, -1.912 ], [ 1.8559999946626646, -1.168, -1.616 ], [ -1.912, 0.4000000065123457, -1.636 ], [ 1.784, -1.076, 1.584 ], [ 1.176, -0.5, 2.156 ], [ -0.94, -0.12931807330590384, -0.09731807330590381 ], ... ],
    	[ [ -1.656, 4.071999983709178, -0.896 ], [ 0.904, 0.616, -0.64818619095535 ], [ -1.576, 0.48, 0.46399999999999997 ], [ -1.3716927407293351, -0.27569274072933503, -0.18369274072933517 ], [ 1.128, 1.0839999999999999, -1.856 ], [ -1.076, 0.6399999999999999, 1.672 ], [ 1.2120000013955061, -1.648, -0.2945023538483391 ], [ -1.42, -0.2, -0.044 ], ... ],
    	[ [ -0.344, 1.6000000000000003, 0.7920000000000003 ], [ 1.8459999999999999, -0.996, 0.9980000000000001 ], [ 1.3679999999999999, 1.484, -1.784 ], [ 0.5013333298141287, 0.9453333298141285, 0.9693333298141286 ], [ 1.6, 1.192, -0.44 ], [ 1.4360000000000002, 0.796, -0.88 ], [ -1.576, 0.546, 0.9980000000000001 ], [ 1.3560000011113278, 0.3240000011113278, 0.3560000011113278 ], ... ],
    	[ [ -1.532, -1.992, 2.0599999904405935 ], [ -1.504, 4.480971826002725E-9, -0.532 ], [ 0.10400000847012508, -1.0311178959317338, -0.828 ], [ 1.720000000836448, -1.78, -1.296 ], [ -0.312, 1.188, 1.18 ], [ 0.5279999999999999, -1.24, 1.7639999999999998 ], [ -1.124, 1.9919999927109524, -0.26 ], [ -1.668, 0.5200000044335726, -0.6914139660673427 ], ... ],
    	[ [ -1.548, 3.295999986118945, -0.212 ], [ -1.712, -1.44, -0.78 ], [ 0.31400000000000006, -1.816, 1.438 ], [ 0.572000004719957, -1.316, -2.0 ], [ 1.07, -1.032, 1.918 ], [ -1.256, -0.396, 3.2079999842269795 ], [ 0.13599999920274308, 0.44399999920274313, 0.12799999920274308 ], [ 0.566, 0.47800000000000004, -0.8783980692356087 ], ... ],
    	[ [ 0.5160000017923888, -0.908, -0.916 ], [ 0.4000000000086317, -1.036, -0.4592979805485238 ], [ 1.382, 0.39400000000000013, -1.472 ], [ 0.694, 0.526, -1.216 ], [ -0.152, -0.22, -0.092 ], [ 1.1800000000000004, -1.68, 0.6079999999999997 ], [ -0.0545374565666048, -0.9945374565666047, 1.0199999896897929 ], [ -1.056, 2.018, 1.2019999999999997 ], ... ],
    	[ [ -1.3, -0.66, 1.139999995519028 ], [ 0.3840000026885831, -1.272, -0.788 ], [ 8.045833856467112E-9, -0.62, -0.52 ], [ 1.516, -0.696, 1.7839999999999998 ], [ -1.936, -1.064, -0.348 ], [ -1.8, -1.968, -0.068 ], [ 0.7759999988847359, -0.868, -1.144 ], [ -1.5, 1.3960000000000001, 1.208 ], ... ],
    	...
    ]

To produce the following output:

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

    Result[] array = ConstantResult.batchResultArray(pop(RefUtil.addRef(data)));
    @Nullable
    Result eval = layer.eval(array);
    assert eval != null;
    TensorList tensorList = Result.getData(eval);
    String temp_18_0016 = tensorList.stream().limit(1).map(x -> {
      String temp_18_0017 = x.prettyPrint();
      x.freeRef();
      return temp_18_0017;
    }).reduce((a, b) -> a + "\n" + b).orElse("");
    tensorList.freeRef();
    return temp_18_0016;

Returns

    [
    	[ [ 1.704 ], [ 2.899999991934251 ], [ 0.0 ], [ 1.34 ], [ 1.1080000030868917 ], [ 6.392853138430551E-9 ], [ 3.12 ], [ 7.596629561907813E-9 ], ... ],
    	[ [ 1.8719999960567446 ], [ 3.5759999905202555 ], [ 0.0 ], [ 1.8559999946626646 ], [ 0.4000000065123457 ], [ 3.3680000000000003 ], [ 3.332 ], [ 0.0 ], ... ],
    	[ [ 4.071999983709178 ], [ 1.52 ], [ 0.944 ], [ 0.0 ], [ 2.2119999999999997 ], [ 2.312 ], [ 1.2120000013955061 ], [ 0.0 ], ... ],
    	[ [ 2.3920000000000003 ], [ 2.844 ], [ 2.852 ], [ 2.415999989442386 ], [ 2.792 ], [ 2.232 ], [ 1.544 ], [ 2.0360000033339833 ], ... ],
    	[ [ 2.0599999904405935 ], [ 4.480971826002725E-9 ], [ 0.10400000847012508 ], [ 1.720000000836448 ], [ 2.368 ], [ 2.292 ], [ 1.9919999927109524 ], [ 0.5200000044335726 ], ... ],
    	[ [ 3.295999986118945 ], [ 0.0 ], [ 1.752 ], [ 0.572000004719957 ], [ 2.988 ], [ 3.2079999842269795 ], [ 0.7079999976082293 ], [ 1.044 ], ... ],
    	[ [ 0.5160000017923888 ], [ 0.4000000000086317 ], [ 1.776 ], [ 1.22 ], [ 0.0 ], [ 1.788 ], [ 1.0199999896897929 ], [ 3.2199999999999998 ], ... ],
    	[ [ 1.139999995519028 ], [ 0.3840000026885831 ], [ 8.045833856467112E-9 ], [ 3.3 ], [ 0.0 ], [ 0.0 ], [ 0.7759999988847359 ], [ 2.604 ], ... ],
    	...
    ]

Limited-Memory BFGS

Next, we apply the same optimization using L-BFGS, which is nearly ideal for purely second-order or quadratic functions.

TrainingTester.java:509 executed in 33.03 seconds (0.128 gc):

    IterativeTrainer iterativeTrainer = new IterativeTrainer(trainable.addRef());
    try {
      iterativeTrainer.setLineSearchFactory(label -> new ArmijoWolfeSearch());
      iterativeTrainer.setOrientation(new LBFGS());
      iterativeTrainer.setMonitor(TrainingTester.getMonitor(history));
      iterativeTrainer.setTimeout(30, TimeUnit.SECONDS);
      iterativeTrainer.setIterationsPerSample(100);
      iterativeTrainer.setMaxIterations(250);
      iterativeTrainer.setTerminateThreshold(0);
      return iterativeTrainer.run();
    } finally {
      iterativeTrainer.freeRef();
    }
Logging
Reset training subject: 11082561761575
Reset training subject: 11082586511932
Adding measurement 55666b8 to history. Total: 0
LBFGS Accumulation History: 1 points
Constructing line search parameters: GD
Non-optimal measurement 2.5145065945600003 < 2.5145065945600003. Total: 1
th(0)=2.5145065945600003;dx=-1.6121304887680004E-4
Adding measurement 6ade79a9 to history. Total: 1
New Minimum: 2.5145065945600003 > 2.514159288406907
WOLFE (weak): th(2.154434690031884)=2.514159288406907; dx=-1.611974235318132E-4 evalInputDelta=3.4730615309319646E-4
Adding measurement 546c785e to history. Total: 2
New Minimum: 2.514159288406907 > 2.5138120159175985
WOLFE (weak): th(4.308869380063768)=2.5138120159175985; dx=-1.6118179818682638E-4 evalInputDelta=6.945786424017442E-4
Adding measurement 2783549e to history. Total: 3
New Minimum: 2.5138120159175985 > 2.5124232625982192
WOLFE (weak): th(12.926608140191302)=2.5124232625982192; dx=-1.6111929680687914E-4 evalInputDelta=0.0020833319617810098
Adding measurement bf130f6 to history. Total: 4
New Minimum: 2.5124232625982192 > 2.506180538090498
WOLFE (weak): th(51.70643256076521)=2.506180538090498; dx=-1.6083804059711641E-4 evalInputDelta=0.008326056469502241
Adding measurement 49bddc9d to history. Total: 5
New Minimum: 2.506180538090498 > 2.4730819631077168
WOLFE (weak): th(258.53216280382605)=2.4730819631077168; dx=-1.5921127899896283E-4 evalInputDelta=0.04142463145228348
Adding measurement 18b1b46d to history. Total: 6
New Minimum: 2.4730819631077168 > 2.2738760755926237
WOLFE (weak): th(1551.1929768229563)=2.2738760755926237; dx=-1.4901324258730038E-4 evalInputDelta=0.24063051896737653
Adding measurement 4a544339 to history. Total: 7
New Minimum: 2.2738760755926237 > 1.2160062051175147
END: th(10858.350837760694)=1.2160062051175147; dx=-7.964759407490454E-5 evalInputDelta=1.2985003894424856
Fitness changed from 2.5145065945600003 to 1.2160062051175147
Iteration 1 complete. Error: 1.2160062051175147 Total: 0.9770; Orientation: 0.0471; Line Search: 0.8520
Non-optimal measurement 1.2160062051175147 < 1.2160062051175147. Total: 8
Rejected: LBFGS Orientation magnitude: 1.885e+02, gradient 6.777e-03, dot -0.989; [93e686b1-e626-4744-a072-ec24ce9e1b9c = 1.000/1.000e+00, b953a4ea-f9d2-4e94-a3d7-c69b11a50160 = 1.000/1.000e+00, feef3d9e-95b1-480c-92ee-c289e664b277 = 1.000/1.000e+00, dce3bfc9-b270-48c7-9ac9-51f1fb9c3ec6 = 1.000/1.000e+00, dcc112b9-33ca-483e-ade9-63b9ed0bb4c3 = 1.000/1.000e+00, a30d564a-d81f-49af-b077-1defc24e1e22 = 1.000/1.000e+00, 4e5234f2-f172-4be4-9837-9892f7da58e5 = 1.000/1.000e+00, 81d721e8-7098-4d29-81d3-1596570827b2 = 1.000/1.000e+00, 043e06c5-3d9b-447c-bb33-a08766ed6f9d = 1.000/1.000e+00, d0b313d2-0a0a-48cc-8520-ef38c51e4994 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 1.2160062051175147, 2.2738760755926237, 2.4730819631077168, 2.506180538090498, 2.5124232625982192, 2.5138120159175985, 2.514159288406907, 2.5145065945600003
Rejected: LBFGS Orientation magnitude: 1.885e+02, gradient 6.777e-03, dot -0.989; [b953a4ea-f9d2-4e94-a3d7-c69b11a50160 = 1.000/1.000e+00, 043e06c5-3d9b-447c-bb33-a08766ed6f9d = 1.000/1.000e+00, 81d721e8-7098-4d29-81d3-1596570827b2 = 1.000/1.000e+00, 4e5234f2-f172-4be4-9837-9892f7da58e5 = 1.000/1.000e+00, 93e686b1-e626-4744-a072-ec24ce9e1b9c = 1.000/1.000e+00, dcc112b9-33ca-483e-ade9-63b9ed0bb4c3 = 1.000/1.000e+00, d0b313d2-0a0a-48cc-8520-ef38c51e4994 = 1.000/1.000e+00, feef3d9e-95b1-480c-92ee-c289e664b277 = 1.000/1.000e+00, a30d564a-d81f-49af-b077-1defc24e1e22 = 1.000/1.000e+00, dce3bfc9-b270-48c7-9ac9-51f1fb9c3ec6 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 1.2160062051175147, 2.2738760755926237, 2.4730819631077168, 2.506180538090498, 2.5124232625982192, 2.5138120159175985, 2.514159288406907
Rejected: LBFGS Orientation magnitude: 1.885e+02, gradient 6.777e-03, dot -0.989; [d0b313d2-0a0a-48cc-8520-ef38c51e4994 = 1.000/1.000e+00, b953a4ea-f9d2-4e94-a3d7-c69b11a50160 = 1.000/1.000e+00, dcc112b9-33ca-483e-ade9-63b9ed0bb4c3 = 1.000/1.000e+00, 043e06c5-3d9b-447c-bb33-a08766ed6f9d = 1.000/1.000e+00, feef3d9e-95b1-480c-92ee-c289e664b277 = 1.000/1.000e+00, dce3bfc9-b270-48c7-9ac9-51f1fb9c3ec6 = 1.000/1.000e+00, 81d721e8-7098-4d29-81d3-1596570827b2 = 1.000/1.000e+00, 93e686b1-e626-4744-a072-ec24ce9e1b9c = 1.000/1.000e+00, a30d564a-d81f-49af-b077-1defc24e1e22 = 1.000/1.000e+00, 4e5234f2-f172-4be4-9837-9892f7da58e5 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 1.2160062051175147, 2.2738760755926237, 2.4730819631077168, 2.506180538090498, 2.5124232625982192, 2.5138120159175985
Rejected: LBFGS Orientation magnitude: 1.885e+02, gradient 6.777e-03, dot -0.989; [b953a4ea-f9d2-4e94-a3d7-c69b11a50160 = 1.000/1.000e+00, feef3d9e-95b1-480c-92ee-c289e664b277 = 1.000/1.000e+00, a30d564a-d81f-49af-b077-1defc24e1e22 = 1.000/1.000e+00, 81d721e8-7098-4d29-81d3-1596570827b2 = 1.000/1.000e+00, dce3bfc9-b270-48c7-9ac9-51f1fb9c3ec6 = 1.000/1.000e+00, dcc112b9-33ca-483e-ade9-63b9ed0bb4c3 = 1.000/1.000e+00, 043e06c5-3d9b-447c-bb33-a08766ed6f9d = 1.000/1.000e+00, d0b313d2-0a0a-48cc-8520-ef38c51e4994 = 1.000/1.000e+00, 93e686b1-e626-4744-a072-ec24ce9e1b9c = 1.000/1.000e+00, 4e5234f2-f172-4be4-9837-9892f7da58e5 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 1.2160062051175147, 2.2738760755926237, 2.4730819631077168, 2.506180538090498, 2.5124232625982192
Rejected: LBFGS Orientation magnitude: 2.487e+02, gradient 6.777e-03, dot -0.931; [81d721e8-7098-4d29-81d3-1596570827b2 = 1.000/1.000e+00, feef3d9e-95b1-480c-92ee-c289e664b277 = 1.000/1.000e+00, 4e5234f2-f172-4be4-9837-9892f7da58e5 = 1.000/1.000e+00, 93e686b1-e626-4744-a072-ec24ce9e1b9c = 1.000/1.000e+00, a30d564a-d81f-49af-b077-1defc24e1e22 = 1.000/1.000e+00, b953a4ea-f9d2-4e94-a3d7-c69b11a50160 = 1.000/1.000e+00, 043e06c5-3d9b-447c-bb33-a08766ed6f9d = 1.000/1.000e+00, dce3bfc9-b270-48c7-9ac9-51f1fb9c3ec6 = 1.000/1.000e+00, dcc112b9-33ca-483e-ade9-63b9ed0bb4c3 = 1.000/1.000e+00, d0b313d2-0a0a-48cc-8520-ef38c51e4994 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 1.2160062051175147, 2.2738760755926237, 2.4730819631077168, 2.506180538090498
LBFGS Accumulation History: 3 points
Removed measurement 4a544339 to history. Total: 7
Removed measurement 18b1b46d to history. Total: 6
Removed measurement 49bddc9d to history. Total: 5
Removed measurement bf130f6 to history. Total: 4
Removed measurement 2783549e to history. Total: 3
Adding measurement 6a4a998d to history. Total: 3
th(0)=1.2160062051175147;dx=-4.592805282536093E-5
Adding measurement 4b99a3b3 to history. Total: 4
New Minimum: 1.2160062051175147 > 0.5759367778570614
END: th(23393.607721408407)=0.5759367778570614; dx=-1.0759387194592242E-5 evalInputDelta=0.6400694272604532
Fitness changed from 1.2160062051175147 to 0.5759367778570614
Iteration 2 complete. Error: 0.5759367778570614 Total: 15.5365; Orientation: 15.3571; Line Search: 0.1537
Non-optimal measurement 0.5759367778570614 < 0.5759367778570614. Total: 5
Rejected: LBFGS Orientation magnitude: 7.387e+01, gradient 2.408e-03, dot -0.984; [feef3d9e-95b1-480c-92ee-c289e664b277 = 1.000/1.000e+00, 93e686b1-e626-4744-a072-ec24ce9e1b9c = 1.000/1.000e+00, dcc112b9-33ca-483e-ade9-63b9ed0bb4c3 = 1.000/1.000e+00, d0b313d2-0a0a-48cc-8520-ef38c51e4994 = 1.000/1.000e+00, b953a4ea-f9d2-4e94-a3d7-c69b11a50160 = 1.000/1.000e+00, 043e06c5-3d9b-447c-bb33-a08766ed6f9d = 1.000/1.000e+00, dce3bfc9-b270-48c7-9ac9-51f1fb9c3ec6 = 1.000/1.000e+00, 4e5234f2-f172-4be4-9837-9892f7da58e5 = 1.000/1.000e+00, a30d564a-d81f-49af-b077-1defc24e1e22 = 1.000/1.000e+00, 81d721e8-7098-4d29-81d3-1596570827b2 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.5759367778570614, 1.2160062051175147, 2.5138120159175985, 2.514159288406907, 2.5145065945600003
Rejected: LBFGS Orientation magnitude: 7.387e+01, gradient 2.408e-03, dot -0.984; [93e686b1-e626-4744-a072-ec24ce9e1b9c = 1.000/1.000e+00, b953a4ea-f9d2-4e94-a3d7-c69b11a50160 = 1.000/1.000e+00, 81d721e8-7098-4d29-81d3-1596570827b2 = 1.000/1.000e+00, 043e06c5-3d9b-447c-bb33-a08766ed6f9d = 1.000/1.000e+00, d0b313d2-0a0a-48cc-8520-ef38c51e4994 = 1.000/1.000e+00, a30d564a-d81f-49af-b077-1defc24e1e22 = 1.000/1.000e+00, dcc112b9-33ca-483e-ade9-63b9ed0bb4c3 = 1.000/1.000e+00, feef3d9e-95b1-480c-92ee-c289e664b277 = 1.000/1.000e+00, 4e5234f2-f172-4be4-9837-9892f7da58e5 = 1.000/1.000e+00, dce3bfc9-b270-48c7-9ac9-51f1fb9c3ec6 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.5759367778570614, 1.2160062051175147, 2.5138120159175985, 2.514159288406907
LBFGS Accumulation History: 3 points
Removed measurement 4b99a3b3 to history. Total: 4
Removed measurement 6a4a998d to history. Total: 3
Adding measurement e3f0102 to history. Total: 3
th(0)=0.5759367778570614;dx=-5.796251460421403E-6
Adding measurement 78325d42 to history. Total: 4
New Minimum: 0.5759367778570614 > 0.4464600766246288
WOLF (strong): th(50400.00000000001)=0.4464600766246288; dx=6.479397032584647E-7 evalInputDelta=0.12947670123243266
Non-optimal measurement 0.4705627082846475 < 0.4464600766246288. Total: 5
END: th(25200.000000000004)=0.4705627082846475; dx=-2.567953563013704E-6 evalInputDelta=0.10537406957241391
Fitness changed from 0.5759367778570614 to 0.4464600766246288
Iteration 3 complete. Error: 0.4464600766246288 Total: 4.2218; Orientation: 3.7692; Line Search: 0.4266
Non-optimal measurement 0.4464600766246288 < 0.4464600766246288. Total: 5
Rejected: LBFGS Orientation magnitude: 1.909e+01, gradient 1.064e-03, dot -0.996; [81d721e8-7098-4d29-81d3-1596570827b2 = 1.000/1.000e+00, d0b313d2-0a0a-48cc-8520-ef38c51e4994 = 1.000/1.000e+00, 4e5234f2-f172-4be4-9837-9892f7da58e5 = 1.000/1.000e+00, dce3bfc9-b270-48c7-9ac9-51f1fb9c3ec6 = 1.000/1.000e+00, b953a4ea-f9d2-4e94-a3d7-c69b11a50160 = 1.000/1.000e+00, 043e06c5-3d9b-447c-bb33-a08766ed6f9d = 1.000/1.000e+00, dcc112b9-33ca-483e-ade9-63b9ed0bb4c3 = 1.000/1.000e+00, 93e686b1-e626-4744-a072-ec24ce9e1b9c = 1.000/1.000e+00, a30d564a-d81f-49af-b077-1defc24e1e22 = 1.000/1.000e+00, feef3d9e-95b1-480c-92ee-c289e664b277 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.4464600766246288, 0.5759367778570614, 2.5138120159175985, 2.514159288406907, 2.5145065945600003
Rejected: LBFGS Orientation magnitude: 1.909e+01, gradient 1.064e-03, dot -0.996; [a30d564a-d81f-49af-b077-1defc24e1e22 = 1.000/1.000e+00, b953a4ea-f9d2-4e94-a3d7-c69b11a50160 = 1.000/1.000e+00, 81d721e8-7098-4d29-81d3-1596570827b2 = 1.000/1.000e+00, 4e5234f2-f172-4be4-9837-9892f7da58e5 = 1.000/1.000e+00, 93e686b1-e626-4744-a072-ec24ce9e1b9c = 1.000/1.000e+00, feef3d9e-95b1-480c-92ee-c289e664b277 = 1.000/1.000e+00, d0b313d2-0a0a-48cc-8520-ef38c51e4994 = 1.000/1.000e+00, 043e06c5-3d9b-447c-bb33-a08766ed6f9d = 1.000/1.000e+00, dce3bfc9-b270-48c7-9ac9-51f1fb9c3ec6 = 1.000/1.000e+00, dcc112b9-33ca-483e-ade9-63b9ed0bb4c3 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.4464600766246288, 0.5759367778570614, 2.5138120159175985, 2.514159288406907
LBFGS Accumulation History: 3 points
Removed measurement 78325d42 to history. Total: 4
Removed measurement e3f0102 to history. Total: 3
Adding measurement 722c54d7 to history. Total: 3
th(0)=0.4464600766246288;dx=-1.1313755360060062E-6
Non-optimal measurement 0.47177083053051383 < 0.4464600766246288. Total: 4
Armijo: th(54291.75418880348)=0.47177083053051383; dx=1.5461302572054157E-6 evalInputDelta=-0.025310753905885053
Adding measurement 7c1712eb to history. Total: 4
New Minimum: 0.4464600766246288 > 0.43994904529600837
WOLF (strong): th(27145.87709440174)=0.43994904529600837; dx=6.319767459386835E-7 evalInputDelta=0.006511031328620409
Adding measurement 57db10fd to history. Total: 5
New Minimum: 0.43994904529600837 > 0.4389141553215305
END: th(9048.625698133914)=0.4389141553215305; dx=-5.36484657316944E-7 evalInputDelta=0.00754592130309828
Fitness changed from 0.4464600766246288 to 0.4389141553215305
Iteration 4 complete. Error: 0.4389141553215305 Total: 4.5889; Orientation: 4.0151; Line Search: 0.5488
Non-optimal measurement 0.4389141553215305 < 0.4389141553215305. Total: 6
Rejected: LBFGS Orientation magnitude: 9.395e+00, gradient 5.076e-04, dot -0.985; [4e5234f2-f172-4be4-9837-9892f7da58e5 = 1.000/1.000e+00, a30d564a-d81f-49af-b077-1defc24e1e22 = 1.000/1.000e+00, dcc112b9-33ca-483e-ade9-63b9ed0bb4c3 = 1.000/1.000e+00, 81d721e8-7098-4d29-81d3-1596570827b2 = 1.000/1.000e+00, 93e686b1-e626-4744-a072-ec24ce9e1b9c = 1.000/1.000e+00, b953a4ea-f9d2-4e94-a3d7-c69b11a50160 = 1.000/1.000e+00, 043e06c5-3d9b-447c-bb33-a08766ed6f9d = 1.000/1.000e+00, feef3d9e-95b1-480c-92ee-c289e664b277 = 1.000/1.000e+00, d0b313d2-0a0a-48cc-8520-ef38c51e4994 = 1.000/1.000e+00, dce3bfc9-b270-48c7-9ac9-51f1fb9c3ec6 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.4389141553215305, 0.43994904529600837, 0.4464600766246288, 2.5138120159175985, 2.514159288406907, 2.5145065945600003
Rejected: LBFGS Orientation magnitude: 9.395e+00, gradient 5.076e-04, dot -0.985; [81d721e8-7098-4d29-81d3-1596570827b2 = 1.000/1.000e+00, a30d564a-d81f-49af-b077-1defc24e1e22 = 1.000/1.000e+00, dcc112b9-33ca-483e-ade9-63b9ed0bb4c3 = 1.000/1.000e+00, 043e06c5-3d9b-447c-bb33-a08766ed6f9d = 1.000/1.000e+00, dce3bfc9-b270-48c7-9ac9-51f1fb9c3ec6 = 1.000/1.000e+00, 4e5234f2-f172-4be4-9837-9892f7da58e5 = 1.000/1.000e+00, d0b313d2-0a0a-48cc-8520-ef38c51e4994 = 1.000/1.000e+00, 93e686b1-e626-4744-a072-ec24ce9e1b9c = 1.000/1.000e+00, b953a4ea-f9d2-4e94-a3d7-c69b11a50160 = 1.000/1.000e+00, feef3d9e-95b1-480c-92ee-c289e664b277 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.4389141553215305, 0.43994904529600837, 0.4464600766246288, 2.5138120159175985, 2.514159288406907
Rejected: LBFGS Orientation magnitude: 9.669e+00, gradient 5.076e-04, dot -0.974; [dcc112b9-33ca-483e-ade9-63b9ed0bb4c3 = 1.000/1.000e+00, d0b313d2-0a0a-48cc-8520-ef38c51e4994 = 1.000/1.000e+00, 4e5234f2-f172-4be4-9837-9892f7da58e5 = 1.000/1.000e+00, 81d721e8-7098-4d29-81d3-1596570827b2 = 1.000/1.000e+00, b953a4ea-f9d2-4e94-a3d7-c69b11a50160 = 1.000/1.000e+00, feef3d9e-95b1-480c-92ee-c289e664b277 = 1.000/1.000e+00, dce3bfc9-b270-48c7-9ac9-51f1fb9c3ec6 = 1.000/1.000e+00, 93e686b1-e626-4744-a072-ec24ce9e1b9c = 1.000/1.000e+00, 043e06c5-3d9b-447c-bb33-a08766ed6f9d = 1.000/1.000e+00, a30d564a-d81f-49af-b077-1defc24e1e22 = 1.000/1.000e+00]
Orientation rejected. Popping history element from 0.4389141553215305, 0.43994904529600837, 0.4464600766246288, 2.5138120159175985
LBFGS Accumulation History: 3 points
Removed measurement 57db10fd to history. Total: 5
Removed measurement 7c1712eb to history. Total: 4
Removed measurement 722c54d7 to history. Total: 3
Adding measurement 329bb8b5 to history. Total: 3
th(0)=0.4389141553215305;dx=-2.5764120131607224E-7
Adding measurement 2f252d92 to history. Total: 4
New Minimum: 0.4389141553215305 > 0.43666120059065683
WOLF (strong): th(19494.673101173677)=0.43666120059065683; dx=2.650578097008824E-8 evalInputDelta=0.0022529547308736686
Non-optimal measurement 0.4370952588895494 < 0.43666120059065683. Total: 5
END: th(9747.336550586839)=0.4370952588895494; dx=-1.15567710172992E-7 evalInputDelta=0.0018188964319810763
Fitness changed from 0.4389141553215305 to 0.43666120059065683
Iteration 5 complete. Error: 0.43666120059065683 Total: 7.7008; Orientation: 7.2487; Line Search: 0.4274
Final threshold in iteration 5: 0.43666120059065683 (> 0.0) after 33.025s (< 30.000s)

Returns

    0.43666120059065683

This training apply resulted in the following configuration:

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

    RefList<double[]> state = network.state();
    assert state != null;
    String description = state.stream().map(RefArrays::toString).reduce((a, b) -> a + "\n" + b)
        .orElse("");
    state.freeRef();
    return description;

Returns

    

And regressed input:

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

    return RefArrays.stream(RefUtil.addRef(data)).flatMap(x -> {
      return RefArrays.stream(x);
    }).limit(1).map(x -> {
      String temp_18_0015 = x.prettyPrint();
      x.freeRef();
      return temp_18_0015;
    }).reduce((a, b) -> a + "\n" + b).orElse("");

Returns

    [
    	[ [ 1.6249103529372835, 0.07691035293728365, -0.464 ], [ -1.192, -1.056, 2.9026977037667225 ], [ -1.46, -1.476, -1.728 ], [ 0.4107783193305118, 0.9307783193305118, -0.696 ], [ -0.472, -1.448, 1.1069675454719954 ], [ -1.028, -0.412, -0.004278978574404402 ], [ -0.584, 1.5407471865572913, 1.5807471865572913 ], [ -0.005577338482729233, -0.27384997469555183, -1.276 ], ... ],
    	[ [ 1.8733188773970642, -1.992, -1.1 ], [ -0.224, 3.579170634550518, -0.804 ], [ -1.088, -1.264, -1.912 ], [ 1.8577851471839049, -1.168, -1.616 ], [ -1.912, 0.3978218539957576, -1.636 ], [ 1.7838339585428242, -1.076, 1.5838339585428243 ], [ 1.1816038991796847, -0.5, 2.1616038991796844 ], [ -0.94, -0.03800957299819922, -0.006009572998199195 ], ... ],
    	[ [ -1.656, 4.077448695509084, -0.896 ], [ 0.914371375528773, 0.626371375528773, -0.16865097568130866 ], [ -1.576, 0.4797509378142362, 0.46375093781423615 ], [ -0.4904334830731588, -0.004133143128796091, -7.029348549696668E-4 ], [ 1.1325453848901885, 1.0885453848901885, -1.856 ], [ -1.076, 0.6430510117756059, 1.6750510117756061 ], [ 1.211115336524521, -1.648, -0.18669870536657965 ], [ -1.42, -0.2, -0.044 ], ... ],
    	[ [ -0.344, 1.5989622408926512, 0.7909622408926511 ], [ 1.8466745434197769, -0.996, 0.9986745434197768 ], [ 1.3707811944076953, 1.4867811944076954, -1.784 ], [ 0.48846781684167506, 0.9324678168416752, 0.9564678168416753 ], [ 1.6041510364293958, 1.196151036429396, -0.44 ], [ 1.439362339507811, 0.7993623395078108, -0.88 ], [ -1.576, 0.5484387339022703, 1.0004387339022702 ], [ 1.3600627946815762, 0.3280627946815763, 0.3600627946815763 ], ... ],
    	[ [ -1.532, -1.992, 2.0631972785383375 ], [ -1.504, -0.0029992840474797333, -0.532 ], [ 0.10108763972373058, -0.350900630159385, -0.828 ], [ 1.7197202381278955, -1.78, -1.296 ], [ -0.312, 1.1871075271676799, 1.1791075271676799 ], [ 0.5289339831966138, -1.24, 1.7649339831966142 ], [ -1.124, 1.9944379248854824, -0.26 ], [ -1.668, 0.5178342261640605, -0.033870609154072195 ], ... ],
    	[ [ -1.548, 3.300642714877544, -0.212 ], [ -1.712, -1.44, -0.78 ], [ 0.3140103775910734, -1.816, 1.4380103775910735 ], [ 0.5704213437216958, -1.316, -2.0 ], [ 1.072791571998769, -1.032, 1.9207915719987687 ], [ -1.256, -0.396, 3.2132755095882573 ], [ 0.13308538642408663, 0.4410853864240865, 0.12508538642408662 ], [ 0.5622555141036225, 0.47425551410362266, -0.08178807131999094 ], ... ],
    	[ [ 0.5154005102740618, -0.908, -0.916 ], [ 0.3989053311241432, -1.036, -0.18616520729431751 ], [ 1.3831726677913043, 0.39517266779130433, -1.472 ], [ 0.6915612660977297, 0.5235612660977298, -1.216 ], [ -0.152, -0.22, -0.092 ], [ 1.1827189288612545, -1.68, 0.6107189288612542 ], [ 0.38776275926833603, -0.08606950827953425, 0.6237627592683364 ], [ -1.056, 2.0233237042207004, 1.2073237042207001 ], ... ],
    	[ [ -1.3, -0.66, 1.1414987243148456 ], [ 0.38310076541109256, -1.272, -0.788 ], [ -0.005385381134141332, -0.62, -0.52 ], [ 1.518034007850404, -0.696, 1.7860340078504038 ], [ -1.936, -1.064, -0.348 ], [ -1.8, -1.968, -0.068 ], [ 0.7763730158294727, -0.868, -1.144 ], [ -1.5, 1.3938207058745673, 1.2058207058745671 ], ... ],
    	...
    ]

To produce the following output:

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

    Result[] array = ConstantResult.batchResultArray(pop(RefUtil.addRef(data)));
    @Nullable
    Result eval = layer.eval(array);
    assert eval != null;
    TensorList tensorList = Result.getData(eval);
    String temp_18_0016 = tensorList.stream().limit(1).map(x -> {
      String temp_18_0017 = x.prettyPrint();
      x.freeRef();
      return temp_18_0017;
    }).reduce((a, b) -> a + "\n" + b).orElse("");
    tensorList.freeRef();
    return temp_18_0016;

Returns

    [
    	[ [ 1.7018207058745671 ], [ 2.9026977037667225 ], [ 0.0 ], [ 1.3415566386610236 ], [ 1.1069675454719954 ], [ 0.0 ], [ 3.1214943731145826 ], [ 0.0 ], ... ],
    	[ [ 1.8733188773970642 ], [ 3.579170634550518 ], [ 0.0 ], [ 1.8577851471839049 ], [ 0.3978218539957576 ], [ 3.3676679170856483 ], [ 3.3432077983593693 ], [ 0.0 ], ... ],
    	[ [ 4.077448695509084 ], [ 1.540742751057546 ], [ 0.9435018756284723 ], [ 0.0 ], [ 2.221090769780377 ], [ 2.318102023551212 ], [ 1.211115336524521 ], [ 0.0 ], ... ],
    	[ [ 2.389924481785302 ], [ 2.845349086839554 ], [ 2.8575623888153907 ], [ 2.3774034505250254 ], [ 2.8003020728587917 ], [ 2.238724679015622 ], [ 1.5488774678045405 ], [ 2.048188384044729 ], ... ],
    	[ [ 2.0631972785383375 ], [ 0.0 ], [ 0.10108763972373058 ], [ 1.7197202381278955 ], [ 2.3662150543353597 ], [ 2.293867966393228 ], [ 1.9944379248854824 ], [ 0.5178342261640605 ], ... ],
    	[ [ 3.300642714877544 ], [ 0.0 ], [ 1.752020755182147 ], [ 0.5704213437216958 ], [ 2.9935831439975376 ], [ 3.2132755095882573 ], [ 0.6992561592722597 ], [ 1.0365110282072452 ], ... ],
    	[ [ 0.5154005102740618 ], [ 0.3989053311241432 ], [ 1.7783453355826087 ], [ 1.2151225321954595 ], [ 0.0 ], [ 1.7934378577225087 ], [ 1.0115255185366725 ], [ 3.2306474084414005 ], ... ],
    	[ [ 1.1414987243148456 ], [ 0.38310076541109256 ], [ 0.0 ], [ 3.3040680157008078 ], [ 0.0 ], [ 0.0 ], [ 0.7763730158294727 ], [ 2.5996414117491344 ], ... ],
    	...
    ]

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

    return TestUtil.compare(title + " vs Iteration", runs);
Logging
Plotting range=[1.0, -0.3599393597811054], [27.0, 0.08493579108920005]; valueStats=DoubleSummaryStatistics{count=56, sum=26.819099, min=0.436577, average=0.478912, max=1.216006}
Plotting 24 points for GD
Plotting 27 points for CjGD
Plotting 5 points for LBFGS

Returns

Result

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

    return TestUtil.compareTime(title + " vs Time", runs);
Logging
Plotting range=[0.0, -0.3599393597811054], [32.048, 0.08493579108920005]; valueStats=DoubleSummaryStatistics{count=56, sum=26.819099, min=0.436577, average=0.478912, max=1.216006}
Plotting 24 points for GD
Plotting 27 points for CjGD
Plotting 5 points for LBFGS

Returns

Result

Results

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

    return grid(inputLearning, modelLearning, completeLearning);

Returns

Result

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

    return new ComponentResult(null == inputLearning ? null : inputLearning.value,
        null == modelLearning ? null : modelLearning.value, null == completeLearning ? null : completeLearning.value);

Returns

    {"input":{ "LBFGS": { "type": "NonConverged", "value": 0.43666120059065683 }, "CjGD": { "type": "NonConverged", "value": 0.44652629392000004 }, "GD": { "type": "NonConverged", "value": 0.43657678688 } }, "model":null, "complete":null}

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

    throwException(exceptions.addRef());

Results

detailsresult
{"input":{ "LBFGS": { "type": "NonConverged", "value": 0.43666120059065683 }, "CjGD": { "type": "NonConverged", "value": 0.44652629392000004 }, "GD": { "type": "NonConverged", "value": 0.43657678688 } }, "model":null, "complete":null}OK
  {
    "result": "OK",
    "performance": {
      "execution_time": "64.781",
      "gc_time": "0.734"
    },
    "created_on": 1586745683370,
    "file_name": "trainingTest",
    "report": {
      "simpleName": "Basic",
      "canonicalName": "com.simiacryptus.mindseye.layers.cudnn.ImgLinearSubnetLayerTest.Basic",
      "link": "https://github.com/SimiaCryptus/mindseye-cudnn/tree/59d5b3318556370acb2d83ee6ec123ce0fc6974f/src/test/java/com/simiacryptus/mindseye/layers/cudnn/ImgLinearSubnetLayerTest.java",
      "javaDoc": ""
    },
    "training_analysis": {
      "input": {
        "LBFGS": {
          "type": "NonConverged",
          "value": 0.43666120059065683
        },
        "CjGD": {
          "type": "NonConverged",
          "value": 0.44652629392000004
        },
        "GD": {
          "type": "NonConverged",
          "value": 0.43657678688
        }
      }
    },
    "archive": "s3://code.simiacrypt.us/tests/com/simiacryptus/mindseye/layers/cudnn/ImgLinearSubnetLayer/Basic/trainingTest/202004134123",
    "id": "004c1093-3629-41a8-8d0a-936561040a9e",
    "report_type": "Components",
    "display_name": "Comparative Training",
    "target": {
      "simpleName": "ImgLinearSubnetLayer",
      "canonicalName": "com.simiacryptus.mindseye.layers.cudnn.ImgLinearSubnetLayer",
      "link": "https://github.com/SimiaCryptus/mindseye-cudnn/tree/59d5b3318556370acb2d83ee6ec123ce0fc6974f/src/main/java/com/simiacryptus/mindseye/layers/cudnn/ImgLinearSubnetLayer.java",
      "javaDoc": ""
    }
  }