private void ComputeFilteredImage()
        {
            FilteredImage image = (FilteredImage)PreviousLayer.GetData();

            FilteredImageChannel[] newChannels = new FilteredImageChannel[image.NumberOfChannels];
            int size = image.Size;

            for (int i = 0; i < image.NumberOfChannels; i++)
            {
                double[,] newValues = new double[size, size];

                for (int valuesI = 0; valuesI < size; valuesI++)
                {
                    for (int valuesJ = 0; valuesJ < size; valuesJ++)
                    {
                        if (GlobalRandom.GetRandomDouble() < Rate)
                        {
                            newValues[valuesI, valuesJ] = 0;
                        }
                        else
                        {
                            newValues[valuesI, valuesJ] = image.Channels[i].Values[valuesI, valuesJ];
                        }
                    }
                }

                newChannels[i] = new FilteredImageChannel(size, newValues);
            }

            Output = new FilteredImage(image.NumberOfChannels, newChannels);
        }
Exemplo n.º 2
0
        private void InitializeRandom()
        {
            Weights = new double[NumberOfWeights];

            for (int i = 0; i < NumberOfWeights; i++)
            {
                Weights[i] = GlobalRandom.GetRandomWeight() / NumberOfWeights;
            }

            Bias = 0;
        }
        private List <InputOutputPair> Shuffle(List <InputOutputPair> set)
        {
            for (int i = 0; i < set.Count; i++)
            {
                int             x   = GlobalRandom.GetRandomInt(i, set.Count);
                InputOutputPair aux = set[x];
                set[x] = set[i];
                set[i] = aux;
            }

            return(set);
        }
        private void InitializeRandom()
        {
            Values = new double[Size, Size];

            int squaredSize = Size * Size;

            for (int i = 0; i < Size; i++)
            {
                for (int j = 0; j < Size; j++)
                {
                    Values[i, j] = GlobalRandom.GetRandomWeight() / squaredSize;
                }
            }
        }
        private void ComputeFlattenedImage()
        {
            FlattenedImage previous = (FlattenedImage)PreviousLayer.GetData();

            double[] newValues = new double[previous.Size];

            for (int i = 0; i < previous.Size; i++)
            {
                if (GlobalRandom.GetRandomDouble() < Rate)
                {
                    newValues[i] = 0;
                }
                else
                {
                    newValues[i] = previous.Values[i];
                }
            }

            Output = new FlattenedImage(previous.Size, newValues);
        }