0

I am currently trying to dynamically change the Tsrc and Tdest in MlContext.Model.CreatePredictionEngine<>(ITransformer); in ML.net. So instead of having a class for data structure (Tsrc) and a class for the prediction (Tdesc) in the code, could I somehow dynamically add the classes probably with reflection?

I have tried to load an object using JsonConvert.deseralize() and get the type of that object to be the Tsrc and Tdest.

            ITransformer loadedModel = mlContext.Model.Load(modelPath, out var schema);
            List<DataViewSchema.Column?> columnData = new List<DataViewSchema.Column?>();
            foreach (string col in columns)
            {
                DataViewSchema.Column? sch = schema.GetColumnOrNull(col);
                columnData.Add(sch);
            }
            object obj_data = JsonConvert.DeserializeObject(str_data_one);
            object obj_prediction = JsonConvert.DeserializeObject(str_data_two);



            //var prediction = mlContext.Model.CreatePredictionEngine<IrisData, IrisPrediction>(loadedModel).Predict();
            var prediction = mlContext.Model.CreatePredictionEngine<>(loadedModel).predict();

edit: The Tsrc and Tdest are actual classes, not instances of a class or a method. an example is in the commented out code there is IrisData and IrisPrediction, this were the code of each class:

     public class IrisData
    {
        [LoadColumn(0)]
        public float SepalLength;

        [LoadColumn(1)]
        public float SepalWidth;

        [LoadColumn(2)]
        public float PetalLength;

        [LoadColumn(3)]
        public float PetalWidth;

        [LoadColumn(4)]
        public string Label;
    }

    public class IrisPrediction
    {
        [ColumnName("PredictedLabel")]
        public string PredictedLabels;
    }

how would I build the classes above in real time of the program using reflection and adding it to the Tsrc and Tdest?

1 Answers1

0

Maybe use the Transform method, rather than Predict, if you don't need the results in the strongly typed format.

amy8374
  • 1,450
  • 3
  • 17
  • 26