このページは Cloud Translation API によって翻訳されました。
Switch to English

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アキュムレータが取得されます。

引数:

  • scope: Scopeオブジェクト
  • 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
)