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

tf.keras.optimizers.Adagrad

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

その実装Adagradアルゴリズムオプティマイザ。

:から継承Optimizer

ノートPCで使用されます

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

Adagradはパラメータがトレーニング中に更新される頻度に比べて適応されたパラメータ固有の学習率、とオプティマイザです。以上の更新、小さな受信パラメータを更新します。

learning_rate A Tensor 、ポイント値、またはあるスケジュールフローティングtf.keras.optimizers.schedules.LearningRateSchedule 。学習率。
initial_accumulator_value 浮動小数点値。アキュムレータの値を開始し、非負でなければなりません。
epsilon 小さな浮動小数点値がゼロ分母を回避します。
name グラデーションを適用するときに作成した操作のためのオプションの名前の接頭辞。デフォルトは"Adagrad"
**kwargs キーワード引数。一つであることが可"clipnorm"または"clipvalue""clipnorm" (フロート)ノルムによってクリップ勾配。 "clipvalue"値によって(フロート)クリップ勾配。

参照:

name 非空の文字列。オプティマイザ用に作成されたアキュムレータに使用する名前。
**kwargs キーワード引数。 {が許可clipnormclipvaluelrdecay }。 clipnorm規範によってクリップ勾配です。 clipvalue値でクリップ勾配で、 decay率を学習の時間逆減衰を可能にし、下位互換性のために含まれています。 lr使用することをお勧めします、下位互換性のために含まれているlearning_rate代わりに。

ValueError 名前が不正な形式であるならば。

iterations 変数。トレーニングの数は、このオプティマイザが実行された手順。
weights 作成された順序に基づいて、このオプティマイザの戻り値変数。

メソッド

add_slot

ソースを表示

以下のための新しいスロット変数を追加var

add_weight

ソースを表示

apply_gradients

ソースを表示

変数にグラデーションを適用します。

これは、第二の部分であるminimize()それは返すOperationグラデーションを適用します。

この方法は、の存在下でのすべてのレプリカからの勾配を合計tf.distribute.Strategyデフォルトで。あなたは渡すことでグラデーションを自分で集約することができますexperimental_aggregate_gradients=False

例:

 grads = tape.gradient(loss, vars)
grads = tf.distribute.get_replica_context().all_reduce('sum', grads)
# Processing aggregated gradients.
optimizer.apply_gradients(zip(grads, vars),
    experimental_aggregate_gradients=False)

 

引数
grads_and_vars (勾配、変数)のペアのリスト。
name 返された操作のためのオプションの名前。渡された名前にデフォルトOptimizerコンストラクタ。
experimental_aggregate_gradients かどうかはのpresenseに異なるレプリカからの勾配を合計するtf.distribute.Strategy 。 Falseの場合は、勾配を集約するために、ユーザーの責任です。デフォルトはtrue。

戻り値
アンOperation指定したグラデーションを適用します。 iterations自動的に1ずつ増加します。

発生させます
TypeError 場合grads_and_vars奇形れます。
ValueError 変数はいずれも勾配を持っていない場合。

from_config

ソースを表示

その設定からオプテ​​ィマイザを作成します。

この方法は、逆のget_config設定辞書から同じオプティマイザをインスタンス化することができます。

引数
config Python辞書、GET_CONFIGの通常出力。
custom_objects 追加のPythonのA Pythonの辞書マッピング名は、このようなハイパーのために使用する機能として、このオプティマイザを作成するために使用されるオブジェクト。

戻り値
オプティマイザインスタンス。

get_config

ソースを表示

オプティマイザの設定を返します。

オプティマイザの設定は、オプティマイザの構成を含むPythonの辞書(シリアライズ)です。同じオプティマイザは、この構成から後(保存された状態なしで)再インスタンス化することができます。

戻り値
Pythonの辞書。

get_gradients

ソースを表示

勾配を返しlossに関してparams

引数
loss 損失テンソル。
params 変数のリスト。

戻り値
勾配テンソルのリスト。

発生させます
ValueError ケース内の任意の勾配を計算することができない(例えば勾配関数が実装されていない場合)。

get_slot

ソースを表示

get_slot_names

ソースを表示

このオプティマイザのスロットの名前のリスト。

get_updates

ソースを表示

get_weights

ソースを表示

オプティマイザの現在のウェイトを返します。

オプティマイザの重みは、その状態(すなわち、変数)です。この関数は、numpyの配列のリストとしてこのオプティマイザに関連する重み値を返します。最初の値は反復が、彼らが作成されたために、オプティマイザの状態変数に続いて、オプティマイザのカウントは常にあります。返されたリストは、今度は同様にパラメータ化オプティマイザへの負荷の状態に使用することができます。

たとえば、この単純なモデルのRMSpropオプティマイザは、単一の緻密層のカーネルとバイアスの二乗平均平方根値に続いて、繰り返し回数3 values--のリストを返します。

opt = tf.keras.optimizers.RMSprop()
m = tf.keras.models.Sequential([tf.keras.layers.Dense(10)])
m.compile(opt, loss='mse')
data = np.arange(100).reshape(5, 20)
labels = np.zeros(5)
print('Training'); results = m.fit(data, labels)
Training ...
len(opt.get_weights())
3

戻り値
numpyの配列のリストとして重み値。

minimize

ソースを表示

最小化loss更新することによりvar_list

この方法は、単に使用して勾配計算tf.GradientTapeとコールapply_gradients()あなたは呼び出して適用する前に勾配を処理したい場合はtf.GradientTapeapply_gradients()明示的に代わりにこの機能を使用します。

引数
loss 呼び出し可能な最小化する値を返す引数を取りません。
var_list リストやタプルのVariableオブジェクト最小化するために更新するloss 、あるいはのリストやタプルを返す呼び出し可能なVariableのオブジェクトを。変数リストはそう不完全前になる際に呼び出し可能な使用minimizeの変数を最初に作成されているので、 loss呼ばれています。
grad_loss オプション。 A Tensorについて計算勾配保持loss
name 返された操作のためのオプションの名前。

戻り値
アンOperationで変数を更新しvar_listiterations自動的に1ずつ増加します。

発生させます
ValueError 変数の一部がない場合はVariableオブジェクト。

set_weights

ソースを表示

オプティマイザの重みを設定します。

オプティマイザの重みは、その状態(すなわち、変数)です。この関数は、numpyの配列のリストとしてこのオプティマイザに関連する重み値をとります。最初の値は反復が、彼らが作成された順序でオプティマイザの状態変数に続いて、オプティマイザのカウントは常にあります。渡された値は、オプティマイザの新しい状態を設定するために使用されています。

たとえば、この単純なモデルのRMSpropオプティマイザは、単一の緻密層のカーネルとバイアスの二乗平均平方根値に続いて、繰り返し回数3 values--のリストを取ります。

opt = tf.keras.optimizers.RMSprop()
m = tf.keras.models.Sequential([tf.keras.layers.Dense(10)])
m.compile(opt, loss='mse')
data = np.arange(100).reshape(5, 20)
labels = np.zeros(5)
print('Training'); results = m.fit(data, labels)
Training ...
new_weights = [np.array(10), np.ones([20, 10]), np.zeros([10])]
opt.set_weights(new_weights)
opt.iterations
<tf.Variable 'RMSprop/iter:0' shape=() dtype=int64, numpy=10>

引数
weights numpyの配列のリストとして重み値。

variables

ソースを表示

作成された順序に基づいて、このオプティマイザの戻り値変数。