przepływ tensorowy:: ops:: TensorArrayGrad

#include <data_flow_ops.h>

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

Streszczenie

Jeżeli dany gradient TensorArray już istnieje, zwraca do niego referencję.

Blokuje rozmiar oryginalnego TensorArray , wyłączając jego flagę rozmiaru dynamicznego.

Uwaga dotycząca wejścia flow_in:

Uchwyt flow_in wymusza wykonanie wyszukiwania gradientowego dopiero po wykonaniu pewnych innych operacji. Na przykład, gdy rozmiar forward TensorArray jest dynamicznie zmieniany, zapisywanie w tym TensorArray może zmienić rozmiar obiektu. Gradient TensorArray ma statyczny rozmiar na podstawie rozmiaru forward TensorArray podczas wykonywania tej operacji. Co więcej, to wywołanie powoduje zablokowanie rozmiaru forward TensorArray . W rezultacie przepływ służy do zapewnienia, że ​​wywołanie generowania gradientu TensorArray nastąpi dopiero po wykonaniu wszystkich zapisów.

W przypadku obiektów TensorArray o dynamicznym rozmiarze obliczenia gradientu należy wykonywać tylko w przypadku operacji odczytu, które same zostały połączone łańcuchowo za pomocą przepływu, aby miały miejsce dopiero po wykonaniu wszystkich zapisów. W ten sposób ostateczny rozmiar przyszłej tablicy TensorArray jest znany po wywołaniu tej operacji.

Uwaga dotycząca atrybutu źródła:

Wywołania gradientowe TensorArray korzystają z obiektu TensorArray będącego akumulatorem. Jeśli w tej samej sesji zostanie obliczonych i uruchomionych wiele gradientów, wiele węzłów gradientu może przypadkowo przepłynąć przez ten sam akumulator TensorArray . To podwójnie się liczy i ogólnie przerywa przepływ gradientu TensorArray .

Rozwiązaniem jest określenie, które wywołanie gradientu wywołuje ten konkretny gradient TensorArray . Dokonuje się tego poprzez identyfikację unikalnego ciągu znaków (np. „gradients”, „gradients_1”, ...) z nazwy wejściowego gradientu Tensor . Ten ciąg jest używany jako przyrostek podczas tworzenia tutaj obiektu gradientu TensorArray ( source atrybutu).

source atrybutu jest dodawane jako przyrostek do nazwy forward TensorArray podczas 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: Skalar typu float, który wymusza prawidłowe łączenie operacji.
  • source: ciąg źródłowy gradientu używany do decydowania, który gradient TensorArray ma zostać zwrócony.

Zwroty:

Konstruktory i destruktory

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

Atrybuty publiczne

flow_out
grad_handle
operation

Atrybuty publiczne

wypływ

::tensorflow::Output flow_out

uchwyt_gradu

::tensorflow::Output grad_handle

działanie

Operation operation

Funkcje publiczne

TensorArrayGrad

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