public void InitializeTheta()
 {
     var engine = new NeuralNetworkEngine(_config400x25x10);
     var theta = engine.InitializeTheta();
     theta.Count.Should().Be(25*401 + 10*26);
     theta.All(i => i > 0 && i < 1);
 }
示例#2
0
 public NeuralNetwork(NeuralNetworkConfig config)
 {
     if (config == null)
     {
         throw new ArgumentNullException("config");
     }
     _config = config;
     _engine = new NeuralNetworkEngine(config);
 }
        public void Sigmoid()
        {
            var engine = new NeuralNetworkEngine(_config400x25x10);

            var sigmoid = engine.Sigmoid(new DenseVector(new double[] { 100, 0, -100 }));
            sigmoid.Should().NotBeNull().
                And.HaveCount(3);
            sigmoid[0].Should().BeApproximately(1, 0.01);
            sigmoid[1].Should().Be(0.5);
            sigmoid[2].Should().BeApproximately(0, 0.01);
        }
        public void ReshapeTheta()
        {
            var engine = new NeuralNetworkEngine(_config1x2X2x1);

            var vector = new double[] { 11, 12, 21, 22, 11, 12, 13, 11, 12, 21, 22, 31, 32 };
            var matrices = engine.ReshapeTheta(vector.ToArray(), new int[] { 1, 2, 1, 3 });
            var reshaped = engine.ReshapeTheta(matrices);
            reshaped.Should().BeEquivalentTo(vector.ToArray());

            var theta = engine.InitializeTheta();
            var Theta = engine.ReshapeTheta(theta.ToArray(), _config1x2X2x1.Layers);
            Theta.Length.Should().Be(3);
            Theta[0].RowCount.Should().Be(2);
            Theta[0].ColumnCount.Should().Be(2);
            Theta[1].RowCount.Should().Be(2);
            Theta[1].ColumnCount.Should().Be(3);
            Theta[2].RowCount.Should().Be(1);
            Theta[2].ColumnCount.Should().Be(3);
            var thetaVector = engine.ReshapeTheta(Theta);
            thetaVector.Should().BeEquivalentTo(theta.ToArray());
        }
 public void SigmoidGradient()
 {
     var engine = new NeuralNetworkEngine(_config400x25x10);
     var sigmoid = engine.SigmoidGradient(new DenseVector(new double[] { 0 }));
     sigmoid.Should().NotBeNull().
         And.HaveCount(1);
     sigmoid[0].Should().Be(0.25);
 }
示例#6
0
 public NeuralNetwork(NeuralNetworkConfig config)
 {
     if (config == null) throw new ArgumentNullException("config");
     _config = config;
     _engine = new NeuralNetworkEngine(config);
 }