2016-10-16 2 views
1

я получаю постоянно ошибки Общее количество RBF нейронов должно быть некоторое целое число в степень «Размеры» с с использованием метода SetRBFCentersAndWidthsEqualSpacing в C#.Encog РФБ C#, Общее количество RBF нейронов должно быть некоторое целое число в степень «Размеры»

Может кто-нибудь, кто знаком с сетью RBF в Encog, проверит строку 232 в RBFNetwork.cs. Я думаю, что есть, может быть, ошибка или я что-то пропустила:

var expectedSideLength = (int) Math.Pow(totalNumHiddenNeurons, 1.0d/dimensions); 
double cmp = Math.Pow(totalNumHiddenNeurons, 1.0d/dimensions); 
if (expectedSideLength != cmp) -> error 

эти две переменные не могут быть равны, потому что (целое) округляет число. Это совпадение, что он работает для примера XOR, он не будет работать с разными dimenson, например, 19.

Это, как я создаю RBF сети:

dataSet is VersatileMLDataSet 
RBFNetwork n = new RBFNetwork(dataSet.CalculatedInputSize, dataSet.Count, 1, RBFEnum.Gaussian); 
n.SetRBFCentersAndWidthsEqualSpacing(0, 1, RBFEnum.Gaussian, 2.0/(dataSet.CalculatedInputSize * dataSet.CalculatedInputSize), true); 

Мой набор данных имеет 19 атрибутов (размер) с 731 записей.

+0

Просьба указать ввод, который вы передаете в функции вызова, и как вы хотите инициализировать нейронную сеть. –

+0

Обновлено, извините за задержку. – EdWood

ответ

0

Число скрытых нейронов - это целое число, увеличенное до мощности числа входных нейронов. Итак, если у вас есть 3 входных атрибута и размер окна 2, скрытые нейроны будут представлять собой любое целое число (скажем, 3), увеличенное до 6 (3 x 2) или 729. Это ограничивает количество входных атрибутов и размер окна как количество скрытых нейронов очень быстро увеличивается.