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

tf.TensorArray

TensorFlow 1つのバージョン GitHubの上のソースを表示

クラス包装動的サイズ、毎時間ステップ、追記型テンソルアレイ。

ノートPCで使用されます

ガイドで使用チュートリアルで使用されます

このクラスは、次のような動的反復プリミティブで使用することを意味するwhile_loopmap_fn 。これは、特別な「流れ」の制御フローの依存関係を経由して勾配バックプロパゲーションをサポートしています。

例1:平野読み込みと書き込み。

ta = tf.TensorArray(tf.float32, size=0, dynamic_size=True, clear_after_read=False)
ta = ta.write(0, 10)
ta = ta.write(1, 20)
ta = ta.write(2, 30)

ta.read(0)
<tf.Tensor: shape=(), dtype=float32, numpy=10.0>
ta.read(1)
<tf.Tensor: shape=(), dtype=float32, numpy=20.0>
ta.read(2)
<tf.Tensor: shape=(), dtype=float32, numpy=30.0>
ta.stack()
<tf.Tensor: shape=(3,), dtype=float32, numpy=array([10., 20., 30.],
dtype=float32)>

例2:その後、ループに戻りを書き込み、フィボナッチ数列のアルゴリズム。

@tf.function
def fibonacci(n):
  ta = tf.TensorArray(tf.float32, size=0, dynamic_size=True)
  ta = ta.unstack([0., 1.])

  for i in range(2, n):
    ta = ta.write(i, ta.read(i - 1) + ta.read(i - 2))

  return ta.stack()

fibonacci(7)
<tf.Tensor: shape=(7,), dtype=float32,
numpy=array([0., 1., 1., 2., 3., 5., 8.], dtype=float32)>

実施例3と相互作用する単純なループtf.Variable

 v = tf.Variable(1)
@tf.function
def f(x):
  ta = tf.TensorArray(tf.int32, size=0, dynamic_size=True)
  for i in tf.range(x):
    v.assign_add(i)
    ta = ta.write(i, v)
  return ta.stack()
f(5)
<tf.Tensor: shape=(5,), dtype=int32, numpy=array([ 1,  2,  4,  7, 11],
dtype=int32)>
 

dtype TensorArrayの(必要な)データ型。
size (オプション)INT32スカラーTensor :TensorArrayのサイズ。ハンドルが提供されていない場合は必須。
dynamic_size (オプション)Pythonのブール値:trueの場合、TensorArrayへの書き込みは、その初期サイズを超えてTensorArrayを成長することができます。デフォルト:false。
clear_after_read ブール(オプション、デフォルト:true)。 Trueの場合、明確なTensorArrayはそれらを読んだ後の値。この無効はセマンティクス-多くを読みますが、メモリの早期放出を可能にします。
tensor_array_name (オプション)Python文字列:TensorArrayの名前。 TensorArrayハンドルを作成するときに使用します。この値が設定されている場合、ハンドルはNoneにする必要があります。
handle (オプション)A Tensor既存TensorArrayのハンドル。これが設定されている場合は、tensor_array_nameはNoneにする必要があります。グラフのみのモードでサポート。
flow (オプションの)フロートTensor既存からのスカラーTensorArray.flow 。グラフのみのモードでサポート。
infer_shape (オプション、デフォルト:true)Trueの場合、形状推論が有効になっています。この場合、全ての要素が同じ形状を持っている必要があります。
element_shape (オプション、デフォルト:なし)A TensorShape TensorArrayの各要素の形状の制約を指定するオブジェクト。完全に定義する必要はありません。
colocate_with_first_write_call 場合Trueテンソルは、その最初の書き込みに使用されるように、TensorArrayが同じデバイス上に共存する(書き込み動作は、 writeunstack 、及びsplit )。場合False 、TensorArrayは、その初期化中に利用可能なデバイスコンテキストによって決定装置上に配置されます。
name 操作の名前(オプション)。

ValueError ハンドルとtensor_array_nameの両方が提供されている場合。
TypeError ハンドルが提供けどテンソルでない場合。

dtype このTensorArrayのデータ型。
dynamic_size Pythonのブール値。場合True TensorArrayは動的に成長することができます。
element_shape tf.TensorShapeこのTensorArrayの要素。
flow 流れTensorこのTensorArray状態につながるOPSを強制します。
handle TensorArrayへの参照。

メソッド

close

ソースを表示

現在TensorArrayを閉じます。

concat

ソースを表示

連結としてTensorArrayの値を返しますTensor

値のすべて書かれている必要があり、そのランクが一致しなければならない、そして、その形状は、最初を除くすべてのディメンションのすべて一致している必要があります。

引数
name 操作の名前(オプション)。

戻り値
TensorArrayのすべてのテンソルは1つのテンソルに連結しました。

gather

ソースを表示

戻り値は、パックとしてTensorArrayで値を選択しTensor

選択された値のすべてが書かれている必要があり、その形状は、すべて一致している必要があります。

引数
indices 1-D Tensorの値をとる[0, max_value) 。場合TensorArray動的ではない、 max_value=size()
name 操作の名前(オプション)。

戻り値
中テンソルTensorArrayによって選択されたindices 、1つのテンソルに詰めます。

grad

ソースを表示

identity

ソースを表示

TensorArrayは同じ内容とプロパティを返します。

戻り値
、コンテキストからの制御依存関係は、書き込みの制御依存関係になることが保証されます読み込み流れで新しいTensorArrayオブジェクトなどを使用する後続のすべての操作のために、このオブジェクト。

read

ソースを表示

場所で値を読むindex TensorArrayインチ

引数
index 0-D。から読み取るためのインデックスを持つint32のテンソル。
name 操作の名前(オプション)。

戻り値
インデックスでテンソルindex

scatter

ソースを表示

値散乱Tensorの固有の指標でTensorArray

引数
indices 1-D Tensorの値をとる[0, max_value) 。場合TensorArray動的ではない、 max_value=size()
value (N + 1)-D。型のテンソルdtype 。テンソルは、解凍します。
name 操作の名前(オプション)。

戻り値
散乱を確実に流れを持つ新しいTensorArrayオブジェクトが発生します。後続のすべての操作のために、このオブジェクトを使用してください。

発生させます
ValueError 形状推論が失敗した場合。

size

ソースを表示

TensorArrayのサイズを返します。

split

ソースを表示

値スプリットTensor TensorArrayに。

引数
value (N + 1)-D。型のテンソルdtype 。スプリットへのテンソル。
lengths 1-D。場合分割に使用する長さを有するINT32ベクトルvalueその第1の次元に沿います。
name 操作の名前(オプション)。

戻り値
スプリットを確保流れと新しいTensorArrayオブジェクトが発生します。後続のすべての操作のために、このオブジェクトを使用してください。

発生させます
ValueError 形状推論が失敗した場合。

stack

ソースを表示

積み重ねられたようTensorArrayの値を返しますTensor

値のすべてが書かれている必要があり、その形状は、すべて一致している必要があります。入力形状がrank-ある場合はR 、出力形状がrank-有するであろう(R+1)

引数
name 操作の名前(オプション)。

戻り値
TensorArrayのすべてのテンソルは1つのテンソルに積み重ねられました。

unstack

ソースを表示

値UNSTACK Tensor TensorArrayでは。

入力値の形状がrank-ある場合はR 、出力TensorArrayは、その形状rank-の要素を含むであろう(R-1)

引数
value (N + 1)-D。型のテンソルdtype 。テンソルは、アンスタックします。
name 操作の名前(オプション)。

戻り値
スタック解除を確実に流れを持つ新しいTensorArrayオブジェクトが発生します。後続のすべての操作のために、このオブジェクトを使用してください。

発生させます
ValueError 形状推論が失敗した場合。

write

ソースを表示

書き込みvalueインデックスへのindex TensorArrayの。

引数
index 0-D。への書き込みへのインデックスを持つint32のスカラー。
value ND。型のテンソルdtype 。テンソルは、このインデックスに書き込みます。
name 操作の名前(オプション)。

戻り値
書き込みを確実に流れを持つ新しいTensorArrayオブジェクトが発生します。後続のすべての操作のために、このオブジェクトを使用してください。

発生させます
ValueError 指定されたよりも多くの作家がある場合。