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 | |
Wyjście <Pływak> | wypływać () |
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