public void LogisticRegression() { var X = Matrix <double> .Build.DenseOfArray(new double[, ] { { 1 }, { 2 } }); var Y = Matrix <double> .Build.DenseOfArray(new double[, ] { { 1 } }); var model = new DeepCat.DeepCat(); model.Add(new Dense(1, Activations.Sigmoid(), weightInitializer: Initializations.Fixed())); model.Compile(X.RowCount, LossFunctions.CrossEntropy(), Optimizers.GradientDescent(0.02)); model.Fit(X, Y, 1); var a = model.Predict(X); a[0, 0] = Math.Round(a[0, 0], 8); var expectedResult = Matrix <double> .Build.DenseOfArray(new double[, ] { { 0.59859297 } }); Assert.AreEqual(a, expectedResult); }
static void Main(string[] args) { var X = Matrix <double> .Build.Random(5, 100); var Y = Matrix <double> .Build.Random(1, 100); var test = Matrix <double> .Build.Random(5, 1); var model = new DeepCat(); model.Add(new Dense(5, Activations.Relu(), weightInitializer: Initializations.RandomNormal())); model.Add(new Dense(5, Activations.Relu(), weightInitializer: Initializations.RandomNormal())); model.Add(new Dense(1, Activations.Sigmoid())); model.Compile(X.RowCount, LossFunctions.CrossEntropy(), Optimizers.GradientDescent(0.002)); model.Fit(X, Y, 100); model.Predict(test); var x = 1; }