Пример #1
0
        public ConvolutionalNetwork(ConvolutionalChromosome chromosome, int epoch, string networkName)
        {
            this.epoch       = epoch;
            indexNumber      = chromosome.indexNumber;
            this.networkName = networkName;
            trainConstSpeed  = chromosome.trainConstSpeed;
            optimizer        = chromosome.optimizer;
            loss_function    = chromosome.loss_function;
            outputs          = chromosome.nrp.networkOutputNumb;

            batchSize             = chromosome.nrp.batchSize;
            networkLearningEpochs = chromosome.nrp.epochs;


            slidingWindows        = new List <int[]>();
            convActivationIndexes = new List <int>();
            filters = new List <int>();
            denseActivationIndexes = new List <int>();
            neurons             = new List <int>();
            denseDropoutIndexes = new List <int>();
            denseDropoutRates   = new List <int>();
            convDropoutIndexes  = new List <int>();
            convDropoutRates    = new List <int>();

            for (int i = 0; i < chromosome.convPart.convLayers.Count; i++)
            {
                slidingWindows.Add(new int[2] {
                    chromosome.convPart.convLayers[i].slidingWindow[0], chromosome.convPart.convLayers[i].slidingWindow[1]
                });
                convActivationIndexes.Add(chromosome.convPart.convLayers[i].activationIndex);
                filters.Add(chromosome.convPart.convLayers[i].filters);
                if (chromosome.convPart.convLayers[i].dropoutExist)
                {
                    convDropoutIndexes.Add(i);
                    convDropoutRates.Add(chromosome.convPart.convLayers[i].dropoutRate);
                }
            }

            for (int i = 0; i < chromosome.densePart.denseLayers.Count; i++)
            {
                denseActivationIndexes.Add(chromosome.densePart.denseLayers[i].activationIndex);
                neurons.Add(chromosome.densePart.denseLayers[i].neurons);
                if (chromosome.densePart.denseLayers[i].dropoutExist)
                {
                    denseDropoutIndexes.Add(i);
                    denseDropoutRates.Add(chromosome.densePart.denseLayers[i].dropoutRate);
                }
            }
        }
Пример #2
0
        ///////////////////////////////////////////////////////
        // new Process
        public void UpdateAssessmentParams(ConvolutionalChromosome chromosome, GeneticProgramm gp, int epoch)
        {
            instance.Invoke(new Action(() => {
                if (!instance.errDontClearChB.Checked)
                {
                    instance.ErrorTB.Clear();
                }
                if (!instance.chrDontClearChB.Checked)
                {
                    instance.chrOutTB.Clear();
                }
            }));
            ConvolutionalNetwork tempNet = new ConvolutionalNetwork(chromosome, epoch, gp._nrp.networkName);

            ConvolutionalNetwork.CreateNetworkScript(tempNet, chromosome.crp.convActivations, chromosome.drp.denseActivations);
            ConvolutionalNetwork.CreateConvBatFile("temp_convolution.py", @"C:\keras\Directory\scripts\convolutional\genetic", gp._nrp.datasetPath,
                                                   gp._nrp._modelPath, gp._nrp._labelPath, gp._nrp._plotPath, gp._nrp.networkName, epoch, chromosome.indexNumber, 0);

            CreateConvBatProcess();

            chromosome.accuracy    = instance.tempAccuracy;
            chromosome.paramsCount = instance.tempParameters;
        }