public static void teste() { Console.WriteLine("\n\nA imagem deve estar na pasta debug, com o nome 'char.bmp' (já deve ter uma lá)"); var net2 = SerializationExtensions.FromJSON(File.ReadAllText("best")); byte[] imgbytes = null; var newImage = MnistReader.ScaleImage(new Bitmap(@"char.bmp"), 24, 24); var x = new Volume(newImage.Width, newImage.Height, 1, 0.0); for (var i = 0; i < newImage.Width; i++) { for (var j = 0; j < newImage.Width; j++) { x.Weights[j + i * newImage.Width] = (newImage.GetPixel(j, i).B + newImage.GetPixel(j, i).R + newImage.GetPixel(j, i).G) / 3; } } if (File.Exists("oi.txt")) { File.Delete("oi.txt"); } for (int i = 0; i < x.Weights.Length; i++) { using (StreamWriter file = new StreamWriter(@"oi.txt", true)) file.WriteLine(x.Weights[i].ToString()); } net2.Forward(x); var yhat = net2.GetPrediction(); Console.WriteLine("label prevista = {0}", yhat); }
public static void segment_n_rec() { var image = new Bitmap(@"a.bmp"); image = image.Clone(new Rectangle(0, 0, image.Width, image.Height), PixelFormat.Format8bppIndexed); byte[] imgbytes = new byte[image.Height * image.Width]; #region parallel grey image conv var tasks = new Task[Environment.ProcessorCount]; int oi = -1; for (var ai = 0; ai < image.Width; ai++) { for (int taskNumber = 0; taskNumber < Environment.ProcessorCount; taskNumber++) { tasks[taskNumber] = Task.Factory.StartNew(() => { int j = Interlocked.Increment(ref oi); while (j < image.Width) { imgbytes[j + ai * image.Width] = (byte)(((int)image.GetPixel(j, ai).B + (int)image.GetPixel(j, ai).R + (int)image.GetPixel(j, ai).G) / 3); j = Interlocked.Increment(ref oi); } }); } Task.WaitAll(tasks); } #endregion new OtsuThreshold().ApplyInPlace(image); // check threshold value var net2 = SerializationExtensions.FromJSON(File.ReadAllText("best")); var newImage = MnistReader.ScaleImage(new Bitmap(@"C:\Users\leoni.win7-PC\Desktop\Nova pasta\a.bmp"), 24, 24); var x = new Volume(newImage.Width, newImage.Height, 1, 0.0); for (var i = 0; i < newImage.Width; i++) { for (var j = 0; j < newImage.Width; j++) { x.Weights[j + i * newImage.Width] = (newImage.GetPixel(j, i).B + newImage.GetPixel(j, i).R + newImage.GetPixel(j, i).G) / 3; } } if (File.Exists("oi.txt")) { File.Delete("oi.txt"); } for (int i = 0; i < x.Weights.Length; i++) { using (StreamWriter file = new StreamWriter(@"oi.txt", true)) file.WriteLine(x.Weights[i].ToString()); } net2.Forward(x); var yhat = net2.GetPrediction(); }
public static Brain ReadBrainFromFile(string filename) { var brain = JsonConvert.DeserializeObject <Brain>(File.ReadAllText(filename)); brain.Net = SerializationExtensions.FromJSON(brain.NetJson); brain.NetJson = string.Empty; return(brain); }
public void JsonNetSerializerTest() { var net = new Net(); net.AddLayer(new InputLayer(5, 5, 3)); var conv = new ConvLayer(2, 2, 16); net.AddLayer(conv); var fullycon = new FullyConnLayer(3); net.AddLayer(fullycon); net.AddLayer(new SoftmaxLayer(3)); // Serialize to json var json = net.ToJSON(); // Deserialize from json Net deserialized = SerializationExtensions.FromJSON(json); // Make sure deserialized is identical to serialized Assert.IsNotNull(deserialized.Layers); Assert.AreEqual(net.Layers.Count, deserialized.Layers.Count); Assert.IsTrue(net.Layers[0] is InputLayer); var deserializedConv = net.Layers[1] as ConvLayer; Assert.NotNull(deserializedConv); Assert.NotNull(deserializedConv.Filters); Assert.AreEqual(16, deserializedConv.Filters.Count); for (int i = 0; i < deserializedConv.Filters.Count; i++) { for (int k = 0; k < deserializedConv.Filters[i].Length; k++) { Assert.AreEqual(conv.Filters[i].Get(k), deserializedConv.Filters[i].Get(k)); Assert.AreEqual(conv.Filters[i].GetGradient(k), deserializedConv.Filters[i].GetGradient(k)); } } var deserializedFullyCon = net.Layers[2] as FullyConnLayer; Assert.NotNull(deserializedFullyCon); Assert.NotNull(deserializedFullyCon.Filters); Assert.AreEqual(3, deserializedFullyCon.Filters.Count); for (int i = 0; i < deserializedFullyCon.Filters.Count; i++) { for (int k = 0; k < deserializedFullyCon.Filters[i].Length; k++) { Assert.AreEqual(fullycon.Filters[i].Get(k), deserializedFullyCon.Filters[i].Get(k)); Assert.AreEqual(fullycon.Filters[i].GetGradient(k), deserializedFullyCon.Filters[i].GetGradient(k)); } } Assert.IsTrue(net.Layers[3] is SoftmaxLayer); Assert.AreEqual(3, ((SoftmaxLayer)net.Layers[3]).ClassCount); }
private void openToolStripMenuItem_Click(object sender, EventArgs e) { net = null; var json_temp = File.ReadAllLines("NetworkStructure.json"); string json = string.Join("", json_temp); net = SerializationExtensions.FromJSON(json); testingToolStripMenuItem.Enabled = true; saveToolStripMenuItem.Enabled = true; }
public void JsonAnotherNetSerilizerTest() { var numInputs = 64; var numActions = 5; var net = new Net(); net.AddLayer(new InputLayer(1, 1, numInputs)); net.AddLayer(new FullyConnLayer((int)(numInputs * 2.5))); net.AddLayer(new ReluLayer()); net.AddLayer(new FullyConnLayer((int)(numInputs * 1.5))); net.AddLayer(new ReluLayer()); net.AddLayer(new FullyConnLayer(numActions)); net.AddLayer(new RegressionLayer()); // Serialize to json var json = net.ToJSON(); // Deserialize from json var deserialized = SerializationExtensions.FromJSON(json); var input = new Volume(1, 1, numInputs); var output1 = net.Forward(input); var output2 = deserialized.Forward(input); }