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

tf.keras.experimental.LinearModel

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

回帰と分類の問題のための線形モデル。

:から継承Model

このモデルは、次の関数を近似します:

$$ Y = \ベータ+ \ sum_ {I = 1} ^ {N} W_ {I} * X_ {I} $$

どこ

$$ \ベータ$$

バイアスがあると

$$ W_ {I} $$

各機能の重量です。

例:

 model = LinearModel()
model.compile(optimizer='sgd', loss='mse')
model.fit(x, y, epochs=epochs)
 

このモデルは、同様にスパースフロートの入力を受け付けます。

例:

 model = LinearModel()
opt = tf.keras.optimizers.Adam()
loss_fn = tf.keras.losses.MeanSquaredError()
with tf.GradientTape() as tape:
  output = model(sparse_input)
  loss = tf.reduce_mean(loss_fn(target, output))
grads = tape.gradient(loss, model.weights)
opt.apply_gradients(zip(grads, model.weights))
 

units 正の整数、バッチサイズのない出力の次元。
activation 使用するアクティベーション機能。何も指定しない場合、何の活性化は適用されません。
use_bias このモデルのバイアス/インターセプトを計算するかどうか。 falseに設定すると、何のバイアス/切片が計算に使用されず、例えば、データがすでに中央に配置されます。
kernel_initializer 初期化子kernel重み行列。
bias_initializer バイアスベクトルの初期化子。
kernel_regularizer カーネルベクトルに対する正則。
bias_regularizer バイアスベクトルの正則。
**kwargs ベースレイヤーに渡されたキーワード引数。 INIT。

distribute_strategy tf.distribute.Strategyこのモデルをもとに作成されました。
layers

metrics_names すべての出力のためのモデルの表示ラベルを返します。

inputs = tf.keras.layers.Input(shape=(3,))
outputs = tf.keras.layers.Dense(2)(inputs)
model = tf.keras.models.Model(inputs=inputs, outputs=outputs)
model.compile(optimizer="Adam", loss="mse", metrics=["mae"])
model.metrics_names
[]
x = np.random.random((2, 3))
y = np.random.randint(0, 2, (2, 2))
model.fit(x, y)
model.metrics_names
['loss', 'mae']
inputs = tf.keras.layers.Input(shape=(3,))
d = tf.keras.layers.Dense(2, name='out')
output_1 = d(inputs)
output_2 = d(inputs)
model = tf.keras.models.Model(
   inputs=inputs, outputs=[output_1, output_2])
model.compile(optimizer="Adam", loss="mse", metrics=["mae", "acc"])
model.fit(x, (y, y))
model.metrics_names
['loss', 'out_loss', 'out_1_loss', 'out_mae', 'out_acc', 'out_1_mae',
'out_1_acc']

run_eagerly 設定可能な属性モデルが熱心に実行する必要があるかどうかを示します。

熱心に実行すると、お使いのモデルがPythonのコードのように、段階的に実行されることを意味します。お使いのモデルが遅くなるかもしれませんが、あなたは個々の層の呼び出しに踏んで、それをデバッグすることが容易になるはずです。

デフォルトでは、我々は最高の実行パフォーマンスを実現するために、静的なグラフにあなたのモデルをコンパイルしようとします。

メソッド

compile

ソースを表示

訓練のためのモデルを設定します。

引数
optimizer 文字列(オプティマイザの名前)またはオプティマイザインスタンス。参照してくださいtf.keras.optimizers
loss 文字列(目的関数の名前)、目的関数またはtf.keras.losses.Lossインスタンス。参照してくださいtf.keras.losses 。目的関数は、署名を有する任意の呼び出し可能であり、 loss = fn(y_true, y_pred) y_true形状とグランドトゥルース値=、= [batch_size, d0, .. dN] 、そのような疎なカテゴリcrossentropyとしてスパース損失関数以外形状= [batch_size, d0, .. dN-1] 。形状=有するy_pred =予測値[batch_size, d0, .. dN] 。これは、加重損失フロートテンソルを返します。カスタムの場合はLossインスタンスが使用され、削減がNONEに設定され、戻り値は形状をしている[BATCH_SIZE、D0、... DN-1]すなわち。サンプル単位またはタイムステップ損失値。それ以外の場合は、スカラーです。モデルは複数の出力がある場合は、辞書や損失のリストを渡すことで、各出力に異なる損失を使用することができます。モデルによって最小化される損失値は、すべての個々の損失の合計になります。
metrics トレーニングとテスト中のモデルによって評価されるメトリックのリスト。これの各々は、関数または文字列(組み込み関数の名前)とすることができるtf.keras.metrics.Metricインスタンス。参照してくださいtf.keras.metrics 。通常は、使用するmetrics=['accuracy']関数は、署名を有する任意の呼び出し可能であり、 result = fn(y_true, y_pred)多出力モデルの異なる出力に異なるメトリックを指定するには、またような辞書、渡すことができmetrics={'output_a': 'accuracy', 'output_b': ['accuracy', 'mse']}また、などのメトリクスのリストのリスト(LEN = LEN(出力))を渡すことができるmetrics=[['accuracy'], ['accuracy', 'mse']]またはmetrics=['accuracy', ['accuracy', 'mse']]あなたは、文字列「精度」または「ACC」を渡すと、私たちは次のいずれかにこれを変換するtf.keras.metrics.BinaryAccuracytf.keras.metrics.CategoricalAccuracytf.keras.metrics.SparseCategoricalAccuracy使用損失関数に基づいており、モデル出力形状。私たちは、文字列「crossentropy」と同様に「CE」の同様の変換を行います。
loss_weights 異なるモデル出力の損失寄与を重み付けするために、オプションのリストまたは辞書を指定するスカラー係数(Pythonのフロート)。モデルによって最小化される損失値は、その後で重み付けし、すべての個々の損失の加重和になりますloss_weights係数。モデルの出力に1マッピング:リスト場合は、1を持っていることが予想されます。 dictの場合は、スカラー係数への出力名(文字列)をマッピングすることが期待されます。
weighted_metrics メトリックのリストが評価され、トレーニングとテスト中sample_weightまたはclass_weightによって加重されます。
run_eagerly ブール値。デフォルトはFalse 。場合はTrue 、このModelのロジックがに包まれることはありませんtf.function 。これを残すことを推奨Noneあなたのない限り、 Model内で実行することはできませんtf.function
**kwargs その他の引数。サポートされている引数:

  • experimental_steps_per_execution :のInt。それぞれの間に実行するバッチの数tf.functionコール。単一の内側に複数のバッチを実行するtf.functionコールが大幅大PythonのオーバーヘッドでのTPUまたは小型モデルのパフォーマンスを向上させることができます。この値に設定されている場合ことに注意してくださいNCallback.on_batch方法が唯一、すべてと呼ばれるNバッチ。これは、現在のデフォルト値1 。せいぜい、1つのフルエポックは、各実行を実行します。エポックのサイズよりも大きい数が渡された場合、実行はエポックの大きさに切り捨てられます。
  • sample_weight_mode下位互換性のため。

発生させます
ValueError 以下のための無効な引数の場合optimizerlossまたはmetrics

evaluate

ソースを表示

テストモードでモデルの損失値&メトリック値を返します。

計算は(参照バッチで行われbatch_size引数を。)

引数
x 入力したデータ。かもしれない:

  • A numpyのアレイ(またはアレイ状)、または配列のリスト(場合、モデルは複数の入力を有しています)。
  • TensorFlowテンソル、またはテンソルのリスト(場合、モデルは複数の入力を有しています)。
  • モデルは、入力と命名した場合、対応する配列/テンソルに入力名をマッピングする辞書。
  • tf.dataデータセット。いずれかのタプルを返す必要があります(inputs, targets)または(inputs, targets, sample_weights)
  • 発電機又はkeras.utils.Sequence戻す(inputs, targets)または(inputs, targets, sample_weights)イテレータタイプ(データセット、発電機、シーケンス)の動作をアンパックのより詳細な説明は、で与えられるUnpacking behavior for iterator-like inputsのセクションModel.fit
y ターゲットデータ。入力データは次のようにx 、それがnumpyのアレイ(S)またはTensorFlowテンソル(S)のいずれかとすることができます。これは、と整合的であるべきであるx (あなたがnumpyの入力とテンソルの目標を持っている、または逆はできません)。場合x 、データセット、発電機又はあるkeras.utils.Sequenceインスタンス、 y (ターゲットがイテレータ/データセットから取得されるため)が指定されるべきではありません。
batch_size 整数またはNone 。計算のバッチ当たりのサンプル数。指定しない場合、 batch_size指定されていない32がデフォルトになりますbatch_sizeあなたのデータは、データセット、発電機、またはの形式である場合keras.utils.Sequenceインスタンス(彼らはバッチを生成するため)。
verbose 0または1冗長性モード。 0 =サイレント、1 =プログレスバー。
sample_weight 試験サンプルの重みの任意numpyのアレイは、損失関数を重み付けするために使用されます。入力サンプル(1:重みと試料間の1つのマッピング)と同じ長さのどちらかのフラットを渡すことができる(1D)numpyのアレイ、または時間データの場合には、形状の2次元アレイ渡すことができる(samples, sequence_length) 、すべてのサンプルのすべてのタイムステップに異なる重みを適用します。この引数は、場合サポートされていないxセットされ、代わりに第三元素としてサンプル重みを通るx
steps 整数またはNone 。ラウンド終了評価を宣言するまでの手順(サンプルのバッチ)の合計数。デフォルト値は無視されますNone 。 xがある場合tf.dataデータセットとstepsなし、データセットがなくなるまで実行されます「評価」ではありません。この引数は、配列の入力でサポートされていません。
callbacks 一覧keras.callbacks.Callbackインスタンス。評価の際に適用するコールバックのリスト。参照のコールバックを
max_queue_size 整数。発電機またはのために使用さkeras.utils.Sequence入力するだけ。発電機のキューの最大サイズ。指定しない場合、 max_queue_size 10にデフォルト設定されます。
workers 整数。発電機またはのために使用さkeras.utils.Sequence入力するだけ。プロセスベースのスレッドを使用する際にスピンアップするプロセスの最大数。指定されていない場合は、 workers 0の場合、1にデフォルト設定されますメインスレッド上でジェネレータを実行します。
use_multiprocessing ブール。発電機またはのために使用さkeras.utils.Sequence入力するだけ。もしTrue 、使用プロセスベースのスレッド。指定しない場合、 use_multiprocessingにデフォルト設定されますFalse 。この実装は、マルチプロセッシングに依存しているので、彼らは子プロセスに簡単に渡すことができないとして、あなたは発電機に非pickle化可能な引数を渡すべきではないことに注意してください。
return_dict 場合はTrue 、損失およびメトリックの結果は、メトリックの名前であること、各キーで、辞書として返されます。場合はFalse 、彼らはリストとして返されます。

議論を参照してください。 Unpacking behavior for iterator-like inputsためModel.fit

戻り値
スカラー試験損失またはスカラーのリスト(モデルは、単一の出力なしのメトリックを有する場合)(モデルが複数の出力及び/又は指標を有する場合)。属性model.metrics_namesあなたにスカラー出力の表示ラベルを提供します。

発生させます
RuntimeError 場合model.evaluateに包まれtf.function
ValueError 無効な引数の場合には

evaluate_generator

ソースを表示

データ・ジェネレータ上のモデルを評価します。 (非推奨)

非推奨:

Model.evaluate今の発電機をサポートしていないので、このエンドポイントを使用する必要がなくなりました。

fit

ソースを表示

エポック(データセット上の反復)の固定された数のためのモデルをトレーニングします。

引数
x 入力したデータ。かもしれない:

  • A numpyのアレイ(またはアレイ状)、または配列のリスト(場合、モデルは複数の入力を有しています)。
  • TensorFlowテンソル、またはテンソルのリスト(場合、モデルは複数の入力を有しています)。
  • モデルは、入力と命名した場合、対応する配列/テンソルに入力名をマッピングする辞書。
  • tf.dataデータセット。いずれかのタプルを返す必要があります(inputs, targets)または(inputs, targets, sample_weights)
  • 発電機又はkeras.utils.Sequence戻す(inputs, targets)または(inputs, targets, sample_weights)イテレータタイプ(データセット、発電機、シーケンス)のための行動をアンパックのより詳細な説明は以下に与えられます。
y ターゲットデータ。入力データは次のようにx 、それがnumpyのアレイ(S)またはTensorFlowテンソル(S)のいずれかとすることができます。これは、と整合的であるべきであるx (あなたがnumpyの入力とテンソルの目標を持っている、または逆はできません)。場合x 、データセット、発電機、またはあるkeras.utils.Sequenceインスタンス、 y (ターゲットから得られるので、指定されるべきではないx )。
batch_size 整数またはNone 。勾配更新あたりのサンプル数。指定しない場合、 batch_size指定されていない32がデフォルトになりますbatch_sizeあなたのデータは、データセット、発電機、またはの形式である場合keras.utils.Sequenceインスタンス(彼らはバッチを生成するため)。
epochs 整数。エポックの数は、モデルを訓練します。エポック全体にわたって反復されxおよびy提供されたデータ。関連していることを注意initial_epochepochs 「最終エポック」として理解されるべきです。モデルは次式で与えられた反復回数のために訓練されていないepochs 、単にインデックスの時代まで、 epochs到達しています。
verbose 0、1、または2冗長モード。 0 =サイレント、1 =プログレスバー、エポックごとに2 =一行。対話的に実行していないときに、ファイルに記録されたときにプログレスバーが特に有効ではないことに注意してください、そう冗長= 2(例えば、本番環境では)お勧めします。
callbacks 一覧keras.callbacks.Callbackインスタンス。訓練中に適用するコールバックのリスト。参照してくださいtf.keras.callbacks
validation_split 検証データとして使用されるトレーニングデータの0と1の画分との間のフロート。モデルはそれに訓練していないだろう、トレーニングデータのこの画分を離れて設定し、各エポックの終わりに、このデータの損失や任意のモデルメトリックを評価します。検証データは、内の最後のサンプルから選択され、 xおよびyシャッフリング前に、提供されたデータ。ときに、この引数がサポートされていないxデータセット、発電機またはあるkeras.utils.Sequenceインスタンス。
validation_data 上のデータは消失し、各エポックの終了時にすべてのモデルメトリックを評価します。モデルは、このデータで訓練されることはありません。このように、データの検証損失を使用して提供するという事実に注意validation_split又はvalidation_dataノイズとdropuoutような正則化層によって影響されないが。 validation_data優先されますvalidation_splitvalidation_data次のようになります。
  • タプル(x_val, y_val) numpyのアレイまたはテンソルの
  • タプル(x_val, y_val, val_sample_weights) numpyのアレイの
  • 最初の2例のデータセット、 batch_size提供されなければなりません。最後のケースでは、 validation_steps提供することができます。注意validation_dataでサポートされているすべてのデータ型をサポートしていませんx 、例えば、辞書、発電機やkeras.utils.Sequence
  • shuffle ブール(各エポックの前にトレーニングデータをシャッフルするかどうか)または(「バッチ」の)STR。場合は、この引数は無視されx発電機です。 「バッチ」はHDF5データの制約に対処するための特別なオプションです。それは、バッチサイズのチャンクにシャッフルします。ときは効果がありませんsteps_per_epochないではありませんNone
    class_weight (のみ訓練中に)損失関数を重み付けするために使用される量(フロート)値に任意の辞書マッピングクラスインデックス(整数)。これは、アンダー表すクラスからのサンプルに「賃金もっと注意」にモデルを伝えるために役立ちます。
    sample_weight (のみ訓練中に)損失関数を重み付けするために使用される学習サンプルの重みの任意numpyのアレイ。入力サンプル(1:重みと試料間の1つのマッピング)と同じ長さのどちらかのフラットを渡すことができる(1D)numpyのアレイ、または時間データの場合には、形状の2次元アレイ渡すことができる(samples, sequence_length) 、すべてのサンプルのすべてのタイムステップに異なる重みを適用します。場合、この引数はサポートされていないx 、データセット、発電機、またはあるkeras.utils.Sequence代わりに第三元素としてsample_weightsを提供し、例えばx
    initial_epoch 整数。 (前回のトレーニングランを再開するために有用)の訓練を開始するにエポック。
    steps_per_epoch 整数またはNone 。完成した1つのエポックを宣言し、次のエポックを開始する前に、ステップ(サンプルのバッチ)の総数。そのようなTensorFlowデータテンソルとして入力テンソルを用いて訓練するとき、デフォルトNoneバッチサイズ、またはそれを決定することができない場合1で割ったデータセット内のサンプルの数に等しいではありません。 xがある場合tf.dataデータセット、および「steps_per_epochが」Noneです入力データセットがなくなるまで、エポックが実行されます。無限に繰り返すデータセットを渡すときは、次のように指定しなければなりませんsteps_per_epoch引数を。この引数は、配列の入力でサポートされていません。
    validation_steps 場合にのみ関連するvalidation_data提供しているされてtf.dataデータセット。すべてのエポックの最後に検証を実行するときに停止する前に描画するための手順(サンプルのバッチ)の合計数。 「validation_stepsは」Noneの場合まで、検証が実行されますvalidation_dataデータセットが排出されます。無限に繰り返されたデータセットの場合は、それが無限ループに実行されます。 「validation_steps」が指定されたデータセットの一部だけが消費される場合は、評価は、各エポックでのデータセットの最初からスタートします。これは、同じバリデーションサンプルが毎回使用されることが保証されます。
    validation_batch_size 整数またはNone 。検証バッチあたりのサンプル数。指定しない場合、にデフォルト設定されますbatch_size 。指定しないでくださいvalidation_batch_sizeあなたのデータは、データセット、発電機、またはの形式である場合keras.utils.Sequenceインスタンス(彼らはバッチを生成するため)。
    validation_freq 検証データが提供されている場合にのみ該当します。整数またはcollections_abc.Containerインスタンス(などなど、リスト、タプル、)。整数の場合は、多くのトレーニングエポックは、新しい検証の実行前に実行する方法を指定するには、例えば、実行されvalidation_freq=2のランは、すべて2つのエポックを検証します。コンテナは、検証を実行するにエポックを指定した場合、例えばvalidation_freq=[1, 2, 10]第一、第二、及び第十エポックの最後に検証を実行します。
    max_queue_size 整数。発電機またはのために使用さkeras.utils.Sequence入力するだけ。発電機のキューの最大サイズ。指定しない場合、 max_queue_size 10にデフォルト設定されます。
    workers 整数。発電機またはのために使用さkeras.utils.Sequence入力するだけ。プロセスベースのスレッドを使用する際にスピンアップするプロセスの最大数。指定されていない場合は、 workers 0の場合、1にデフォルト設定されますメインスレッド上でジェネレータを実行します。
    use_multiprocessing ブール。発電機またはのために使用さkeras.utils.Sequence入力するだけ。もしTrue 、使用プロセスベースのスレッド。指定しない場合、 use_multiprocessingにデフォルト設定されますFalse 。この実装は、マルチプロセッシングに依存しているので、彼らは子プロセスに簡単に渡すことができないとして、あなたは発電機に非pickle化可能な引数を渡すべきではないことに注意してください。

    反復子状の入力に対する動作を開梱共通パターンにtf.data.Dataset、発電機、またはtf.keras.utils.Sequenceを通過するx 、実際に得られないだけで(X)を備えている意思、フィットの引数が、必要に応じてターゲット(y)及びサンプルの重み。 Kerasは、イテレータ同類の出力があいまいであることが必要。反復子は、任意の第二及び第三の要素はそれぞれyおよびsample_weightために使用される長さ1,2の組、または3を返すべきです。提供される任意の他のタイプは、効果的に「X」として、すべてを処理する、長さ1つのタプルでラップされます。 dictsを得たとき、彼らはまだトップレベルのタプルの構造に従う必要があります。例えば({"x0": x0, "x1": x1}, y) Kerasは、単一のdictのキーからの特徴、目標、および重みを分離しようとしません。注目すべきサポートされていないデータ型がnamedtupleです。その理由は、順序付けられたデータ型(タプル)とマッピングデータ型(辞書)の両方のように振る舞うことです。そうフォームのnamedtupleを所与: namedtuple("example_tuple", ["y", "x"])は値を解釈するときに要素の順序を反転するかどうか曖昧です。 :さらに悪い形のタプルnamedtuple("other_tuple", ["x", "y", "z"])タプルは、X、Y、及びsample_weight又は通過に展開することを意図していた場合、それは不明ですスルーに単一の要素としてx 。それはnamedtupleが発生した場合、結果としてデータ処理コードは、単純にValueErrorを送出します。 (説明書と一緒に問題を解決します。)

    戻り値
    Historyオブジェクト。そのHistory.history属性は、検証損失値と検証メトリック値(該当する場合)と同様に、連続したエポックでの損失値とメトリック値を訓練の記録です。

    発生させます
    RuntimeError

    1. モデルがコンパイルされないかんでした場合は、
    2. 場合model.fitに包まれtf.function
    ValueError 提供された入力データとどのようなモデルを期待との間に不一致の場合。

    fit_generator

    ソースを表示

    Pythonのジェネレータによってバッチによってバッチが得られたデータにモデルをフィットします。 (非推奨)

    非推奨:

    Model.fit今の発電機をサポートしていないので、このエンドポイントを使用する必要がなくなりました。

    get_layer

    ソースを表示

    その名(ユニーク)またはインデックスのいずれかに基づいてレイヤーを取得します。

    場合はnameindex両方提供され、 index優先されます。インデックスは、水平グラフ・トラバーサル(ボトムアップ)の順に基づいています。

    引数
    name 文字列、層の名前。
    index 整数、層のインデックス。

    戻り値
    層インスタンス。

    発生させます
    ValueError 無効なレイヤ名またはインデックスの場合。

    load_weights

    ソースを表示

    ロードし、すべての層の重み、どちらかTensorFlowやHDF5の重みファイルから。

    場合by_name Falseの重みは、ネットワークのトポロジーに基づいてロードされます。この手段は、アーキテクチャは、重みが保存されたときと同じでなければなりません。重みを持っていない層がそうレイヤを追加または削除、トポロジカル順序で考慮されていないことに注意してくださいがあれば重みを持っていないと微細です。

    場合by_name Trueで、重さは、彼らが同じ名前を共有する場合にのみ層にロードされています。これは微調整または層の一部が変更されている転送学習モデルのために有用です。

    唯一トポロジー負荷は( by_name=False )TensorFlowフォーマットからロード時の重みを支持されています。なおわずかに継承ユーザ定義のクラスのTensorFlowとHDF5フォーマット間のトポロジカルローディング異なるtf.keras.Model :HDF5負荷を重みの平坦化リストに基づいて、一方の属性のオブジェクトのローカル名に基づいTensorFlowフォーマットロードするに層がに割り当てられているModelさんのコンストラクタ。

    引数
    filepath 文字列、負荷へのウェイトファイルへのパス。 TensorFlow形式の体重ファイルの場合、これはファイルのプレフィックス(に渡されたと同じであるsave_weights )。
    by_name ブール、名前またはトポロジカル順序によって重みをロードするかどうか。唯一のトポロジカルロードはTensorFlow形式の体重ファイルではサポートされています。
    skip_mismatch 重みの数、又は重量の形状の不一致(唯一の有効な場合にミスマッチがある場合に層のロードをスキップするかどうかを示すブール、 by_name=True )。
    options オプションtf.train.CheckpointOptionsロードの重みのためにあることを指定オプションオブジェクト。

    戻り値
    TensorFlow形式の重みファイルをロードするときと同じ状態オブジェクトを返すtf.train.Checkpoint.restore 。グラフを構築する場合、(継承ユーザ定義クラスのための最初の呼び出し時にOPSは、すぐにネットワークが構築されているように自動的に実行されている復元Modelがすでに構築されている場合は、すぐに、)。

    HDF5形式の場合ローディングウェイト、返さないNone

    発生させます
    ImportError h5pyは使用できず、体重ファイルがHDF5形式の場合。
    ValueError 場合skip_mismatchに設定されているTrueときby_nameあるFalse

    make_predict_function

    ソースを表示

    推論の一歩を実行機能を作成します。

    このメソッドは、カスタム推論ロジックをサポートするためにオーバーライドすることができます。このメソッドは、によって呼び出されModel.predictModel.predict_on_batch

    典型的には、この方法は、直接制御tf.functiontf.distribute.Strategyに実際の評価ロジックを設定、及び委任Model.predict_step

    この機能は、最初にキャッシュされているModel.predictまたはModel.predict_on_batch呼び出されます。いつでもキャッシュがクリアされModel.compile呼ばれています。

    戻り値
    関数。この方法で作成された関数は、受け入れるべきtf.data.Iterator 、との出力を返すModel

    make_test_function

    ソースを表示

    評価のステップを実行する関数を作成します。

    このメソッドは、カスタム評価ロジックをサポートするためにオーバーライドすることができます。このメソッドは、によって呼び出されModel.evaluateModel.test_on_batch

    典型的には、この方法は、直接制御tf.functiontf.distribute.Strategyに実際の評価ロジックを設定、及び委任Model.test_step

    この機能は、最初にキャッシュされているModel.evaluateまたはModel.test_on_batch呼び出されます。いつでもキャッシュがクリアされModel.compile呼ばれています。

    戻り値
    関数。この方法で作成された関数は、受け入れるべきtf.data.Iterator 、と返すdictに渡される値含むtf.keras.Callbacks.on_test_batch_end

    make_train_function

    ソースを表示

    トレーニングの1つのステップを実行機能を作成します。

    このメソッドは、カスタムトレーニング・ロジックをサポートするためにオーバーライドすることができます。このメソッドは、によって呼び出されModel.fitModel.train_on_batch

    典型的には、この方法は、直接制御tf.functiontf.distribute.Strategyに実際のトレーニング・ロジックを設定、及び委任Model.train_step

    この機能は、最初にキャッシュされているModel.fitまたはModel.train_on_batch呼び出されます。いつでもキャッシュがクリアされModel.compile呼ばれています。

    戻り値
    関数。この方法によって作成された関数は、受け入れるべきtf.data.Iterator 、および戻りdictに渡される値を含むtf.keras.Callbacks.on_train_batch_endなど、 {'loss': 0.2, 'accuracy': 0.7}

    predict

    ソースを表示

    入力サンプルのための出力予測を生成します。

    計算はバッチで行われます。この方法は、大規模な入力で性能を発揮するように設計されています。フィット一括して、直接使用することを入力の少量のために__call__より速く実行、例えば、のために推奨されるmodel(x)またはmodel(x, training=False) 、あなたのような層を持っている場合tf.keras.layers.BatchNormalizationこと推論時に動作が異なります。また、試験損失はノイズとドロップアウトのような正則化層によって影響されないことを留意されたいです。

    引数
    x 入力サンプル。かもしれない:

    • A numpyのアレイ(またはアレイ状)、または配列のリスト(場合、モデルは複数の入力を有しています)。
    • TensorFlowテンソル、またはテンソルのリスト(場合、モデルは複数の入力を有しています)。
    • tf.dataデータセット。
    • 発電機やkeras.utils.Sequenceインスタンス。イテレータタイプ(データセット、発電機、シーケンス)の動作をアンパックのより詳細な説明は、で与えられるUnpacking behavior for iterator-like inputsのセクションModel.fit
    batch_size 整数またはNone 。バッチあたりのサンプル数。指定しない場合、 batch_size指定されていない32がデフォルトになりますbatch_sizeあなたのデータは、データセット、発電機、またはの形式である場合keras.utils.Sequenceインスタンス(彼らはバッチを生成するため)。
    verbose 冗長モードでは、0または1。
    steps ラウンド終了予測を宣言するまでの手順(サンプルのバッチ)の合計数。デフォルト値は無視されますNone 。 xがある場合tf.dataデータセットとsteps Noneです、 predict入力データセットがなくなるまで実行されます。
    callbacks 一覧keras.callbacks.Callbackインスタンス。予測時に適用するコールバックのリスト。参照のコールバックを
    max_queue_size 整数。発電機またはのために使用さkeras.utils.Sequence入力するだけ。発電機のキューの最大サイズ。指定しない場合、 max_queue_size 10にデフォルト設定されます。
    workers 整数。発電機またはのために使用さkeras.utils.Sequence入力するだけ。プロセスベースのスレッドを使用する際にスピンアップするプロセスの最大数。指定されていない場合は、 workers 0の場合、1にデフォルト設定されますメインスレッド上でジェネレータを実行します。
    use_multiprocessing ブール。発電機またはのために使用さkeras.utils.Sequence入力するだけ。もしTrue 、使用プロセスベースのスレッド。指定しない場合、 use_multiprocessingにデフォルト設定されますFalse 。この実装は、マルチプロセッシングに依存しているので、彼らは子プロセスに簡単に渡すことができないとして、あなたは発電機に非pickle化可能な引数を渡すべきではないことに注意してください。

    議論を参照してください。 Unpacking behavior for iterator-like inputsためModel.fit 。 Model.predictが同じ解釈規則を使用することに注意してくださいModel.fitModel.evaluate 、その入力は、3つのすべてのメソッドのための明確なでなければなりません。

    戻り値
    予測のnumpyの配列(複数可)。

    発生させます
    RuntimeError 場合model.predictに包まれtf.function
    ValueError 提供された入力データとモデルの期待との間の不一致の場合に、またはステートフルモデルは、バッチ・サイズの倍数でないサンプル数を受信した場合です。

    predict_generator

    ソースを表示

    データ発生器からの入力サンプルの予測を生成します。 (非推奨)

    非推奨:

    Model.predict今の発電機をサポートしていないので、このエンドポイントを使用する必要がなくなりました。

    predict_on_batch

    ソースを表示

    サンプルの単一バッチの戻り値の予測。

    引数
    x 入力したデータ。それはあり得る: - A numpyのアレイ(またはアレイ状)、または配列のリスト(場合、モデルは複数の入力を有しています)。 - A TensorFlowテンソル、またはテンソルのリスト(場合、モデルは複数の入力を有しています)。

    戻り値
    予測のnumpyの配列(複数可)。

    発生させます
    RuntimeError 場合model.predict_on_batchに包まれtf.function
    ValueError 入力及びモデルの期待の所定の数の間の不一致の場合には。

    predict_step

    ソースを表示

    1つの推論ステップのためのロジック。

    このメソッドは、カスタム推論ロジックをサポートするためにオーバーライドすることができます。このメソッドは、によって呼び出されModel.make_predict_function

    この方法は、推論の1つのステップのmathemeticalロジックが含まれている必要があります。これは通常、フォワード・パスを含んでいます。

    このロジックが実行される方法のための構成の詳細(例えばtf.functiontf.distribute.Strategy設定が)、に委ねられるべきModel.make_predict_functionも上書きすることができ、。

    引数
    data 入れ子構造Tensor S。

    戻り値
    1つの推論ステップ、呼び出しの通常出力の結果Modelデータに。

    reset_metrics

    ソースを表示

    モデル内のすべてのメトリックの状態をリセットします。

    例:

    inputs = tf.keras.layers.Input(shape=(3,))
    outputs = tf.keras.layers.Dense(2)(inputs)
    model = tf.keras.models.Model(inputs=inputs, outputs=outputs)
    model.compile(optimizer="Adam", loss="mse", metrics=["mae"])
    
    x = np.random.random((2, 3))
    y = np.random.randint(0, 2, (2, 2))
    _ = model.fit(x, y, verbose=0)
    assert all(float(m.result()) for m in model.metrics)
    
    model.reset_metrics()
    assert all(float(m.result()) == 0 for m in model.metrics)
    

    reset_states

    ソースを表示

    save

    ソースを表示

    Tensorflow SavedModelまたは単一HDF5ファイルにモデルを保存します。

    セーブファイルが含まれています:

    • モデルアーキテクチャ、モデルの再インスタンス化することができます。
    • モデルの重み。
    • あなたがオフに左に正確トレーニングを再開できるようにオプティマイザの状態、。

    これにより、1つのファイルにモデルの状態の全体を保存することができます。

    保存されたモデルを経由して再インスタンスすることができますkeras.models.load_model 。返されたモデルload_model (保存されたモデルは、最初の場所でコンパイルされなかった場合を除く)を使用する準備ができてコンパイルされたモデルです。

    シーケンシャル・機能APIで構築されたモデルは、HDF5とSavedModel形式の両方に保存することができます。サブクラス化モデルのみSavedModel形式で保存することができます。

    モデルの重みがロードされた後、別のスコープの名前を持っていることに注意してください。スコープ名は、次のようなモデル/レイヤ名、含める"dense_1/kernel:0" 。あなたがアクセス特定の変数、例えばにレイヤーのプロパティを使用することをお勧めしmodel.get_layer("dense_1").kernel

    引数
    filepath 文字列、PathLike、モデルを保存するSavedModelまたはH5ファイルへのパス。
    overwrite かどうかは黙って目的の場所にある既存のファイルを上書きする、または手動プロンプトをユーザに提供します。
    include_optimizer Trueの場合、オプティマイザの状態を一緒に保存します。
    save_format どちらの'tf'または'h5' 、Tensorflow SavedModelまたはHDF5にモデルを保存するかどうかを示します。 TF 1.xでTF 2.Xの「TF」、および「H5」にデフォルト
    signatures 署名はSavedModelで保存します。 「TF」形式にのみ適用されます。参照してくださいsignaturesに引数をtf.saved_model.save詳細については。
    options オプションtf.saved_model.SaveOptions SavedModelに保存することを指定するオプションオブジェクト。

    例:

     from keras.models import load_model
    
    model.save('my_model.h5')  # creates a HDF5 file 'my_model.h5'
    del model  # deletes the existing model
    
    # returns a compiled model
    # identical to the previous one
    model = load_model('my_model.h5')
     

    save_weights

    ソースを表示

    すべての層の重みを保存します。

    どちらか一方に基づいてHDF5やTensorFlow形式で保存しsave_format引数。

    HDF5形式で保存すると、体重ファイルがあります。

    • layer_names (属性)、文字列のリストは、(モデル層の名前を命じました)。
    • すべての層については、 groupの名前layer.name
      • すべてのこのような層のグループでは、グループ属性weight_names 、文字列のリストは、(層の重みテンソルの名前を命じました)。
      • 層内のすべての重量のために、重み値を格納するデータセットは、重量テンソルにちなんで名付けられました。

    TensorFlow形式で保存すると、ネットワークによって参照されるすべてのオブジェクトが同じ形式で保存されているtf.train.Checkpointいずれかを含め、 LayerインスタンスまたはOptimizerオブジェクト属性に割り当てられたインスタンス。使用して入力および出力から構築ネットワーク用tf.keras.Model(inputs, outputs)Layerネットワークによって使用されるインスタンスを自動的に保存/追跡されます。継承するユーザ定義クラスではtf.keras.ModelLayerインスタンスは通常、コンストラクタで、オブジェクト属性に割り当てる必要があります。ドキュメントを参照してくださいtf.train.Checkpointtf.keras.Model詳細については、を。

    フォーマットは同じですが、混在させないでくださいsave_weightstf.train.Checkpoint 。で保存されたチェックポイントModel.save_weights使用してロードされるべきModel.load_weights 。使用して保存されたチェックポイントtf.train.Checkpoint.save 、対応する使用して復元する必要がありますtf.train.Checkpoint.restore 。優先tf.train.Checkpointかけsave_weightsトレーニングチェックポイントのため。

    TensorFlowフォーマットは、ルートオブジェクトから始まるによってオブジェクトと変数に一致しselfのためsave_weights 、そして貪欲マッチング属性名。 Model.saveこれはModel 、およびのためCheckpoint.saveこれはCheckpointさえあればCheckpoint添付のモデルを持っています。節約この手段tf.keras.Model用いsave_weightsへとロードをtf.train.CheckpointModel取り付けられた(またはその逆)が一致しませんModelの変数。参照してください。 トレーニングのチェックポイントへのガイド TensorFlow形式の詳細については、を。

    引数
    filepath 文字列またはPathLike、に重みを保存するファイルへのパス。 TensorFlow形式で保存する場合、これは、チェックポイントファイル(複数のファイルが生成されます)のために使用される接頭辞です。 「.h5' 接尾辞はHDF5形式で保存されるように重みを引き起こすことに注意してください。
    overwrite かどうかは黙って目的の場所にある既存のファイルを上書きする、または手動プロンプトをユーザに提供します。
    save_format Either 'tf' or 'h5'. A filepath ending in '.h5' or '.keras' will default to HDF5 if save_format is None . Otherwise None defaults to 'tf'.
    options Optional tf.train.CheckpointOptions object that specifies options for saving weights.

    Raises
    ImportError If h5py is not available when attempting to save in HDF5 format.
    ValueError For invalid/unknown format arguments.

    summary

    View source

    Prints a string summary of the network.

    Arguments
    line_length Total length of printed lines (eg set this to adapt the display to different terminal window sizes).
    positions Relative or absolute positions of log elements in each line. If not provided, defaults to [.33, .55, .67, 1.] .
    print_fn Print function to use. Defaults to print . It will be called on each line of the summary. You can set it to a custom function in order to capture the string summary.

    Raises
    ValueError if summary() is called before the model is built.

    test_on_batch

    View source

    Test the model on a single batch of samples.

    Arguments
    x Input data. It could be: - A Numpy array (or array-like), or a list of arrays (in case the model has multiple inputs). - A TensorFlow tensor, or a list of tensors (in case the model has multiple inputs).

    • A dict mapping input names to the corresponding array/tensors, if the model has named inputs.
    y Target data. Like the input data x , it could be either Numpy array(s) or TensorFlow tensor(s). It should be consistent with x (you cannot have Numpy inputs and tensor targets, or inversely).
    sample_weight Optional array of the same length as x, containing weights to apply to the model's loss for each sample. In the case of temporal data, you can pass a 2D array with shape (samples, sequence_length), to apply a different weight to every timestep of every sample.
    reset_metrics If True , the metrics returned will be only for this batch. If False , the metrics will be statefully accumulated across batches.
    return_dict If True , loss and metric results are returned as a dict, with each key being the name of the metric. If False , they are returned as a list.

    Returns
    Scalar test loss (if the model has a single output and no metrics) or list of scalars (if the model has multiple outputs and/or metrics). The attribute model.metrics_names will give you the display labels for the scalar outputs.

    Raises
    RuntimeError If model.test_on_batch is wrapped in tf.function .
    ValueError In case of invalid user-provided arguments.

    test_step

    View source

    The logic for one evaluation step.

    This method can be overridden to support custom evaluation logic. This method is called by Model.make_test_function .

    This function should contain the mathemetical logic for one step of evaluation. This typically includes the forward pass, loss calculation, and metrics updates.

    Configuration details for how this logic is run (eg tf.function and tf.distribute.Strategy settings), should be left to Model.make_test_function , which can also be overridden.

    Arguments
    data A nested structure of Tensor s.

    Returns
    A dict containing values that will be passed to tf.keras.callbacks.CallbackList.on_train_batch_end . Typically, the values of the Model 's metrics are returned.

    to_json

    View source

    Returns a JSON string containing the network configuration.

    To load a network from a JSON save file, use keras.models.model_from_json(json_string, custom_objects={}) .

    Arguments
    **kwargs Additional keyword arguments to be passed to json.dumps() .

    Returns
    A JSON string.

    to_yaml

    View source

    Returns a yaml string containing the network configuration.

    To load a network from a yaml save file, use keras.models.model_from_yaml(yaml_string, custom_objects={}) .

    custom_objects should be a dictionary mapping the names of custom losses / layers / etc to the corresponding functions / classes.

    Arguments
    **kwargs Additional keyword arguments to be passed to yaml.dump() .

    Returns
    A YAML string.

    Raises
    ImportError if yaml module is not found.

    train_on_batch

    View source

    Runs a single gradient update on a single batch of data.

    Arguments
    x Input data. It could be:

    • A Numpy array (or array-like), or a list of arrays (in case the model has multiple inputs).
    • A TensorFlow tensor, or a list of tensors (in case the model has multiple inputs).
    • A dict mapping input names to the corresponding array/tensors, if the model has named inputs.
    y Target data. Like the input data x , it could be either Numpy array(s) or TensorFlow tensor(s). It should be consistent with x (you cannot have Numpy inputs and tensor targets, or inversely).
    sample_weight Optional array of the same length as x, containing weights to apply to the model's loss for each sample. In the case of temporal data, you can pass a 2D array with shape (samples, sequence_length), to apply a different weight to every timestep of every sample.
    class_weight Optional dictionary mapping class indices (integers) to a weight (float) to apply to the model's loss for the samples from this class during training. This can be useful to tell the model to "pay more attention" to samples from an under-represented class.
    reset_metrics If True , the metrics returned will be only for this batch. If False , the metrics will be statefully accumulated across batches.
    return_dict If True , loss and metric results are returned as a dict, with each key being the name of the metric. If False , they are returned as a list.

    Returns
    Scalar training loss (if the model has a single output and no metrics) or list of scalars (if the model has multiple outputs and/or metrics). The attribute model.metrics_names will give you the display labels for the scalar outputs.

    Raises
    RuntimeError If model.train_on_batch is wrapped in tf.function .
    ValueError In case of invalid user-provided arguments.

    train_step

    View source

    The logic for one training step.

    This method can be overridden to support custom training logic. This method is called by Model.make_train_function .

    This method should contain the mathemetical logic for one step of training. This typically includes the forward pass, loss calculation, backpropagation, and metric updates.

    Configuration details for how this logic is run (eg tf.function and tf.distribute.Strategy settings), should be left to Model.make_train_function , which can also be overridden.

    Arguments
    data A nested structure of Tensor s.

    Returns
    A dict containing values that will be passed to tf.keras.callbacks.CallbackList.on_train_batch_end . Typically, the values of the Model 's metrics are returned. Example: {'loss': 0.2, 'accuracy': 0.7} .