Encog :"The Machine Learning Method has an input length of 7, but the training has 0" error

I’m currently having a project in which I use ENcog(.net) to classify emg signal, the features is already extracted, when I try to train it, it gets error as the title says.
Here is the code I use :

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

My question is why the dataset have Inputsize and idealsize 0, eventhough the calculated size is correct?

Thanks.


Source: .net

Leave a Reply