Я задал этот вопрос , чтобы узнать, как переобучить мой 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
.
Как я могу переобучить эту модель, пожалуйста?