मैं पूरे दस्तावेज के माध्यम से चला गया और आरबीएफ नेटवर्क को सेट करने का तरीका नहीं मिला। मुझे ConsoleExmpales/उदाहरण/रेडियल में कुछ आरबीएफ उदाहरण मिला, लेकिन ऐसा लगता है कि यह अब काम नहीं करता है, क्योंकि एनकॉग में कुछ विधियों को बदल दिया गया है।एनकॉग सी # आरबीएफ नेटवर्क, कैसे शुरू करें?
अब तक मैं इस पर अटक कर रहा हूँ:
public static double[][] XORInput = {
new[] {0.0, 0.0},
new[] {1.0, 0.0},
new[] {0.0, 1.0},
new[] {1.0, 1.0}
};
public static double[][] XORIdeal = {
new[] {0.0},
new[] {1.0},
new[] {1.0},
new[] {0.0}
};
int dimension = 8;
int numNeuronsPerDimension = 64;
double volumeNeuronWidth = 2.0/numNeuronsPerDimension;
bool includeEdgeRBFs = true;
RBFNetwork n = new RBFNetwork(dimension, numNeuronsPerDimension, 1, RBFEnum.Gaussian);
n.SetRBFCentersAndWidthsEqualSpacing(0, 1, RBFEnum.Gaussian, volumeNeuronWidth, includeEdgeRBFs);
//n.RandomizeRBFCentersAndWidths(0, 1, RBFEnum.Gaussian);
INeuralDataSet trainingSet = new BasicNeuralDataSet(XORInput, XORIdeal);
SVDTraining train = new SVDTraining(n, trainingSet);
int epoch = 1;
do
{
train.Iteration();
Console.WriteLine("Epoch #" + epoch + " Error:" + train.Error);
epoch++;
} while ((epoch < 1) && (train.Error > 0.001));
जब मैं इस चलाने के लिए, मैं त्रुटि मिलती है "RBF न्यूरॉन्स की कुल संख्या 'आयाम' की शक्ति के लिए कुछ पूर्णांक होना चाहिए।" पर सेटबीबीएफसीएन्टर्स एंडविड्थ्स एक्वाल स्पेसिंग पर। यह काम करता है अगर मैं इस विधि को के लिए बदलता हूं RandomizeRBFCentersAndWidthsट्रेन.इटरेशन() तक पहुंच गया है, जहां मुझे "इंडेक्स की सीमाओं के बाहर था" मिलता है।
मैं समझता हूं कि आरबीएफ नेटवर्क कैसे काम करता है, लेकिन मैं SetRBFCentersAndWidthsEqualSpacing विधि में सभी मानकों से उलझन में हूं, क्या कोई इसे और विस्तार से समझा सकता है?
मैं अपने आयाम बदलने के लिए भूल गया, 2 सही है:
मैं इसे अतिरिक्त टिप्पणी के साथ व्यावहारिक होने के लिए उसके लिए आपको अपने कोड को संशोधित किया गया है। NumNeuronsPerDimension को इंगित करने के लिए धन्यवाद, अब यह काम करता है! मैंने 8, 32 की कोशिश की है और यह काम नहीं करता है, इसलिए केवल 16, 64, 256. – EdWood
आयाम की डब्लूआरटी शक्ति आरबीएफ केंद्रों की आवश्यकता है और बराबर चौड़ाई दूरी एल्गोरिदम –
मुझे लगता है कि लाइन 232 पर .NET संस्करण में एक बग है: var अपेक्षितसाइडलाइट = (int) Math.Pow (कुल NumHiddenNeurons, 1.0d/आयाम); डबल सीएमपी = Math.Pow (कुल NumHiddenNeurons, 1.0d/आयाम); अगर (अपेक्षितसाइडलाइट! = सीएमपी) ये दो चर बराबर नहीं हो सकते हैं, क्योंकि "(int)" संख्या को राउंड करता है। यह संयोग है कि यह एक्सओआर उदाहरण के लिए काम करता है, अलग-अलग आयामों के साथ 1 9 यह काम नहीं करेगा। – EdWood