Модель Retrain - приведение ITransformer к MulticlassPredictionTransformer - PullRequest
0 голосов
/ 18 февраля 2020

Я задал этот вопрос , чтобы узнать, как переобучить мой SdcaMaximumEntropyMulticlassTrainer, и мне посоветовали использовать вместо него LbfgsMaximumEntropyMulticlassTrainer, который можно переподготовить.

Так что я на самом деле пытается извлечь MaximumEntropyModelParameters из моего ITransformer, но я застрял в этой точке. Вот что я сделал до сих пор:

Я создал ITransformer из своего IDataView следующим образом:

var pipeline = mlContext.Transforms.Conversion.MapValueToKey()
    .Append(mlContext.Transforms.Text.FeaturizeText())
    .AppendCacheCheckpoint(mlContext);
var trainingPipeline = pipeline.Append(mlContext.MulticlassClassification.Trainers.LbfgsMaximumEntropy())
    .Append(mlContext.Transforms.Conversion.MapKeyToValue("PredictedLabel"));
ITransformer trainedModel = trainingPipeline.Fit(splitTrainSet);

Теперь я пытаюсь переобучить его, извлекая параметры, подобные этому:

var originalModelParameters = ((MulticlassPredictionTransformer<object>)model).Model as MaximumEntropyModelParameters;
model = mlContext.MulticlassClassification.Trainers.LbfgsMaximumEntropy().Fit(transformedNewData, originalModelParameters);

Код теперь компилируется без ошибок, но при его запуске я получаю сообщение об ошибке в объявлении originalModelParameters:

System.InvalidCastException: ' Невозможно привести объект типа 'Microsoft.ML.Data.TransformerChain 1[Microsoft.ML.ITransformer]' to type 'Microsoft.ML.Data.MulticlassPredictionTransformer 1 [System.Object]'. '

Я попытался найти некоторые примеры LbfgsMaximumEntropyMulticlassTrainer для переподготовки на GitHub, но это кажется трудно найти, и официальный документ ограничивает их примеры только на OnlineGradientDescentTrainer.

Как я могу переобучить эту модель, пожалуйста?

...