2017-02-27 54 views
5
  • Jak konkretnie robi tensorflow zastosować porzucaniu Dzwoniąc tf.nn.rnn_cell.DropoutWrapper()?

Wszystko Czytałem o stosowaniu porzucaniu do referencji RNN za ten papier Zaremba et. al który mówi, nie stosuje się między połączeniami porzucaniu nawracających. Neurony powinny być usuwane losowo przed lub po warstwach LSTM, ale nie między warstwami LSTM. Ok.Tensorflow LSTM Dropout Realizacja

  • Mam pytanie, w jaki sposób wyłącza się neurony w odniesieniu do czasu?

w gazecie, że każdy cytuje, wydaje się, że random „Maska przerywania” jest stosowany na każdym kroku to zamiast generowania jedną losową „maskę przerywania” i ponowne go, stosując je do wszystkich timesteps w danym warstwa została usunięta. Następnie generowanie nowej "maski rezygnacji" w następnej partii.

Co więcej, jak to działa, tensorflow? Sprawdziłem api tensorflow i próbowałem znaleźć szczegółowe wyjaśnienie, ale jeszcze go nie znalazłem.

  • Czy istnieje sposób na wykopanie rzeczywistego kodu źródłowego tensorflow?
+2

Cały kod źródłowy jest dostępny w github – user2717954

Odpowiedz

1

Można sprawdzić realizację here.

Używa dropout op na wejściu do RNNCell, wtedy na wyjściu z prawdopodobieństw zachować można określić.

Wygląda na to, że każda z wprowadzonych sekwencji otrzymuje nową maskę dla danych wejściowych, a następnie dla danych wyjściowych. Brak zmian w sekwencji.

+1

Dzięki. To rzeczywiście doprowadziło do mnie odpowiedź, dropout nie jest stosowany regularnie, gdy używa się go w rnn's w tensorflow. Dla każdego, kto chce tej funkcji, otworzyłem problem na github, numer # 7927. – beeCwright

+0

Dzięki za wskazanie odpowiedniej części! – Aaron