tensorflow :: ops :: TensorArrayGrad

#include <data_flow_ops.h>

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

概要

指定されたTensorArrayグラデーションがすでに存在する場合は、そのグラデーションへの参照を返します。

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

入力flow_inに関する注意:

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

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

ソース属性に関する注意:

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

解決策は、この特定のTensorArrayグラデーションが呼び出されているグラデーション呼び出しを識別することです。これは、入力グラデーションTensorの名前から一意の文字列(「gradients」、「gradients_1」など)を識別することによって実行されます。この文字列は、ここでTensorArrayグラデーションオブジェクト(属性source )を作成するときに接尾辞として使用されます。

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

引数:

  • スコープ:スコープオブジェクト
  • handle:前方のTensorArrayへのハンドル。
  • flow_in:操作の適切な連鎖を強制するfloatスカラー。
  • source:どのグラデーションTensorArrayを返すかを決定するために使用されるグラデーションソース文字列。

戻り値:

コンストラクタとデストラクタ

TensorArrayGrad (const :: tensorflow::Scope & scope, :: tensorflow::Input handle, :: tensorflow::Input flow_in, StringPiece source)

パブリック属性

flow_out
grad_handle
operation

パブリック属性

流れ出します

::tensorflow::Output flow_out

grad_handle

::tensorflow::Output grad_handle

操作

Operation operation

公の行事

TensorArrayGrad

 TensorArrayGrad(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input handle,
  ::tensorflow::Input flow_in,
  StringPiece source
)