2015-06-14 1 views
1

У меня есть проект, в котором я использую ENcog (.net) для классификации emg-сигнала, функции уже извлечены , когда я пытаюсь обучить его, он получает ошибку, как говорится в названии. Вот код я использую:Encog: «Метод машинного обучения имеет длину ввода 7, но ошибка обучения 0»

 BasicNetwork JST = new BasicNetwork(); 
     JST.AddLayer(new BasicLayer(7)); 
     JST.AddLayer(new BasicLayer(new ActivationSigmoid(), true, 10)); 
     JST.AddLayer(new BasicLayer(new ActivationLinear(), true, 4)); 
     JST.Structure.FinalizeStructure(); 
     JST.Reset(); 

     openFileDialog1.Title = "Open Feature File..."; 
     openFileDialog1.FileName = ""; 
     openFileDialog1.Filter = "CSV (comma delimited)|*.csv|All Files|*.*"; 
     if (openFileDialog1.ShowDialog() == DialogResult.Cancel) 
     { 
      MessageBox.Show("Choice Cancelled"); 
     } 
     else 
     { 
      IVersatileDataSource data = new CSVDataSource(openFileDialog1.FileName, false, CSVFormat.DecimalComma); 
      var InputJST = new VersatileMLDataSet(data); 
      InputJST.DefineSourceColumn("MAV", 0, Encog.ML.Data.Versatile.Columns.ColumnType.Continuous); 
      InputJST.DefineSourceColumn("RMS", 1, Encog.ML.Data.Versatile.Columns.ColumnType.Continuous); 
      InputJST.DefineSourceColumn("VAR", 2, Encog.ML.Data.Versatile.Columns.ColumnType.Continuous); 
      InputJST.DefineSourceColumn("SD", 3, Encog.ML.Data.Versatile.Columns.ColumnType.Continuous); 
      InputJST.DefineSourceColumn("WL", 4, Encog.ML.Data.Versatile.Columns.ColumnType.Continuous); 
      InputJST.DefineSourceColumn("ZC", 5, Encog.ML.Data.Versatile.Columns.ColumnType.Continuous); 
      InputJST.DefineSourceColumn("SSC", 6, Encog.ML.Data.Versatile.Columns.ColumnType.Continuous); 
      ColumnDefinition outputColumn = InputJST.DefineSourceColumn("Arrow", 7, ColumnType.Nominal); 
      InputJST.DefineSingleOutputOthersInput(outputColumn); 
      InputJST.Analyze(); 

      var model = new EncogModel(InputJST); 
      model.SelectMethod(InputJST, MLMethodFactory.TypeFeedforward); 
      InputJST.Normalize(); 

      var train = new LevenbergMarquardtTraining(JST, InputJST); 

Мой вопрос, почему набор данных есть Inputsize и idealsize 0, Eventhough расчетного размера является правильным?

Спасибо.

+1

Возможно, это просто потому, что универсальный набор данных не может быть использован в базовом IMLtrain и, как мне кажется, только для поездов с конвейером. –

ответ

0

После жужжания с помощью кодов я получаю решения, просто сохраняю нормализованный набор данных в csv, а затем перезагружаю его csvmldataset.

Если все задаются вопросом, почему бы не использовать нормализатор csv, потому что результат является нежелательным (равносторонним).

PS: Любой, у кого есть другое решение, все еще оценен, спасибо.

+0

Можете ли вы опубликовать свой фрагмент кода? –

Смежные вопросы