示例#1
0
        private void InstanciateSteps()
        {
            inputLayer        = new InputStep(32, 32);
            FirstConvolutions = new ConvolutionStep[FirstConvolutionCount];
            FirstSubsampling  = new SubsamplingStep[FirstConvolutionCount];
            for (int i = 0; i < FirstConvolutionCount; i++)
            {
                ConvolutionStep convolutionStep = new ConvolutionStep(inputLayer, FirstConvolutionSize);
                FirstConvolutions[i] = convolutionStep;
                FirstSubsampling[i]  = new SubsamplingStep(convolutionStep, 2);
            }

            SecondConvolutions = new ConvolutionStep[SecondConvolutionCount];
            SecondSubsampling  = new SubsamplingStep[SecondConvolutionCount];
            for (int i = 0; i < SecondConvolutionCount; i++)
            {
                RectangularStep[] inputs          = FirstSubsampling.Where((item, upstreamIndex) => SecondConvolutionConnections[i, upstreamIndex]).ToArray();
                ConvolutionStep   convolutionStep = new ConvolutionStep(inputs, SecondConvolutionSize);
                SecondConvolutions[i] = convolutionStep;
                SecondSubsampling[i]  = new SubsamplingStep(convolutionStep, 2);
            }

            Consolidation = new FeedForwardStep(120, SecondSubsampling);

            Output  = new FeedForwardStep(OutputFeedForwardNeurons, Consolidation);
            Marking = new MarkingStep(Output, configuration);
        }
示例#2
0
        private void InstanciateSteps()
        {
            inputLayer = new InputStep(32, 32);
            FirstConvolutions = new ConvolutionStep[FirstConvolutionCount];
            FirstSubsampling = new SubsamplingStep[FirstConvolutionCount];
            for (int i = 0; i < FirstConvolutionCount; i++)
            {
                ConvolutionStep convolutionStep = new ConvolutionStep(inputLayer, FirstConvolutionSize);
                FirstConvolutions[i] = convolutionStep;
                FirstSubsampling[i] = new SubsamplingStep(convolutionStep, 2);
            }

            SecondConvolutions = new ConvolutionStep[SecondConvolutionCount];
            SecondSubsampling = new SubsamplingStep[SecondConvolutionCount];
            for (int i = 0; i < SecondConvolutionCount; i++)
            {
                RectangularStep[] inputs = FirstSubsampling.Where((item, upstreamIndex) => SecondConvolutionConnections[i, upstreamIndex]).ToArray();
                ConvolutionStep convolutionStep = new ConvolutionStep(inputs, SecondConvolutionSize);
                SecondConvolutions[i] = convolutionStep;
                SecondSubsampling[i] = new SubsamplingStep(convolutionStep, 2);
            }

            Consolidation = new FeedForwardStep(120, SecondSubsampling);

            Output = new FeedForwardStep(OutputFeedForwardNeurons, Consolidation);
            Marking = new MarkingStep(Output, configuration);
        }