モデルの検証中のKerasでのverboseの使用は何ですか?


95

LSTMモデルを初めて実行しています。これが私のモデルです:

opt = Adam(0.002)
inp = Input(...)
print(inp)
x = Embedding(....)(inp)
x = LSTM(...)(x)
x = BatchNormalization()(x)
pred = Dense(5,activation='softmax')(x)

model = Model(inp,pred)
model.compile(....)

idx = np.random.permutation(X_train.shape[0])
model.fit(X_train[idx], y_train[idx], nb_epoch=1, batch_size=128, verbose=1)

モデルのトレーニング中の詳細の使用は何ですか?

回答:


227

ここでmodel.fitのドキュメントを確認してください。

詳細0、1、または2を設定することにより、各エポックのトレーニングの進行状況をどのように「確認」したいかを言うだけです。

verbose=0 何も表示されません(サイレント)

verbose=1 次のようなアニメーションのプログレスバーが表示されます。

progres_bar

verbose=2 このようにエポックの数について言及します:

ここに画像の説明を入力してください


20
詳細:整数。0、1、または2。詳細モード。0 =サイレント、1 =プログレスバー、2 =エポックごとに1行。ありがとう@ankyou rock ..
rakesh 2017

2
このコメントは、コメントされている回答よりも優れた、質問に対する最良の回答です。これに注意し、答えを長くするためだけに言葉を避けてください。@rakesh、あなたはロックします。
KonstantinSekeresh19年

21

verbose: Integer。0、1、または2。詳細モード。

Verbose = 0(サイレント)

Verbose = 1(プログレスバー)

Train on 186219 samples, validate on 20691 samples
Epoch 1/2
186219/186219 [==============================] - 85s 455us/step - loss: 0.5815 - acc: 
0.7728 - val_loss: 0.4917 - val_acc: 0.8029
Train on 186219 samples, validate on 20691 samples
Epoch 2/2
186219/186219 [==============================] - 84s 451us/step - loss: 0.4921 - acc: 
0.8071 - val_loss: 0.4617 - val_acc: 0.8168

Verbose = 2(エポックごとに1行)

Train on 186219 samples, validate on 20691 samples
Epoch 1/1
 - 88s - loss: 0.5746 - acc: 0.7753 - val_loss: 0.4816 - val_acc: 0.8075
Train on 186219 samples, validate on 20691 samples
Epoch 1/1
 - 88s - loss: 0.4880 - acc: 0.8076 - val_loss: 0.5199 - val_acc: 0.8046

さまざまな冗長なvakuに対して期待される出力が得られない理由を説明できますか。ファイルのverbose = 0と2で同じ[サイレント]出力が得られますか?また、verbose = 1の場合、エポック10 / 10-21秒のようなエポックの終わりにのみプログレスバーが表示されます-損失:0.2354-acc:0.9286-val_loss:0.2206-val_acc:0.9344 [======== ======================]精度:0.9344エラー:6.560000000000002
Dr

素晴らしい答え、私を助けてくれました。tensorflow 2.2の有効な
ボブスバーガー

9

以下のためにverbose> 0、fitメソッドログ:

  • 損失:トレーニングデータの損失関数の値
  • acc:トレーニングデータの精度値。

注:正則化メカニズムが使用されている場合、過剰適合を回避するために正則化メカニズムがオンになっています。

場合validation_dataまたはvalidation_split引数が、空にされていないfit方法でログを:

  • val_loss:検証データの損失関数の値
  • val_acc:検証データの精度値

注:ネットワークのすべての機能を使用しているため、テスト時には正則化メカニズムがオフになっています。

たとえば、verboseトレーニング中にモデルを使用accするval_accと、悪化している間に改善を続ける場合に発生する過剰適合を検出するのに役立ちます。


冗長性パラメーターの正則化とはどのような関連性がありますか?!
クリスジ2018

詳細パラメータは、正規化メカニズムに影響を与えません。詳細が有効になっている場合に表示される内容に関する情報を追加しているだけです(最初の質問「モデルのトレーニング中に詳細を使用することは何ですか?」=>例:accとval_accを比較して過剰適合を回避するため)。
HugoBevilacqua18年

1

デフォルトではverbose = 1、

verbose = 1、これにはプログレスバーとエポックごとの1行の両方が含まれます

詳細= 0、サイレントを意味します

verbose = 2、エポックごとに1行、つまりエポック番号/合計番号 エポックの


0

詳細フラグで提供される詳細の順序は次のとおりです。

詳細が少ない....詳細

0 <2 <1

デフォルトは1です

実稼働環境では、2をお勧めします

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.