IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

La version 3.0 de ML.NET, le framework d'apprentissage automatique pour les développeurs .NET, est disponible
Et améliore ses capacités d'apprentissage profond et de traitement des données

Le , par Anthony

274PARTAGES

6  0 
ML.NET est un framework d'apprentissage automatique open-source et multiplateforme destiné aux développeurs .NET, qui permet d'intégrer des modèles d'apprentissage automatique personnalisés dans les applications .NET. La version 3.0 de ML.NET est désormais disponible, avec un grand nombre de nouvelles fonctionnalités et d'améliorations.

Les scénarios d'apprentissage profond ont été considérablement étendus dans cette version avec de nouvelles capacités dans la détection d'objets, la reconnaissance d'entités nommées et la réponse aux questions. Tout cela est possible grâce aux intégrations et à l'interopérabilité avec les modèles TorchSharp et ONNX. L'intégration avec LightGBM a également été mise à jour avec la dernière version.

Les scénarios de traitement des données sont grandement améliorés grâce à une longue liste d'améliorations et de corrections de bogues apportées à DataFrame, ainsi qu'à de nouvelles fonctionnalités d'interopérabilité avec IDataView. Les étapes importantes du chargement, de l'inspection, de la transformation et de la visualisation de vos données sont beaucoup plus puissantes.

La liste complète des mises à jour est disponible dans les notes de version.


Apprentissage profond

Au cours de l'année écoulée, nous avons tous été témoins d'une accélération de la croissance des scénarios et des capacités d'apprentissage profond. Avec ML.NET 3.0, vous pouvez tirer parti de bon nombre de ces avancées dans vos applications .NET.

Détection d'objets

La détection d'objets est un problème de vision par ordinateur. Bien qu'elle soit étroitement liée à la classification d'images, la détection d'objets effectue la classification d'images à une échelle plus granulaire. La détection d'objets permet à la fois de localiser et de classer les entités dans les images. Il est préférable d'utiliser la détection d'objets lorsque les images contiennent plusieurs objets de types différents.

La détection d'objets a été annoncée dans ML.NET Model Builder au début de l'année. Ces capacités s'appuient sur les API de détection d'objets alimentées par TorchSharp et introduites dans ML.NET 3.0.

L'API de détection d'objets exploite certaines des dernières techniques de Microsoft Research et s'appuie sur une architecture de réseau neuronal basée sur Transformer et construite avec TorchSharp. Pour plus de détails sur le modèle sous-jacent, voir l'article Searching the Space of Vision Transformer.

Object Detection est inclus dans le package Microsoft.ML.TorchSharp 3.0.0 dans les espaces de noms Microsoft.ML.TorchSharp et Microsoft.ML.TorchSharp.AutoFormerV2. Lisez l'article sur la détection d'objets dans ML.NET Model Builder pour un aperçu approfondi.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
var chain = new EstimatorChain<ITransformer>();

var filteredPipeline = chain. Append(
        mlContext.Transforms.Text.TokenizeIntoWords(labelColumnName, separators: [',']),
        TransformerScope.Training
    )
    .Append(
        mlContext.Transforms.Conversion.MapValueToKey(labelColumnName),
        TransformerScope.Training
    )
    .Append(
        mlContext.Transforms.Text.TokenizeIntoWords(boundingBoxColumnName, separators: [',']),
        TransformerScope.Training
    )
    .Append(
        mlContext.Transforms.Conversion.ConvertType(boundingBoxColumnName),
        TransformerScope.Training
    )
    .Append(mlContext.Transforms.LoadImages("Image", imageFolder, "ImagePath"))
    .Append(
        mlContext.MulticlassClassification.Trainers.ObjectDetection(
            labelColumnName, predictedLabelColumnName, scoreColumnName,
            boundingBoxColumnName, predictedBoundingBoxColumnName,
            imageColumnName, maxEpoch
        )
    )
    .Append(mlContext.Transforms.Conversion.MapKeyToValue(predictedLabelColumnName));

var options = new ObjectDetectionTrainer.Options()
{
    LabelColumnName = labelColumnName,
    BoundingBoxColumnName = boundingBoxColumnName,
    ScoreThreshold = .5,
    MaxEpoch = maxEpoch,
    LogEveryNStep = 1,
};

var pipeline = mlContext.Transforms.Text.TokenizeIntoWords(labelColumnName, separators: [','])
    .Append(mlContext.Transforms.Conversion.MapValueToKey(labelColumnName))
    .Append(mlContext.Transforms.Text.TokenizeIntoWords(boundingBoxColumnName, separators: [',']))
    .Append(mlContext.Transforms.Conversion.ConvertType(boundingBoxColumnName))
    .Append(mlContext.Transforms.LoadImages("Image", imageFolder, "ImagePath"))
    .Append(mlContext.MulticlassClassification.Trainers.ObjectDetection(options))
    .Append(mlContext.Transforms.Conversion.MapKeyToValue(predictedLabelColumnName));

var model = pipeline.Fit(data);
var idv = model.Transform(data);

var metrics = ML.MulticlassClassification.EvaluateObjectDetection(
    idv, idv.Schema[2], idv.Schema[boundingBoxColumnName], idv.Schema[predictedLabelColumnName],
    idv.Schema[predictedBoundingBoxColumnName], idv.Schema[scoreColumnName]
);

Reconnaissance des entités nommées et réponse aux questions

Le traitement du langage naturel est l'un des besoins les plus courants en matière de ML dans les logiciels. La réponse aux questions (QA) et la reconnaissance des entités nommées (NER) sont deux des domaines où les progrès ont été les plus importants. Ces deux scénarios sont...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !