Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 6
0
        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);
        }