public Infer ( MathNet.Numerics.LinearAlgebra.Double.SparseMatrix input ) : Vector | ||
input | MathNet.Numerics.LinearAlgebra.Double.SparseMatrix | |
return | Vector |
public void ErrorWhenLearningAfterInferenceMode() { var node = new SpatialNode2DGaussian(); var mat = new SparseMatrix(4, 4, 4.0); var learnAfterInferFails = false; var learnAfterTBInferFails = false; node.Learn(mat); node.Infer(mat); try { node.Learn(mat); } catch (HtmRuleException e) { learnAfterInferFails = true; Debug.WriteLine(e.Message); } node.TimeInfer(mat); try { node.Learn(mat); } catch (HtmRuleException e) { learnAfterTBInferFails = true; Debug.WriteLine(e.Message); } Assert.IsTrue(learnAfterInferFails); Assert.IsTrue(learnAfterTBInferFails); }
public void InferCorrectlyOnIdenticalMatricesWithMaxDistance0() { var node = new SpatialNode2DGaussian(); var ones = new SparseMatrix(4, 5, 1.0); var twos = new SparseMatrix(4, 5, 2.0); var expectedLower = Math.Exp(-(ones.RowCount * ones.ColumnCount) / (2 * node.SquaredSigma)) - 0.0001; var expectedUpper = Math.Exp(-(ones.RowCount * ones.ColumnCount) / (2 * node.SquaredSigma)) + 0.0001; node.Learn(ones); node.Learn(twos); var output = node.Infer(ones); Assert.IsTrue(output[0] == 1.0 && output[1] > expectedLower && output[1] < expectedUpper); }
public void InferEmptyVectorIfNoCoincidencesLearned() { var node = new SpatialNode2DGaussian(1.0); var output = node.Infer(new SparseMatrix(5, 5, 2.0)); Assert.AreEqual(new SparseVector(1), output); output = node.TimeInfer(new SparseMatrix(5, 5, 2.0)); Assert.AreEqual(new SparseVector(1), output); }