我目前正在尝试在ML.net的MlContext.Model.CreatePredictionEngine<>(ITransformer);中动态改变Tsrc和Tdest。因此,在代码中没有数据结构类(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中?
发布于 2019-05-09 05:58:36
如果不需要强类型格式的结果,可以使用Transform方法,而不是Predict。
https://stackoverflow.com/questions/56034668
复制相似问题