Microsoft veröffentlicht neue Version von ML.NET

ML.NET 0.11 erschienen: Machine Learning in .NET mit neuen Funktionen für TensorFlow und ONNX
Keine Kommentare

Microsoft hat die neueste Version seines Frameworks für Machine Learning veröffentlicht: ML.NET 0.11 bringt neue Features und Breaking Changes mit.

ML.NET 0.11 ist da. Die neue Version des quelloffenen Frameworks für Machine Learning bietet Neuerungen für TensorFlow und ONNX, enthält aber auch einige Breaking Changes.

Neuerungen in ML.NET 0.11

Die neueste Version von ML.NET unterstützt nun auch Text-Eingabedaten in der TensorFlowTransformer-Komponente. TensorFlow-Modelle lassen sich so nicht nur für Bilder, sondern auch für Textanalysen verwenden. Das wird im Code-Beispiel des .NET-Blogs veranschaulicht, in dem ein TensorFlow-Modell für die Gefühlsanalyse verwendet wird:

 

public class TensorFlowSentiment
        {
            public string Sentiment_Text;
            [VectorType(600)]
            public int[] Features;
            [VectorType(2)]
            public float[] Prediction;
        }

        [TensorFlowFact]
        public void TensorFlowSentimentClassificationTest()
        {
            var mlContext = new MLContext(seed: 1, conc: 1);
            var data = new[] { new TensorFlowSentiment() { Sentiment_Text = "this film was just brilliant casting location scenery story direction everyone's really suited the part they played and you could just imagine being there robert  is an amazing actor and now the same being director  father came from the same scottish island as myself so i loved the fact there was a real connection with this film the witty remarks throughout the film were great it was just brilliant so much that i bought the film as soon as it was released for  and would recommend it to everyone to watch and the fly fishing was amazing really cried at the end it was so sad and you know what they say if you cry at a film it must have been good and this definitely was also  to the two little boy's that played the  of norman and paul they were just brilliant children are often left out of the  list i think because the stars that play them all grown up are such a big profile for the whole film but these children are amazing and should be praised for what they have done don't you think the whole story was so lovely because it was true and was someone's life after all that was shared with us all" } };
            var dataView = mlContext.Data.ReadFromEnumerable(data);

            var lookupMap = mlContext.Data.ReadFromTextFile(@"sentiment_model/imdb_word_index.csv",
                   columns: new[]
                   {
                        new TextLoader.Column("Words", DataKind.TX, 0),
                        new TextLoader.Column("Ids", DataKind.I4, 1),
                   },
                   separatorChar: ','
               );
               
            var estimator = mlContext.Transforms.Text.TokenizeWords("TokenizedWords", "Sentiment_Text")
                .Append(mlContext.Transforms.Conversion.ValueMap(lookupMap, "Words", "Ids", new[] { ("Features", "TokenizedWords") }));
            var dataPipe = estimator.Fit(dataView)
                .CreatePredictionEngine<TensorFlowSentiment, TensorFlowSentiment>(mlContext);

            string modelLocation = @"sentiment_model";
            var tfEnginePipe = mlContext.Transforms.ScoreTensorFlowModel(modelLocation, new[] { "Prediction/Softmax" }, new[] { "Features" })
                .Append(mlContext.Transforms.CopyColumns(("Prediction", "Prediction/Softmax")))
                .Fit(dataView)
                .CreatePredictionEngine<TensorFlowSentiment, TensorFlowSentiment>(mlContext);

            //Predict the sentiment for the sample data 
            var processedData = dataPipe.Predict(data[0]);
            Array.Resize(ref processedData.Features, 600);
            var prediction = tfEnginePipe.Predict(processedData);
        }

Auch für den MLContext-Katalog wurden zusätzliche Machine-Learning-Komponenten hinzugefügt. Das soll das Auffinden von Klassen und Operationen erleichtern. Die Abbildung zeigt die Nutzererfahrung basierend auf IntelliSense.

MLContext Catalog; Quelle: Microsoft

Die ONNX-Verwendung erhält ebenfalls eine Neuerung: Microsoft.ML.ONNX wurde zu Microsoft.ML.ONNXConverter und Microsoft.ML.ONNXTransform zu Microsoft.ML.ONNXTransformer umbenannt. Das soll die Unterscheidung zwischen ONNX-Konvertierungen und -Transformationen verdeutlichen. ONNX ist ein offenes und interoperables Modellformat, das es ermöglicht, Modelle in einem Framework zu trainieren, z. B. scikit-learn oder TensorFlow, und in einem anderen Framework zu verwenden, z. B. in ML.NET.

In ML.NET 0.11 sind einige Breaking Changes im Vergleich zur Vorversion ML.NET 0.10 enthalten, darunter die Entfernung des Microsoft.ML.Core-Namespace. Die Liste der Breaking Changes wurde auf GitHub veröffentlicht. Detaillierte Informationen zu den Neuerungen in ML.NET 0.11 bietet der .NET-Blogeintrag.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -