2017-08-04 3 views
2

Comme je sais, DropoutWrapper est utilisé comme suitque fait exactement 'tf.contrib.rnn.DropoutWrapper' 'dans tensorflow? (trois questions) citical

__init__(
cell, 
input_keep_prob=1.0, 
output_keep_prob=1.0, 
state_keep_prob=1.0, 
variational_recurrent=False, 
input_size=None, 
dtype=None, 
seed=None 
) 

. La seule chose que je sais est que c'est l'utilisation pour l'abandon pendant l'entrainement. Voici mes trois questions

  1. Quels sont input_keep_prob, output_keep_prob et state_keep_prob respectivement? (je suppose qu'ils définissent la probabilité d'abandon scolaire de chaque partie de RNN, mais exactement où?)

  2. est abandon dans ce contexte appliqué à RNN non seulement lors de la formation, mais aussi processus de prédiction? Si c'est vrai, y a-t-il un moyen de décider si j'utilise ou non le décrochage au processus de prédiction?

  3. Comme documents de l'API dans la page web tensorflow, si variational_recurrent = abandon vrai fonctionne selon la méthode sur un papier "Y. Gal, Z Ghahramani. "Une application Théoriquement Grounded d'abandon scolaire dans les réseaux récurrents de neurones". https://arxiv.org/abs/1512.05287" I compris ce document à peu près. Quand je m'entraîne RNN, j'utilise 'batch' pas une seule série temporelle. Dans ce cas, le tensorflow affecte automatiquement différents masques d'arrêt à différentes séries chronologiques dans un lot?
+3

Au cours des prédictions que vous souhaitez utiliser keep_prob de 1,0. C'est pourquoi normalement il est plus facile de nourrir cette valeur via un espace réservé, pas une constante. –

Répondre

0
keep_prob = tf.cond(dropOut,lambda:tf.constant(0.9), lambda:tf.constant(1.0)) 

cells = rnn.DropoutWrapper(cells, output_keep_prob=keep_prob)