Li Lin compilé à partir de Google Blog de recherche
Qubit produit | Numéro public QbitAI
Google a lancé aujourd'hui une nouvelle bibliothèque open source de différenciation automatique Python: Tangent.
bibliothèque existante de différents apprentissage automatique, Tangent est un code source dans le code source du système, en utilisant la fonction f python et python avec une nouvelle fonction pour calculer le gradient de f. Ainsi, les utilisateurs d'aide peut pour mieux voir les calculs de gradient et plus facilement éditer et le débogage gradient de niveau utilisateur.
De plus, Tangente et beaucoup plus de débogage et des modèles d'apprentissage machine fonctionnalité Design:
-
Facile processus de transfert inverse de mise au point (passe en arrière)
-
chirurgie gradient rapide
-
Mode automatique avant la différenciation
-
Produit vectoriel des universités hessois
-
optimisation du code
Cet article décrit l'API Tangent, y compris comment l'utiliser pour générer facile à comprendre, déboguer et modifier le code du dégradé en Python.
la machine d'apprentissage du réseau de neurones a de grands progrès, mais l'idée de base nous formons le réseau de neurones pour accomplir des tâches existe déjà depuis 30 ans, il est le mode inverse différenciation automatique (inverse mode de différenciation automatique), qui est, nous avons souvent il a dit la propagation arrière (rétropropagation). Procédé de rétropropagation à deux reprises par le réseau neuronal comprenant: un premier terme « transfert vers l'avant » pour le calcul de la valeur de sortie de chaque noeud, et ensuite exécuter le calcul de la série dérivée « transfert inverse » pour déterminer comment mettre à jour les coefficients de pondération, afin d'améliorer le modèle précision.
Former le réseau de neurones, une nouvelle architecture de l'étude, nous avons besoin de corriger, efficace et calculer facilement ces dérivés. Lorsque la formation de modèle n'est pas bon, ou d'essayer quelque chose de nouveau construire, nous ne savons pas, aussi nous devons être en mesure de déboguer ces dérivés. différenciation automatique (autodiff visé) peut être calculé dans le programme informatique représente la dérivée de certaines fonctions mathématiques, et presque toutes les machines d'apprentissage des bibliothèques peut y parvenir.
Effectuer (au moment de l'exécution, par exemple tensorflow Eager, PyTorch, Autograd), ou l'accumulation diagramme de flux de données dynamiques d'une bibliothèque d'apprentissage de la machine conventionnelle par le programme de suivi de piste et de son dérivé (à l'avance, comme tensorflow) pour réaliser la différentiation automatique.
Tangent qui sont utilisés avec les différentes façons d'effectuer une avance de différentiel automatique sur le code source python, le code source et génère en sortie python.
Ainsi, vous pouvez lire le programme comme d'autres parties du même, de lire automatiquement le dérivé de code.
Pour les chercheurs et les étudiants non seulement veulent utiliser Python pour le modèle d'écriture, veulent lire sans sacrifier le bas de la vitesse et de flexibilité, le débogueur de code dérivé généré automatiquement, Tangent très utile.
Vérification et le débogage modèle Tangent ne nécessite pas d'outils spéciaux, Tangent peut travailler sous-ensemble important et croissant Python de fonctionnalités qu'ils offrent une différenciation automatique est aucune autre machine d'apprentissage bibliothèque Python. Son haute performance, et est compatible avec tensorflow, NumPy.
Comment dérivé il est généré automatiquement le code Python?
Tf.exp ou tf.log telles que les fonctions mathématiques ont dérivé, nous pouvons écrire pour construire une passe inversée, sous-routines, conditions, boucles et autres fragments de grammaire a également une version passe inverse. Tangent peut appeler une syntaxe Python, et de nombreuses fonctions Numpy et tensorflow pour générer du code dérivé.
Tangent a une seule API de fonction:
La figure suivante montre le déplacement lorsque l'on appelle une fonction Python tangent.grad sur ce qui se passe:
Si vous voulez la liste de leurs dérivés, vous pouvez exécuter:
Pour les fonctions Eager dérivés et tensorflow de Python, Tangent a une énorme base de données de recettes. tangent.grad vous emballera le passer en fonction du code source Python, puis inverser la parcourir, trouver une recette de transfert inverse correspondant de votre propre bibliothèque et l'ajouter à la fin de la dérivée de la fonction.
Le nom de cette technologie - le mode inverse différenciation automatique - vient de ce processus inverse.
La fonction ci-dessus est applicable uniquement aux tenseur entrée df (non-array). Tangent soutient également:
-
Une fonction de traiter une gamme tensorflow Avide
-
Sous-programme
-
contrôle du flux
Google dans un billet de blog a souligné que même si le soutien de Tangent tensorflow impatient de commencer, mais il est pas certain et une bibliothèque de liaison, ils sont prêts à accepter la demande d'ajouter PyTorch ou d'un dérivé MXNet de la recette.
Enfin, fixez l'adresse Tangent projets open source, il y a des instructions de téléchargement et d'installation:
Blog d'origine:
https://research.googleblog.com/2017/11/tangent-source-to-source-debuggable.html
- FIN -
recrutement sincère
Qubits recrutent éditeur / journaliste, basé à Zhongguancun de Beijing. Nous attendons de talent, des étudiants enthousiastes de nous rejoindre! Détails, s'il vous plaît interface de dialogue qubit numéro public (QbitAI), réponse mot "recrutement".
Qubit QbitAI · manchettes sur la signature de
' « suivre les nouvelles technologies AI dynamiques et de produits