Esempio n. 1
0
        public static void TrainModelAt(BasicNetwork net, int gameNumber)
        {
            Console.WriteLine($"Training at {gameNumber}");
            string path     = Directory.GetCurrentDirectory() + @"\..\..\Model";
            string dataPath = Directory.GetCurrentDirectory() + @"\..\..\Data";

            //Check if data is already saved
            //if not null then parse
            OPSData data = OPSData.GetData(dataPath, "data");
            OPSGame game;

            //Check if not empty game and not already added to data
            if (data.GetGame(gameNumber) == null && !data.emptyGames.Contains(gameNumber))
            {
                game = Parser.ParseUrl(gameNumber);
                if (game != null)
                {
                    data.AddGame(game);
                }
                else
                {
                    data.AddEmptyGame(gameNumber);
                }
            }
            else
            {
                game = data.GetGame(gameNumber);
            }

            if (game == null)
            {
                Console.WriteLine(gameNumber + " was empty");
                return;
            }

            net.FeedForward(ToFloatArray(game.PlayerOPS));
            net.BackProp(ToFloatArray(game.TeamScores));

            net.SaveModel(path);
            data.SaveData(dataPath, "data");

            Console.WriteLine("Train sucessful!");
        }
Esempio n. 2
0
        public static void TrainModelWithData(BasicNetwork net, int epochs)
        {
            string  path     = Directory.GetCurrentDirectory() + @"\..\..\Model";
            string  dataPath = Directory.GetCurrentDirectory() + @"\..\..\Data";
            OPSData data     = OPSData.GetData(dataPath, "data");
            var     games    = data.games;

            for (int j = 0; j < epochs; j++)
            {
                foreach (OPSGame value in games.Values)
                {
                    Console.WriteLine($"Training at {value.GameNumber}");
                    net.FeedForward(ToFloatArray(value.PlayerOPS));
                    net.BackProp(ToFloatArray(value.TeamScores));

                    net.SaveModel(path);
                    data.SaveData(dataPath, "data");

                    Console.WriteLine("Train sucessful!");
                }
            }
        }