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 !

Deep Leaning : Microsoft et AWS s'associent et lancent Gluon
Une bibliothèque permettant de créer facilement des modèles d'apprentissage automatique

Le , par Malick

253PARTAGES

5  0 
Amazon Web Services Inc. (AWS) et Microsoft Corp. viennent d'annoncer le lancement d'une toute nouvelle bibliothèque spécialement dédiée à l'apprentissage en profondeur et baptisée Gluon. Cette dernière, à en croire ses éditeurs, est basée sur la spécification API Gluon et devrait permettre aux développeurs, quelles que soient leurs compétences dans le domaine de l'apprentissage en profondeur, de créer facilement et plus rapidement des modèles d'apprentissage automatique.


D'après les informations recueillies, la nouvelle bibliothèque Gluon fonctionne actuellement avec Apache MXNet 0.11 et fournit une API qui offre une interface flexible simplifiant le processus de prototypage, de construction de formation et de déploiement des modèles d'apprentissage en profondeur, cela sans incidence sur les performances. « Grâce à l'interface Gluon, les développeurs ont maintenant la possibilité de créer des modèles d'apprentissage automatique à l'aide d'une simple API Python et d'une large gamme de composants de réseaux de neurones optimisés. Cela devient donc maintenant plus aisé pour les développeurs de créer des réseaux de neurones en utilisant un code simple et concis. », peut-on lire dans l'annonce. Il est également rappelé que les développeurs utilisent trois composants pour créer des réseaux de neurones : il s'agit des données de tests, d'un modèle et d'un algorithme. « L'algorithme permet au modèle de comprendre les données de tests contenues dans le modèle. Comme le volume de données est important et que les modèles et les algorithmes sont complexes, la formation d'un modèle prend souvent des jours, voire des semaines. », lit-on également dans l'annonce.

AWS et Microsoft soutiennent également que dans une prochaine version, l'interface de Gluon, en plus de fonctionner avec Apache MXNet, supportera également Microsoft Cognitive Toolkit qui est initialement connu sous le nom de Computational Network Toolkit (CNTK). Rappelons que Microsoft Cognitive Toolkit est une solution open source qui permet de créer des solutions de machine learning soit en C++, soit en BrainScript, soit en Python.

Selon AWS et Microsoft, les avantages qui sont fournis par la nouvelle bibliothèque, en l'occurrence Gluon, se présentent comme suit :

  • code simple et facile à comprendre : Gluon offre un ensemble complet de blocs de construction de réseaux neuronaux plug-and-play, y compris des couches prédéfinies, des optimiseurs et des initialiseurs.
    Code python : Sélectionner tout
    1
    2
    3
    4
    5
    6
    7
    8
    net  = gluon.nn.Sequential ()  
    # Lorsqu'elle est instanciée, Sequential stocke une chaîne de couches réseau neuronales.  
    # Après avoir présenté les données, Sequential exécute chaque couche à son tour, en utilisant  
    # la sortie d'une couche comme entrée pour la suivante  
    avec net.name_scope () :  
        net.add ( gluon.nn.Dense ( 256 , activation = "relu" ))  # 1re couche (256 noeuds)  
        net.add ( gluon.nn.Dense ( 256 , activation = "Relu" ))  # 2 couche cachée  
        net.add (gluon.nn.Dense ( num_outputs ))
  • structure souple et flexible : Gluon ne nécessite pas de définition rigide du modèle de réseau neuronal, mais rapproche l'algorithme et le modèle d'apprentissage pour offrir une flexibilité dans le processus de développement. Les développeurs vont pouvoir prototyper, construire et tester les réseaux neuronaux en utilisant le paquet autograd MXNet et la méthode Gluon formateur :
    Code python : Sélectionner tout
    1
    2
    3
    4
    5
    6
    7
    8
    9
    epochs = 10 
      
            for e in range(epochs): 
                for i, (data, label) in enumerate(train_data): 
                    with autograd.record(): 
                        output = net(data) # the forward iteration 
                        loss = softmax_cross_entropy(output, label) 
                        loss.backward() 
                    trainer.step(data.shape[0])
  • graphiques dynamiques : Gluon permet aux développeurs de définir des modèles de réseaux neuronaux dynamiques, ce qui signifie qu'ils peuvent être construits à la volée, avec n'importe quelle structure et en utilisant n'importe quel flux de contrôle natif de Python. En d'autres termes, cela signifie que les développeurs peuvent utiliser l'interface Gluon pour créer des réseaux de neurones à la volée tout en ayant la possibilité de modifier leur taille et leur forme de manière dynamique.

    Code python : Sélectionner tout
    1
    2
    3
    4
    5
    6
    def forward(self, F, inputs, tree): 
        children_outputs = [self.forward(F, inputs, child) 
                            for child in tree.children] 
        #Recursively builds the neural network based on each input sentence’s 
        #syntactic structure during the model definition and training process
  • haute performance : Gluon offre tous les avantages ci-dessus et cela sans affecter les performances du moteur sous-jacent. AWS et Microsoft soutiennent qu'il faut mettre en cache le réseau de neurones afin d'atteindre de hautes performances ; et pour ce faire, il convient de définir le réseau neuronal avec HybridSequential et d'appeler la méthode hybridize:

    Code : Sélectionner tout
    1
    2
    3
    4
    5
    net = nn.HybridSequential() 
    with net.name_scope(): 
        net.add(nn.Dense(256, activation="relu")) 
        net.add(nn.Dense(128, activation="relu")) 
        net.add(nn.Dense(2))
    Compiler et optimiser HybridSequential en appelant la méthode hybridize :

    Code : Sélectionner tout
    net.hybridize ()


Source : GitHub Gluon - MXNET - Businesswire

Et vous ?

Que pensez-vous de la nouvelle bibliothèque Gluon ?

Allez-vous la tester ?

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

Avatar de marsupial
Expert éminent https://www.developpez.com
Le 14/10/2017 à 11:19
Digne d'intérêt et adaptée à nos besoins afin d'éviter d'entrer dans récursivité infini. Merci monsieur
0  0