TensorArrayGrad

パブリック最終クラスTensorArrayGrad

指定されたハンドルに値の勾配を格納するための TensorArray を作成します。

指定された TensorArray 勾配が既に存在する場合は、その勾配への参照を返します。

動的サイズ フラグを無効にすることで、元の TensorArray のサイズをロックします。

**入力 flow_in に関するメモ:**

ハンドル flow_in は、他の特定の操作が発生した後にのみ勾配ルックアップの実行を強制します。たとえば、前方 TensorArray が動的にサイズ変更される場合、この TensorArray への書き込みによってオブジェクトのサイズが変更される可能性があります。勾配 TensorArray は、この操作の実行時に前方 TensorArray のサイズに基づいて静的にサイズ設定されます。さらに、前方 TensorArray のサイズはこの呼び出しによって固定されます。その結果、このフローは、すべての書き込みが実行された後にのみ、勾配 TensorArray を生成する呼び出しが行われるようにするために使用されます。

動的にサイズ変更される TensorArray の場合、勾配計算は、すべての書き込みが実行された後にのみ発生するようにフローを介してチェーンされている読み取り操作に対してのみ実行する必要があります。そうすることで、この操作が呼び出されたときに、前方 TensorArray の最終サイズがわかります。

**source 属性に関する注意:**

TensorArray 勾配呼び出しでは、アキュムレータ TensorArray オブジェクトが使用されます。複数の勾配が計算され、同じセッションで実行される場合、複数の勾配ノードが同じアキュムレータ TensorArray を誤って流れる可能性があります。この二重カウントにより、通常は TensorArray の勾配フローが中断されます。

解決策は、この特定の TensorArray 勾配が呼び出されている勾配呼び出しを識別することです。これは、入力勾配 Tensor の名前から一意の文字列 (例: "gradients"、"gradients_1" など) を識別することによって実行されます。この文字列は、ここで TensorArray 勾配オブジェクト (属性 `source`) を作成するときにサフィックスとして使用されます。

属性 `source` は、作成 / ルックアップの実行時に前方 TensorArray の名前に接尾辞として追加されるため、個別の勾配計算はそれぞれ独自の TensorArray アキュムレータを取得します。

パブリックメソッド

静的TensorArrayGrad
create (スコープscope、オペランド<?>ハンドル、オペランド<Float>flowIn、文字列ソース)
新しい TensorArrayGrad オペレーションをラップするクラスを作成するファクトリ メソッド。
出力<浮動小数点>
出力<?>

継承されたメソッド

パブリックメソッド

public static TensorArrayGrad create (スコープスコープ、オペランド<?> ハンドル、オペランド<Float> flowIn、文字列ソース)

新しい TensorArrayGrad オペレーションをラップするクラスを作成するファクトリ メソッド。

パラメーター
範囲現在のスコープ
ハンドル前方 TensorArray へのハンドル。
流れ込みます操作の適切な連鎖を強制する float スカラー。
ソースどの勾配 TensorArray を返すかを決定するために使用される勾配ソース文字列。
戻り値
  • TensorArrayGrad の新しいインスタンス

public出力<Float> flowOut ()

public出力<?> gradHandle ()