static void SerializeDriveComponent() { World.LoggingLevel = TraceLevel.Warning; Agent John = World.NewAgent("John"); BPNetwork net; FoodDrive foodDr = AgentInitializer.InitializeDrive(John, FoodDrive.Factory, .5);; if (load && File.Exists(componentLoadFile)) { Console.WriteLine("Deserializing the drive component"); SerializationPlugin.DeserializeDriveComponent(foodDr, componentLoadFile, out net); } else { Console.WriteLine("Initializing the drive component"); net = AgentInitializer.InitializeDriveComponent(foodDr, BPNetwork.Factory); net.Input.AddRange(Drive.GenerateTypicalInputs(foodDr)); net.Parameters.LEARNING_RATE = .2; net.Parameters.MOMENTUM = .05; foodDr.Commit(net); } John.Commit(foodDr); DoTraining(net, foodDr); Console.WriteLine("Serializing the drive component"); SerializationPlugin.Serialize(net, componentLoadFile); John.Die(); }
static void SerializeWorld() { Agent John; BPNetwork net; FoodDrive foodDr; if (load && File.Exists(worldLoadFile)) { Console.WriteLine("Deserializing the world"); SerializationPlugin.DeserializeWorld(worldLoadFile); John = World.GetAgent("John"); foodDr = (FoodDrive)John.GetInternals(Agent.InternalContainers.DRIVES).First(); net = (BPNetwork)foodDr.DriveComponent; } else { Console.WriteLine("Initializing the world"); World.LoggingLevel = TraceLevel.Warning; John = World.NewAgent("John"); foodDr = AgentInitializer.InitializeDrive(John, FoodDrive.Factory, .5); net = AgentInitializer.InitializeDriveComponent(foodDr, BPNetwork.Factory); net.Input.AddRange(Drive.GenerateTypicalInputs(foodDr)); net.Parameters.LEARNING_RATE = .2; net.Parameters.MOMENTUM = .05; foodDr.Commit(net); John.Commit(foodDr); } DoTraining(net, foodDr); Console.WriteLine("Serializing the world"); SerializationPlugin.SerializeWorld(worldLoadFile); John.Die(); }