TensorArrayGrad

publiczna klasa końcowa TensorArrayGrad

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

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ściowego 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 gradientu wejściowego Tensor. Ten ciąg znaków jest używany jako przyrostek podczas tworzenia tutaj obiektu gradientu TensorArray (atrybut „źródło”).

Atrybut `source` jest dodawany jako przyrostek do nazwy forward TensorArray podczas tworzenia/wyszukiwania, dzięki czemu każde oddzielne obliczenie gradientu otrzymuje własny akumulator TensorArray.

Metody publiczne

statyczny TensorArrayGrad
utwórz (zakres zakresu , uchwyt argumentu <?>, argument <Float> flowIn, źródło ciągu znaków)
Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację TensorArrayGrad.
Wyjście <Pływak>
Wyjście <?>

Metody dziedziczone

Metody publiczne

public static TensorArrayGrad create (zakres zakresu , uchwyt operandu <?>, operand <Float> flowIn, źródło ciągu znaków)

Metoda fabryczna służąca do tworzenia klasy opakowującej nową operację TensorArrayGrad.

Parametry
zakres aktualny zakres
uchwyt Dojście do przodu TensorArray.
przepływ Skalar typu float, który wymusza prawidłowe łączenie operacji.
źródło Ciąg źródłowy gradientu używany do decydowania, który gradient TensorArray ma zostać zwrócony.
Zwroty
  • nowa instancja TensorArrayGrad

publiczne wyjście <Float> flowOut ()

publiczne wyjście <?> gradHandle ()