Я не могу понять, как использовать ML.NET в Unity.
Что я сделал: преобразовал мой проект для совместимости с framework 4.x.Преобразован уровень совместимости API в Framework 4.x.Сделал папку assets / plugins / ml и поместил в apis Microsoft.ML с соответствующим xmls.Все настройки платформы ml.dll помечены как совместимые только с 86_64 (это было избыточно).
Теперь я могу: вызвать apl ML и создать MlContext, TextLoader и выполнить обучение модели.Когда модель обучена, я также могу оценить обученную модель, но ...
Я не могу: При попытке получить прогноз из модели я получаю сообщение об ошибке: github комментарий по вопросу от 28.12.18 (там также прикреплен целый проект, вы можете увидеть код там) Тот же код работает в решении Visual Studio.
public float TestSinglePrediction(List<double> signal, MLContext mlContext, string modelPath)
{
ITransformer loadedModel;
using (var stream = new FileStream(modelPath, FileMode.Open, FileAccess.Read, FileShare.Read))
{
loadedModel = mlContext.Model.Load(stream);
}
var predictionFunction = loadedModel.MakePredictionFunction<AbstractSignal, PredictedRfd>(mlContext);
var abstractSignal = new AbstractSignal()
{
Sig1 = (float)signal[0],
Sig2 = (float)signal[1],
Sig3 = (float)signal[2],
Sig4 = (float)signal[3],
Sig5 = (float)signal[4],
Sig6 = (float)signal[5],
Sig7 = (float)signal[6],
Sig8 = (float)signal[7],
Sig9 = (float)signal[8],
Sig10 = (float)signal[9],
Sig11 = (float)signal[10],
Sig12 = (float)signal[11],
Sig13 = (float)signal[12],
Sig14 = (float)signal[13],
Sig15 = (float)signal[14],
Sig16 = (float)signal[15],
Sig17 = (float)signal[16],
Sig18 = (float)signal[17],
Sig19 = (float)signal[18],
Sig20 = (float)signal[19],
RfdX = 0
};
var prediction = predictionFunction.Predict(abstractSignal);
return prediction.RfdX;
}
Этот метод возвращает строку ошибки:var predictionFunction = loadedModel.MakePredictionFunction<AbstractSignal, PredictedRfd>(mlContext);