Ejemplo n.º 1
0
        public void TestOptimizer()
        {
            IFunction network = new ModuleList(
                N.Linear(2, 10),
                N.ReLU(),
                N.Linear(10, 1)
                );
            // Optimizer sgd = new SGD(network, 0.01);
            Optimizer sgd  = new MomentumSGD(network);
            Random    rand = new Random();

            // Tensor[] data = this._TestData(1000);
            for (int i = 0; i < 100; i++)
            {
                Tensor[] data = this._TestData(100);

                // Tensor X = network.Forward(
                //     data[0]
                // );
                Tensor X = network.Forward(
                    data[0]
                    );
                Tensor loss = F.MSELoss(X, data[1]);
                // Console.WriteLine($"{i}step:{loss.Data[0]}");
                Console.WriteLine($"{loss.Data[0]}");
                loss.Backward();
                sgd.Update();
            }
        }