Pomoc chronić Wielkiej Rafy Koralowej z TensorFlow na Kaggle Dołącz Wyzwanie

tensorflow :: ops :: TensorArrayGrad

#include <data_flow_ops.h>

Tworzy TensorArray do przechowywania gradientów wartości w podanym uchwycie.

streszczenie

Jeśli dany gradient TensorArray już istnieje, zwraca do niego odwołanie.

Blokuje rozmiar oryginalnej tablicy TensorArray , wyłączając jej flagę rozmiaru dynamicznego.

Uwaga dotycząca wejścia flow_in:

Uchwyt flow_in wymusza wykonanie wyszukiwania gradientu dopiero po wykonaniu pewnych innych operacji. Na przykład, gdy do przodu TensorArray ma dynamiczny rozmiar, zapisy do tego TensorArray mogą zmienić rozmiar obiektu. Gradient TensorArray ma statyczny rozmiar na podstawie rozmiaru przekazywanej tablicy TensorArray, gdy ta operacja jest wykonywana. Co więcej, rozmiar przekazywanej tablicy TensorArray jest zamrażany przez to wywołanie. W rezultacie przepływ jest używany do zapewnienia, że ​​wywołanie generowania gradientu TensorArray nastąpi dopiero po wykonaniu wszystkich zapisów.

W przypadku tablic TensorArrays o dynamicznych rozmiarach obliczanie gradientu powinno być wykonywane tylko na operacjach odczytu, które same zostały połączone za pośrednictwem przepływu, tak aby wystąpiły dopiero po wykonaniu wszystkich zapisów. W ten sposób ostateczny rozmiar forward TensorArray jest znany, gdy ta operacja jest wywoływana.

Uwaga dotycząca atrybutu source:

Wywołania gradientu TensorArray wykorzystują akumulatorowy obiekt TensorArray . Jeśli obliczanych jest wiele gradientów i uruchamianych w tej samej sesji, wiele węzłów gradientu może przypadkowo przepłynąć przez ten sam akumulator TensorArray . To podwójne liczy i generalnie przerywa przepływ gradientu TensorArray .

Rozwiązaniem jest zidentyfikowanie, które wywołanie gradientu jest wywoływane w tym konkretnym gradiencie TensorArray . Jest to wykonywane przez identyfikację unikalnego ciągu (np. „Gradienty”, „gradienty_1”, ...) z nazwy gradientu wejściowego Tensor . Ten ciąg jest używany jako przyrostek podczas tworzenia obiektu gradientu TensorArray w tym miejscu ( source atrybutu).

source atrybutu jest dodawane jako przyrostek do nazwy TensorArray do przodu podczas wykonywania tworzenia / wyszukiwania, dzięki czemu każde oddzielne obliczenie gradientu otrzymuje własny akumulator TensorArray .

Argumenty:

  • zakres: obiekt Scope
  • uchwyt: Uchwyt do przodu TensorArray .
  • flow_in: zmiennoprzecinkowy skalar, który wymusza prawidłowe łańcuchowanie operacji.
  • source: ciąg źródłowy gradientu używany do decydowania, który gradient TensorArray ma zostać zwrócony.

Zwroty:

Konstruktorzy i niszczyciele

TensorArrayGrad (const :: tensorflow::Scope & scope, :: tensorflow::Input handle, :: tensorflow::Input flow_in, StringPiece source)

Atrybuty publiczne

flow_out
grad_handle
operation

Atrybuty publiczne

wypływać

::tensorflow::Output flow_out

grad_handle

::tensorflow::Output grad_handle

operacja

Operation operation

Funkcje publiczne

TensorArrayGrad

 TensorArrayGrad(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input handle,
  ::tensorflow::Input flow_in,
  StringPiece source
)