dotnet / dotnet/machinelearning-samples
Missing initializer member in generated code
- Lingua principale
- PowerShell
- Stelle
- 4.7k
- Fork
- 2.7k
- Merge medio
- 2g 22h
- PR unite (30g)
- 1
Descrizione
Problem encountered on https://dotnet.microsoft.com/learn/machinelearning-ai/ml-dotnet-get-started-tutorial/generate-code
Operating System: windows
Provide details about the problem you are experiencing. Include your operating system version, exact error message, code sample, and anything else that is relevant.
In ModelBuilder.cs the function
> public static IEstimator BuildTrainingPipeline(MLContext mlContext)
the trining algorithm is missing a initializer member.
The code looks like this generated:
```
public static IEstimator BuildTrainingPipeline(MLContext mlContext)
{
// Data process configuration with pipeline data transformations
var dataProcessPipeline = mlContext.Transforms.Text.FeaturizeText("SentimentText_tf", "SentimentText")
.Append(mlContext.Transforms.CopyColumns("Features", "SentimentText_tf"))
.Append(mlContext.Transforms.NormalizeMinMax("Features", "Features"))
.AppendCacheCheckpoint(mlContext);
// Set the training algorithm
var trainer = mlContext.BinaryClassification.Trainers.SgdCalibrated(new SgdCalibratedTrainer.Options() {
L2Regularization = 5E-06f,
ConvergenceTolerance = 0,
0.01f, // < ----- LOOK HERE
NumberOfIterations = 10,
Shuffle = true,
LabelColumnName = "Sentiment",
FeatureColumnName = "Features" });
var trainingPipeline = dataProcessPipeline.Append(trainer);
return trainingPipeline;
}
```
I had a look at the documentation and figured that what was missing was this
```
public static IEstimator BuildTrainingPipeline(MLContext mlContext)
{
// Data process configuration with pipeline data transformations
var dataProcessPipeline = mlContext.Transforms.Text.FeaturizeText("SentimentText_tf", "SentimentText")
.Append(mlContext.Transforms.CopyColumns("Features", "SentimentText_tf"))
.Append(mlContext.Transforms.NormalizeMinMax("Features", "Features"))
.AppendCacheCheckpoint(mlContext);
// Set the training algorithm
var trainer = mlContext.BinaryClassification.Trainers.SgdCalibrated(new SgdCalibratedTrainer.Options() {
L2Regularization = 5E-06f,
ConvergenceTolerance = 0,
PositiveInstanceWeight = 0.01f, // <--- SEEMED TO DO THE TRICK
NumberOfIterations = 10,
Shuffle = true,
LabelColumnName = "Sentiment",
FeatureColumnName = "Features" });
var trainingPipeline = dataProcessPipeline.Append(trainer);
return trainingPipeline;
}
```
Also worth noting was that when the code was generated the value "0.01f" actually said "001f". I imagine it can have something to do with language setting on the computer perhaps.
EDIT: Similar problem as #444
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia dal punto di ingresso del tutorial di ML.NET e dal file ModelBuilder.cs generato, concentrandoti su BuildTrainingPipeline e sull'inizializzatore delle opzioni SgdCalibrated. Riproduci il codice generato su Windows, inclusa l'uscita segnalata 0.01f rispetto a 001f, e confrontalo con l'issue correlata #444. Il lavoro è completato quando l'inizializzatore generato è valido e il valore numerico viene emesso correttamente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- csharp, machine-learning
- Ambito
- machine-learning
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100