public void TestMethod1() { var nn = SimpleNeuralNetworkFactory.Create(1, 1, 1); var initializer = new NetworkInitializer(1); initializer.Initialize(nn); }
public NetworkInitializer GetNetworkInitializer(NetworkTaskViewModel model) { IAnswerService answer = answerResolver(model, Database); NetworkInitializer item = resolver(model, answer); return(item); }
public ActionResult Create(Perceptron perceptron) { int x = 0; NetworkInitializer networkInitializer = new NetworkInitializer(); Perceptron p = networkInitializer.CreatePerceptron(perceptron.Stock); if (ModelState.IsValid) { foreach (Perceptron pone in _db.Perceptrons) { if (pone.Stock == p.Stock) { x += 1; } } if (x == 0) { _db.Perceptrons.Add(p); _db.SaveChanges(); networkInitializer.CreateNetwork(p.Stock); //networkInitializer.InitializeJoiningTables(p.Stock); return(RedirectToAction("Index")); } } return(View(perceptron)); }
public void InitializeService(NetworkInitializer initializer) { gaService = new GeneticService(); Database = new EFUnitOfWork(); answer = func(initializer.taskName, Database); outputCount = answer.GetNumOfClusters(); BPNInitializer input = (BPNInitializer)initializer; this.parameters = input.parameters; this.hidden = input.hidden; this.learningRate = input.learningRate; this.Momentum = input.Momentum; this.minError = input.minError; layerSizes = new int[3] { this.parameters, this.hidden, outputCount }; TFuncs = new TransferFunction[3] { TransferFunction.None, TransferFunction.Sigmoid, TransferFunction.Sigmoid }; double[][] inputs = answer.GetInputs(); double[][] outputs = answer.GetAnswers(); gaService.InitializeGA(initializer, (weights) => { double fitness = 0; bpn.SetWeights(weights); int truePositive = 0; int others = 0; for (int i = 0; i < inputs.GetUpperBound(0) + 1; i++) { int cluster; cluster = bpn.getClusterGenetic(inputs[i]); if (outputs[i][0] == cluster) { truePositive += 1; } else { others += 1; } } fitness = (truePositive) / (double)(truePositive + others); return(fitness); }); }
/// <summary> /// The constructor for the main Player info class. /// </summary> /// <param name="userId"></param> /// <param name="initializer"></param> public PlayerInfo(Users userId, NetworkInitializer initializer, int internalId) { _userId = userId; _initializer = initializer; // set all player variables here. _playerStats = GetPlayerStats(_userId.Id); _playerLocation = GetPlayerLocation(_userId.Id); _playerInventory = GetPlayerInventory(_userId.Id); InternalId = internalId; }
public ActionResult CreateInput(NetworkInitializer input) { if (ModelState.IsValid) { testService.TrainNetwork(input, User.Identity.GetUserId()); return(RedirectToAction("Index")); } else { // there is something wrong with the data values return(View("NetworkDataInput", input)); } }
public void TrainNetwork(NetworkInitializer data, string userId) { data = initializerTypeResolver(data, answerForTraining(data, Database)); var network = trainService.TrainNetwork(data, userId); network.AvailableNetworkId = Database.AvailableNetworks.Find(aNet => aNet.NeuralNetwork.Name.Equals(data.networkName) && aNet.Task.Name.Equals(data.taskName)).FirstOrDefault().Id; var rep = (TestNetworkRepository)Database.TestNetworks; rep.Create(network, userId); Database.Save(); }
public void InitializeGA(NetworkInitializer initializer, Func <double[], double> fitnessFunction) { var input = (GeneticInitializer)initializer; this.crossover = input.Crossover; this.iterations = input.Iterations; this.mutationRate = input.MutationRate; this.populationSize = input.PopulationSize; InitializeWeights(initializer); ga = new GA(crossover, mutationRate, populationSize, iterations, weights); ga.Elitism = true; GAFunction func = new GAFunction(fitnessFunction); ga.FitnessFunction = func; }
/// <summary> /// called when a new player is added for a client. /// </summary> /// <param name="conn">The connection.</param> /// <param name="playerControllerId">The player controller identifier.</param> public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId) { Profiler.BeginSample("On server Create."); NetworkInitializer initializerScript = GetComponent <NetworkInitializer>(); if (initializerScript.InitialDBType == DatabaseType.MongoDB) { AddPlayerMDB(conn, playerControllerId); } else if (initializerScript.InitialDBType == DatabaseType.MySql) { // This coroutine thing is tricky, but the idea is that it is a delayed callback. // Sort of an asynchronous call in Unity if you will... StartCoroutine(AddPlayerSql(conn, playerControllerId)); } Profiler.EndSample(); }
// метод для навчання нейронної мережі для певної задачі на основі даних користувача public TrainedNetwork TrainNetwork(NetworkInitializer data, string userId) { INetworkService service = networkBuilder(data); // виклик іос-контейнера для побудови необхідного сервіса-нейромережі IAnswerService answerservice = answerBuilder(data, Database); // виклик іос-контейнера для побудови необхідного сервіса для отримання відповідей для задач service.InitializeService(data); // ініціалізація сервіса service.CreateNetwork(); // створення мережі // навчання нейронної мережі { service.Train(answerservice.GetInputs(), answerservice.GetAnswers()); string xml = service.SaveNetworkXml(); // збереження навченої мережі TrainedNetwork network = new TrainedNetwork(); network.AvailableNetworkId = Database.AvailableNetworks.Find(aNet => aNet.NeuralNetwork.Name.Equals(data.networkName) && aNet.Task.Name.Equals(data.taskName)).FirstOrDefault().Id; network.XmlName = xml; return(network); } }
/// <summary> /// Add the player using MongoDB. /// </summary> /// <param name="conn">The connection.</param> /// <param name="playerControllerId">The player controller identifier.</param> private void AddPlayerMDB(NetworkConnection conn, short playerControllerId) { NetworkInitializer initializerScript = GetComponent <NetworkInitializer>(); List <Users> users = initializerScript.GetUserList(); // This allows us to initialize all the database data. PlayerInfo playerData = new PlayerInfo(users[_players.Count], initializerScript, playerCount); Debug.Log("Player count: " + _players.Count); Debug.Log("Added User: "******"playerId" + playerCount); // Spawn the player. Vector3 spawnPosition = new Vector3( Convert.ToSingle(playerData.Location.location.x), Convert.ToSingle(playerData.Location.location.y), Convert.ToSingle(playerData.Location.location.z)); Quaternion spawRotation = new Quaternion( Convert.ToSingle(playerData.Location.rotation.x), Convert.ToSingle(playerData.Location.rotation.y), Convert.ToSingle(playerData.Location.rotation.z), Convert.ToSingle(playerData.Location.rotation.w)); // To do set hats and stats? var playerObject = (GameObject)GameObject.Instantiate(playerPrefab, spawnPosition, spawRotation); playerData.SetPlayerObject(playerObject); NetworkServer.AddPlayerForConnection(conn, playerObject, playerControllerId); // Debug.Log("sdfwefwef"); _players.Add(playerCount, playerData); Debug.Log(_players[playerCount].ToString()); playerCount++; }
private void InitializeWeights(NetworkInitializer initializer) { var input = (GeneticInitializer)initializer; weights = input.hidden * (input.parameters + 3); }
/// <summary> /// Adds the player via the SQL architecture. /// </summary> /// <param name="conn">The connection.</param> /// <param name="playerControllerId">The player controller identifier.</param> /// <returns></returns> private IEnumerator AddPlayerSql(NetworkConnection conn, short playerControllerId) { WWW result = new WWW("http://localhost:8080/seagull/get-player-data.php"); yield return(result); if (result.error != null) { Debug.LogError("Error, unable to retrieve player location!"); } else { NetworkInitializer initializerScript = GetComponent <NetworkInitializer>(); // Ideally we would use log in information to spawn the player here. // for now its first come first serve. string[] playersString = result.text.Split('|'); string[] playerCurrent = playersString[_playersSql.Count].Split(','); // This represents the player data extracted from plain text html :/ PlayerInfoSql playerData = new PlayerInfoSql( new Users() { user_id = Convert.ToInt32(playerCurrent[0]), name = playerCurrent[1] }, new PlayerLocation() { location = new Location { x = Convert.ToSingle(playerCurrent[2]), y = Convert.ToSingle(playerCurrent[3]), z = Convert.ToSingle(playerCurrent[4]), }, rotation = new Rotation { x = Convert.ToSingle(playerCurrent[5]), y = Convert.ToSingle(playerCurrent[6]), z = Convert.ToSingle(playerCurrent[7]), w = Convert.ToSingle(playerCurrent[8]) } }, playerCount, initializerScript); Debug.Log("Player count: " + _playersSql.Count); Debug.Log("Added User: "******"playerId" + playerCount); // Spawn the player. Vector3 spawnPosition = new Vector3( Convert.ToSingle(playerData.PlayerLocation.location.x), Convert.ToSingle(playerData.PlayerLocation.location.y), Convert.ToSingle(playerData.PlayerLocation.location.z)); Quaternion spawRotation = new Quaternion( Convert.ToSingle(playerData.PlayerLocation.rotation.x), Convert.ToSingle(playerData.PlayerLocation.rotation.y), Convert.ToSingle(playerData.PlayerLocation.rotation.z), Convert.ToSingle(playerData.PlayerLocation.rotation.w)); var playerObject = (GameObject)GameObject.Instantiate(playerPrefab, spawnPosition, spawRotation); playerData.SetPlayerObject(playerObject); NetworkServer.AddPlayerForConnection(conn, playerObject, playerControllerId); // adds the player to the game. _playersSql.Add(playerCount, playerData); Debug.Log(_playersSql[playerCount].ToString()); playerCount++; } }
/// <summary> /// Initializes a new instance of the <see cref="PlayerInfoSql"/> class. /// </summary> /// <param name="userId">The user identifier.</param> /// <param name="initializer">The initializer.</param> public PlayerInfoSql(Users userId, PlayerLocation location, int internalId, NetworkInitializer initializer) { _userId = userId; _playerLocation = location; _initializer = initializer; }