web-dev-qa-db-ja.com

モデルの検証中にKerasで冗長を使用することは何ですか?

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)

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

43
rakesh

Model.fit here のドキュメントを確認してください。

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

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

verbose=1は、次のようなアニメーションの進行状況バーを表示します。

progres_bar

verbose=2は、次のようにエポックの数に言及するだけです。

enter image description here

98
Ankit

verbose> 0の場合、fitメソッドログ:

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

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

validation_dataまたはvalidation_split引数が空でない場合、fitメソッドは以下を記録します。

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

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

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

5
Hugo Bevilacqua

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

デフォルトでは、verbose = 1

verbose = 1、エポックごとにプログレスバーと1行の両方を含む

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

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

1
Ashiq Imran