web-dev-qa-db-fra.com

Propagation vers l'arrière dans Keras?

quelqu'un peut-il me dire comment se fait la rétropropagation à Keras? J'ai lu que c'est vraiment facile dans Torch et complexe dans Caffe, mais je ne trouve rien à faire avec Keras. J'implémente mes propres couches dans Keras (un très débutant) et j'aimerais savoir comment faire la propagation vers l'arrière.

Merci d'avance

17
Tassou

Vous ne le faites tout simplement pas. (Édition tardive: sauf lorsque vous créez des boucles d'entraînement personnalisées, uniquement pour des utilisations avancées)

Keras effectue automatiquement la rétropropagation. Il n'y a absolument rien à faire pour cela, sauf pour entraîner le modèle avec l'une des méthodes fit.

Vous avez juste besoin de prendre soin de quelques choses:

  • Les variables que vous souhaitez mettre à jour avec rétropropagation (c'est-à-dire les poids) doivent être définies dans la couche personnalisée avec la méthode self.add_weight() à l'intérieur de la méthode build. Voir écrire vos propres couches de keras .
  • Tous les calculs que vous effectuez doivent utiliser des opérateurs de base tels que +, -, *, / ou backend fonctions. Par backend, les fonctions tensorflow/theano/CNTK sont également prises en charge.

C'est tout ce dont vous avez besoin pour que la rétropropagation automatique fonctionne correctement.

Si vos calques n'ont pas de poids entraînables, vous n'avez pas besoin de calques personnalisés, créez plutôt des calques Lambda (uniquement des calculs, pas de poids entraînables).

20
Daniel Möller