Beispiel #1
0
        public void RoundTripFiles()
        {
            var testData     = @"{ claimData: ""0x00000000000000000000000000000000000000000000000006f05b59d3b200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005f0f1275000000000000000000000000000000000000000000000000000000005f1e54b5000000000000000000000000d90fc89e89e3e5b75256b5aa617f887c583b29a2000000000000000000000000c0c84e49b0d5a82e046914d9a93f9f64bdb41ca387bca611c58e3bc397f0994a4ea54a02d054c81f21f4901eb5788f1098b2a5dd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001""}";
            var dataFilePath = Path.GetTempFileName();

            var injectedImagePath = Path.Join(Path.GetTempPath(), Path.GetRandomFileName() + ".png");

            File.WriteAllText(dataFilePath, testData, Encoding.UTF8);
            var imageMaker = new ImageMaker()
            {
                ImgInputFile  = "test_input.png",
                ImgOutputFile = injectedImagePath,
                DataFile      = dataFilePath
            };

            imageMaker.Header.BitsPerPixel = 2;
            imageMaker.Header.SetWritableRange(105, 150, 165, 200);
            imageMaker.Run();

            var dataFilePath2 = Path.GetTempFileName();
            var dataMaker     = new DataMaker()
            {
                ImgInputFile = injectedImagePath,
                DataFile     = dataFilePath2
            };

            dataMaker.Run();

            var resultData = File.ReadAllText(dataFilePath2, Encoding.UTF8);

            Assert.AreEqual(testData, resultData);
        }
Beispiel #2
0
        public bool AddNewSensore(string id, IEnumerable <decimal> feedData)
        {
            var intId = Int32.Parse(id);

            if (forestDict.ContainsKey(intId))
            {
                return(false);
            }
            else
            {
                try
                {
                    var f = new Forest(treeCount, samplingRatio);
                    var m = new DataMaker();

                    f.BuildForest(m.NormalizePoints(feedData).ToList());

                    forestDict[intId]    = f;
                    dataMakerDict[intId] = m;
                    return(true);
                }
                catch (Exception)
                {
                    return(false);
                }
            }
        }
Beispiel #3
0
        public static void Run()
        {
            DataMaker dataMaker = new DataMaker(STEPS_PER_CYCLE, NUMBER_OF_CYCLES);
            NdArray   trainData = dataMaker.Make();

            FunctionStack model = new FunctionStack("Test8",
                                                    new Linear(true, 1, 5, name: "Linear l1"),
                                                    new LSTM(true, 5, 5, name: "LSTM l2"),
                                                    new Linear(true, 5, 1, name: "Linear l3")
                                                    );

            model.SetOptimizer(new Adam());

            RILogManager.Default?.SendDebug("Training...");
            for (int epoch = 0; epoch < TRAINING_EPOCHS; epoch++)
            {
                NdArray[] sequences = dataMaker.MakeMiniBatch(trainData, MINI_BATCH_SIZE, LENGTH_OF_SEQUENCE);
                Real      loss      = ComputeLoss(model, sequences);

                model.Update();
                model.ResetState();

                if (epoch != 0 && epoch % DISPLAY_EPOCH == 0)
                {
                    RILogManager.Default?.SendDebug("[{0}]training loss:\t{1}", epoch, loss);
                }
            }

            RILogManager.Default?.SendDebug("Testing...");
            NdArray[] testSequences = dataMaker.MakeMiniBatch(trainData, MINI_BATCH_SIZE, LENGTH_OF_SEQUENCE);

            int sample_index = 45;

            predict(testSequences[sample_index], model, PREDICTION_LENGTH);
        }
Beispiel #4
0
 public void Setup()
 {
     _imageMaker = new ImageMaker()
     {
         ImgInputFile = "../../test_input.png",
         DataFile     = "../../test_data.txt"
     };
     _imageMaker.Header.BitsPerPixel = 2;
     _dataMaker = new DataMaker()
     {
         ImgInputFile = "../../test_input.png",
         DataFile     = "../../test_data.txt"
     };
     _dataMaker.Header.BitsPerPixel = 2;
 }
Beispiel #5
0
        public static void Run()
        {
            DataMaker      dataMaker = new DataMaker(STEPS_PER_CYCLE, NUMBER_OF_CYCLES);
            NdArray <Real> trainData = dataMaker.Make();

            //ネットワークの構成は FunctionStack に書き連ねる
            FunctionStack <Real> model = new FunctionStack <Real>(
                new Linear <Real>(1, 5, name: "Linear l1"),
                new LSTM <Real>(5, 5, name: "LSTM l2"),
                new Linear <Real>(5, 1, name: "Linear l3")
                );

            //optimizerを宣言
            Adam <Real> adam = new Adam <Real>();

            adam.SetUp(model);

            //訓練ループ
            Console.WriteLine("Training...");
            for (int epoch = 0; epoch < TRAINING_EPOCHS; epoch++)
            {
                NdArray <Real>[] sequences = dataMaker.MakeMiniBatch(trainData, MINI_BATCH_SIZE, LENGTH_OF_SEQUENCE);

                Real loss = ComputeLoss(model, sequences);

                adam.Update();

                model.ResetState();

                if (epoch != 0 && epoch % DISPLAY_EPOCH == 0)
                {
                    Console.WriteLine("[{0}]training loss:\t{1}", epoch, loss);
                }
            }

            Console.WriteLine("Testing...");
            NdArray <Real>[] testSequences = dataMaker.MakeMiniBatch(trainData, MINI_BATCH_SIZE, LENGTH_OF_SEQUENCE);

            int sample_index = 45;

            predict(testSequences[sample_index], model, PREDICTION_LENGTH);
        }
Beispiel #6
0
        public void RoundTripDataReadsHeader()
        {
            var testData     = new byte[] { 1, 2, 3, 4 };
            var dataToInject = new BitArray(testData);
            var bmp          = _FilledSquare(Color.White, 10, 10);
            var whitePixels  = _imageMaker.PixelsFromImage(bmp);

            var imageMaker = new ImageMaker();

            imageMaker.Header.BitsPerPixel = 2;

            var dataMaker = new DataMaker();

            dataMaker.Header.BitsPerPixel = -1;

            var injectedPixels = imageMaker.InjectData(whitePixels, dataToInject, 10, 10);

            byte[] extractedData = dataMaker.ExtractData(injectedPixels, 10, 10);

            Assert.AreEqual(testData, extractedData);
        }
Beispiel #7
0
        public static void Run()
        {
            DataMaker dataMaker = new DataMaker(STEPS_PER_CYCLE, NUMBER_OF_CYCLES);
            NdArray   trainData = dataMaker.Make();

            //Network configuration is written in FunctionStack
            FunctionStack model = new FunctionStack(
                new Linear(1, 5, name: "Linear l1"),
                new LSTM(5, 5, name: "LSTM l2"),
                new Linear(5, 1, name: "Linear l3")
                );

            //Declare optimizer
            model.SetOptimizer(new Adam());

            //Training loop
            Console.WriteLine("Training...");
            for (int epoch = 0; epoch < TRAINING_EPOCHS; epoch++)
            {
                NdArray[] sequences = dataMaker.MakeMiniBatch(trainData, MINI_BATCH_SIZE, LENGTH_OF_SEQUENCE);

                Real loss = ComputeLoss(model, sequences);

                model.Update();

                model.ResetState();

                if (epoch != 0 && epoch % DISPLAY_EPOCH == 0)
                {
                    Console.WriteLine("[{0}]training loss:\t{1}", epoch, loss);
                }
            }

            Console.WriteLine("Testing...");
            NdArray[] testSequences = dataMaker.MakeMiniBatch(trainData, MINI_BATCH_SIZE, LENGTH_OF_SEQUENCE);

            int sample_index = 45;

            predict(testSequences[sample_index], model, PREDICTION_LENGTH);
        }
Beispiel #8
0
        public void RoundTripDataWritablePixels()
        {
            var testData     = new byte[] { 213, 214, 215, 216 };
            var dataToInject = new BitArray(testData);
            var bmp          = _FilledSquare(Color.White, 10, 10);
            var whitePixels  = _imageMaker.PixelsFromImage(bmp);

            var imageMaker = new ImageMaker();

            imageMaker.Header.BitsPerPixel = 8;
            imageMaker.Header.SetWritableRange(4, 4, 8, 8);

            var dataMaker = new DataMaker();

            var injectedPixels = imageMaker.InjectData(whitePixels, dataToInject, 10, 10);

            Dump(injectedPixels, "Injected pixels");

            byte[] extractedData = dataMaker.ExtractData(injectedPixels, 10, 10);

            Assert.AreEqual(testData, extractedData);
        }
Beispiel #9
0
 /** 添加构造器 */
 public void addResponseMaker(DataMaker maker)
 {
     BytesControl.addDataMaker(maker);
     _maker.addDic(maker);
 }
Beispiel #10
0
 /** 添加发送消息构造 */
 public void addRequestMaker(DataMaker maker)
 {
     BytesControl.addRequestMaker(maker);
 }
Beispiel #11
0
 /// <summary>
 /// 添加一个
 /// </summary>
 protected void add(DataMaker maker)
 {
     BytesControl.addDataMaker(maker);
 }