Можно ли динамически добавлять Tsrc и Tdest в CreatePredictionEngine <>? - PullRequest
0 голосов
/ 08 мая 2019

В настоящее время я пытаюсь динамически изменить значения Tsrc и Tdest в MlContext.Model.CreatePredictionEngine <> (ITransformer); в ML.net. Таким образом, вместо того, чтобы иметь класс для структуры данных (Tsrc) и класс для предсказания (Tdesc) в коде, могу ли я каким-то образом динамически добавлять классы, возможно, с отражением?

Я попытался загрузить объект с помощью JsonConvert.deseralize () и получить тип этого объекта - Tsrc и 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();

редактировать: Tsrc и Tdest являются фактическими классами, а не экземплярами класса или метода. пример в закомментированном коде есть IrisData и IrisPrediction, это был код каждого класса:

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

как бы я построил классы выше в режиме реального времени программы, используя отражение и добавив его в Tsrc и Tdest?

1 Ответ

0 голосов
/ 09 мая 2019

Возможно, используйте метод Transform, а не Predict, если вам не нужны результаты в строго типизированном формате.

...