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.
Stałe
Strunowy | OP_NAME | Nazwa tej operacji znana silnikowi rdzenia TensorFlow |
Metody publiczne
statyczny TensorArrayGrad | |
Dane wyjściowe <TFloat32> | wypływać () |
Wyjście <?> |
Metody dziedziczone
Stałe
publiczny statyczny końcowy ciąg znaków OP_NAME
Nazwa tej operacji znana silnikowi rdzenia TensorFlow
Metody publiczne
public static TensorArrayGrad create ( Zakres zakresu, Operand <?> uchwyt, Operand < TFloat32 > 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