VectorType attribute with dynamic dimension ML.NET

Viewed 149

I am working on training and evaluation in ML.NET. The data comes from a .csv file. According to the requirements, there may be variable number of columns in the file. Until now, I have achieved this by providing a fixed vectorType dimension. But I am not aware of making this work dynamically.

Here is the a block of code working using the fixed dimension,

public class InputClass 
{
    public bool isChecked;
    
    [VectorType(5)] 
    public string[] records;
}

public static void Main(string[] args)
{
   MLContext mlContext = new MLContext(seed:0);
   TextLoader.Columns[] columns = new TextLoader.Columns[2];
   columns[0] = new TextLoader.Column("isChecked", DataKind.Boolean, 0);
   columns[1] = new TextLoader.Column("records", DataKind.String, 1,5);

   IDataView dataview = mlContext.Data.LoadFromTextFile(filepath, columns,        
   separatorChar:',', hasHeader:true, allowQuoting:false, trimWhitespace: true, 
   allowSparse:true);

   //-- creating pipeline and training a model further

}

This code works without any issue. But I just need the VectorType to accept the dimension at runtime. Now it accepts only constant values. I am looking if there is any workaround to achieve this. I am a beginner into ML.Net, please do understand if I missed any steps or anything to be explained. I really appreciate any help to get this worked.

0 Answers
Related