public void OR_Test() { LearningApi api = new LearningApi(); api.UseActionModule <object, double[][]>((notUsed, ctx) => { ctx.DataDescriptor = get2DDescriptor(); double[][] data = new double[4][]; data[0] = new double[] { 0, 0, 0, 0.0 }; data[1] = new double[] { 0, 1, 1, 0.0 }; data[2] = new double[] { 1, 0, 1, 0.0 }; data[3] = new double[] { 1, 1, 1, 0.0 }; return(data); }); api.UseDeltaLearning(0.2, 1000); IScore score = api.Run() as IScore; double[][] testData = new double[3][]; testData[0] = new double[] { 0, 0, 0.0 }; testData[1] = new double[] { 1, 1, 0.0 }; testData[2] = new double[] { 0, 1, 0.0 }; var result = api.Algorithm.Predict(testData, api.Context) as DeltaLearningResult; Assert.True(result.PredictedResults[0] == 0); Assert.True(result.PredictedResults[1] == 1); Assert.True(result.PredictedResults[2] == 1); }
public void SimpleSequenceTest() { LearningApi api = new LearningApi(); api.UseActionModule <object, double[][]>((notUsed, ctx) => { const int maxSamples = 10; ctx.DataDescriptor = getDescriptor(); double[][] data = new double[maxSamples][]; // // We generate following input vectors: // IN Val - Expected OUT Val // 1 - 0 // 2 - 0, // ... // maxSamples / 2 - 1, // maxSamples / 2 + 1 - 1, // maxSamples / 2 + 2 - 1, for (int i = 0; i < maxSamples; i++) { data[i] = new double[2]; data[i][0] = i; data[i][1] = (i > (maxSamples / 2)) ? 1 : 0; } return(data); }); api.UseDeltaLearning(0.2, 1000); IScore score = api.Run() as IScore; double[][] testData = new double[4][]; testData[0] = new double[] { 2.0, 0.0 }; testData[1] = new double[] { 4.0, 0.0 }; testData[2] = new double[] { 6.0, 0.0 }; testData[3] = new double[] { 8.0, 0.0 }; var result = api.Algorithm.Predict(testData, api.Context) as DeltaLearningResult; Assert.True(result.PredictedResults[0] == 0); Assert.True(result.PredictedResults[1] == 0); Assert.True(result.PredictedResults[2] == 1); Assert.True(result.PredictedResults[3] == 1); }
public void SimpleSequence2DTest() { LearningApi api = new LearningApi(); api.UseActionModule <object, double[][]>((notUsed, ctx) => { const int maxSamples = 10000; ctx.DataDescriptor = get2DDescriptor(); double[][] data = new double[maxSamples][]; for (int i = 0; i < maxSamples / 2; i++) { data[2 * i] = new double[3]; data[2 * i][0] = i; data[2 * i][1] = 5.0; data[2 * i][2] = 1.0; data[2 * i + 1] = new double[3]; data[2 * i + 1][0] = i; data[2 * i + 1][1] = -5.0; data[2 * i + 1][2] = 0.0; } return(data); }); api.UseDeltaLearning(0.2, 1000); IScore score = api.Run() as IScore; double[][] testData = new double[6][]; testData[0] = new double[] { 2.0, 5.0, 0.0 }; testData[1] = new double[] { 2, -5.0, 0.0 }; testData[2] = new double[] { 100, -5.0, 0.0 }; testData[3] = new double[] { 100, -5.0, 0.0 }; testData[4] = new double[] { 490, 5.0, 0.0 }; testData[5] = new double[] { 490, -5.0, 0.0 }; var result = api.Algorithm.Predict(testData, api.Context) as DeltaLearningResult; Assert.True(result.PredictedResults[0] == 1); Assert.True(result.PredictedResults[1] == 0); Assert.True(result.PredictedResults[2] == 0); Assert.True(result.PredictedResults[3] == 0); Assert.True(result.PredictedResults[4] == 1); Assert.True(result.PredictedResults[5] == 0); }