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

tf.compat.v1.get_variable

GitHubの上のソースを表示

これらのパラメータを持つ既存の変数を取得するか、新しいものを作成します。

この関数は、現在の変数のスコープをチェック再利用を行うと名前を接頭辞。参照変数のスコープの操作方法を作品の再利用方法の広範な説明について。ここでは基本的な例です:

 def foo():
  with tf.variable_scope("foo", reuse=tf.AUTO_REUSE):
    v = tf.get_variable("v", [1])
  return v

v1 = foo()  # Creates v.
v2 = foo()  # Gets the same, existing v.
assert v1 == v2
 

初期化子がない場合はNone (デフォルト)、変数のスコープに渡された初期化子デフォルトで使用されます。 1つは、しない場合はNone 、あまりにも、 glorot_uniform_initializer使用されます。イニシャライザはまた、変数がこの値と形状に初期化される場合にはテンソルであることができます。

正則でない場合同様、 None (デフォルト)、変数のスコープに渡されたデフォルトの正則(つまりいない場合に使用されるNoneも、デフォルトでない正則化を行いません)。

パーティが提供されている場合、 PartitionedVariable返されます。このオブジェクトにアクセスTensorパーティション軸に沿って連結断片を返します。

いくつかの有用なパーティショナが用意されています。参照、例えば、 variable_axis_size_partitionermin_max_variable_partitioner

name 新規または既存の変数の名前。
shape 新規または既存の変数の形状。
dtype 新規または既存の変数の種類(デフォルトはDT_FLOAT )。
initializer 変数の初期化子が作成されます。どちらかの初期化子オブジェクトまたはテンソルすることができます。それはテンソルならvalidate_shapeがFalseでない限り、その形状を知らなければなりません。
regularizer A(テンソル - >テンソル又はなし)機能;新しく作成された変数にそれを適用した結果は、コレクションに追加されtf.GraphKeys.REGULARIZATION_LOSSESと正則のために使用することができます。
trainable 場合はTrueまたグラフコレクションに変数を追加GraphKeys.TRAINABLE_VARIABLES (参照tf.Variable )。
collections グラフコレクションのキーのリストに変数を追加します。デフォルト[GraphKeys.GLOBAL_VARIABLES]参照tf.Variable )。
caching_device 変数は、読み取りのためにキャッシュされるべき場所を記述したオプションのデバイス文字列または関数。変数のデバイスへのデフォルト。ない場合はNone 、別のデバイス上にキャッシュします。典型的な使用は、オプスを通じてコピー重複排除するために、変数の存在を使用して、デバイス上のキャッシュにあるSwitchやその他の条件文。
partitioner 完全に定義され受け入れるオプションの呼び出し可能TensorShapeしてdtype (現在は1軸を分割することができる)変数のが作成され、各軸用のパーティションのリストを返します。
validate_shape Falseの場合、変数は未知の形状の値で初期化することができます。確かに、デフォルトの場合、initial_valueの形状を知らなければなりません。これを使用するためには初期化子がテンソルではなく初期化子オブジェクトでなければなりません。
use_resource Falseの場合は、通常の変数を作成します。 trueの場合、明確に定義された意味を持つ代わりに、実験ResourceVariableを作成します。デフォルトはfalse(後にTrueに変更されます)。熱心な実行が有効になっている場合、この引数は常に真であることを強制されます。
custom_getter 最初の引数としての真ゲッターを取り、内部get_variable方法を上書きすることができます呼び出し可能。署名custom_getter 、この方法を一致させる必要がありますが、最も将来性のバージョンは変更が可能になります: def custom_getter(getter, *args, **kwargs) 。すべてへの直接アクセスget_variableパラメータも許される: def custom_getter(getter, name, *args, **kwargs) 。単に修正名前の変数を作成し、簡単なアイデンティティのカスタムゲッターは次のとおりです。

 def custom_getter(getter, name, *args, **kwargs):
return getter(name + '_suffix', *args, **kwargs)
 

constraint 更新された後、変数に適用されるオプションの投影関数Optimizer (例えば、層の重みのためのノルム制約または値の制約を実装するために使用されます)。関数は、入力として変数の値を表す非投影テンソルを取ると(同一の形状を有していなければならない)投影値に対してテンソルを返さなければなりません。制約は、非同期分散訓練を行うときに使用しても安全ではありません。
synchronization 分散型の変数が集約される時期を示します。指定できる値は、クラスで定義された定数であるtf.VariableSynchronization 。デフォルトでは、同期がに設定されているAUTOと現在のDistributionStrategy同期するタイミングを選択します。
aggregation 分散型の変数を集計する方法を示します。指定できる値は、クラスで定義された定数であるtf.VariableAggregation

作成したり、既存のVariable (またはPartitionedVariable 、パーティショナを使用した場合)。

ValueError 新しい変数と形状を作成する際に、変数の作成時に再利用を違反したときに、宣言されていない場合、またはinitializer DTYPEとdtype一致していません。再利用が内部で設定されているvariable_scope