Istnieje kilka klas w tf.nn
, które dotyczą RNN. W przykładach, które znajduję w sieci, tf.nn.dynamic_rnn
i tf.nn.rnn
wydają się być używane zamiennie lub przynajmniej nie mogę się domyślić, dlaczego jeden jest używany zamiast drugiego. Jaka jest różnica?Jaka jest różnica między tensorflow dynamic_rnn i rnn?
Odpowiedz
Od RNNs in Tensorflow, a Practical Guide and Undocumented Features przez Denny Britz, opublikowanym w 21 sierpnia 2016.
tf.nn.rnn
tworzy rozwinięty wykres dla stałej długości RNN. Ten oznacza, że jeśli wywołasztf.nn.rnn
z wejściami mającymi 200 kroków czasowych, jesteś tworząc statyczny wykres z 200 krokami RNN. Po pierwsze, tworzenie wykresów jest wolne. Po drugie, nie możesz przekazać dłuższych sekwencji (> 200) niż pierwotnie podana .
tf.nn.dynamic_rnn
rozwiązuje to. Używa on pętlitf.While
do dynamicznego generowania wykresu podczas jego wykonywania. Oznacza to, że tworzenie wykresów jest szybsze o i można podawać partie o zmiennej wielkości.
Dlaczego nadal używać statycznego RNN, jeśli dynamiczny RNN zapewnia wszystkie zalety praktycznie bez wad? –
Są prawie takie same, ale istnieje niewielka różnica w strukturze wejścia i wyjścia. Z dokumentacji:
tf.nn.dynamic_rnn
Funkcja ta jest funkcjonalnie identyczna z funkcją
rnn
powyżej, ale> wykonuje w pełni dynamiczny odwijanie wejść.W odróżnieniu od
rnn
, wejściowe dane wejściowe nie są listą Tensorów w języku Python, jedną dla każdej z nich jest . Zamiast tego, dane wejściowe mogą być pojedynczym Tensorem, gdzie maksymalny czas jest pierwszym lub drugim wymiarem (patrz parametrtime_major
). Alternatywnie może to być (prawdopodobnie zagnieżdżona) krotka z Tensorów, z których każda ma pasujące wymiary partii i czasu. Odpowiadające dane wyjściowe są albo pojedynczym napinaczem o tym samym numerze z krokami czasu i rozmiarem wsadu, albo (ewentualnie zagnieżdżoną) krotką takich tensorów , dopasowaną do struktury zagnieżdżonej zcell.output_size
.
Aby uzyskać więcej informacji, zapoznaj się z source.
- 1. Jaka jest różnica między Tensor i Variable w Tensorflow
- 2. Jaka jest różnica między tf.train.MonitoredTrainingSession i tf.train.Supervisor
- 3. Jaka jest różnica między? : i ||
- 4. Jaka jest różnica między $ i $$?
- 5. W tensorflow jaka jest różnica między tf.add a operatorem (+)?
- 6. Jaka jest różnica między operacją tf.sub just minus w tensorflow?
- 7. Jaka jest różnica między tf.estimator.Estimator a tf.contrib.learn.Estimator w TensorFlow
- 8. Jaka jest różnica między Subtotal i BaseSubtotal?
- 9. Jaka jest różnica między DetachedCriteria i ICriteria
- 10. Jaka jest różnica między & # x00A0; i ?
- 11. Jaka jest różnica między lex i yacc
- 12. jaka jest różnica między dijit i dojo
- 13. Jaka jest różnica między Control.Select() i Control.Focus()?
- 14. Jaka jest różnica między System.Windows.Controls.Control i System.Windows.Forms.Control?
- 15. Jaka jest różnica między apletami i SWING?
- 16. Jaka jest różnica między session.commit() i session.flush()?
- 17. Jaka jest różnica między ImageView.setBackgroundResource i ImageView.setImageResource?
- 18. Jaka jest różnica między Konwertuj i parsuj?
- 19. Jaka jest różnica między JSP i JSTL?
- 20. Jaka jest różnica między Lazarus i CodeTyphon
- 21. Jaka jest różnica między crc32 i crc32b?
- 22. Jaka jest różnica między TypedArray.getInteger() i TypedArray.getInt()?
- 23. jaka jest różnica między ARM7 i ARM7s
- 24. Jaka jest różnica między http_build_str() i http_build_query()?
- 25. Jaka jest różnica między "CompletionStage" i "CompletableFuture"?
- 26. Jaka jest różnica między mock.patch.object (... i mock.patch (
- 27. Jaka jest różnica między GetBlobReference i GetBlobReferenceFromServer?
- 28. Jaka jest różnica między NSLayoutAttributeBaseline i NSLayoutAttributeBottom?
- 29. Jaka jest różnica między handlebar.js i handlebar.runtime.js?
- 30. Jaka jest różnica między innerText i outerText?
Zobacz także ten wpis SO https://stackoverflow.com/q/42497216/3924118, gdzie autor pyta o równoważną funkcję 'tf.nn.rnn' dla nowszych wersji TensorFlow, która wydaje się być 'tf.nn.static_rnn'. – nbro