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 )