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); }
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); }